# Google Maps Text Search (Full)

> Google Maps Text Search (Full) is a paid API for AI agents from StableEnrich at stableenrich.dev, paid per call via MPP or x402, $0.08/call, status healthy (last checked 2026-10-10, last successful call 2026-09-19).

Search for places on Google Maps using a text query and return full place details including reviews, hours, amenities, and location data

## Facts

- Endpoint: POST https://stableenrich.dev/api/google-maps/text-search/full?utm_source=zero.xyz
- Price: $0.08/call
- Payment: MPP, x402
- Status: healthy
- Last checked: 2026-10-10
- Last successful call: 2026-09-19
- Success rate: 97% of calls made through Zero
- Rating: 4.8 / 5 from 8 reviews
- Activations on Zero: 236
- Provider: StableEnrich
- Docs: https://stableenrich.dev
- Website: https://stableenrich.dev
- Tags: apollo, exa, firecrawl, google-maps, linkedin, reddit, enrichment, research, data, search, social, x402
- Canonical page: https://www.zero.xyz/c/stableenrich-full-2ddbed92
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_9KOwf8oWlU54IuHbL4L-K

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability stableenrich-full-2ddbed92 -d '<json body>'
```

Example prompt: Find me the top 5 highly-rated Italian restaurants in San Francisco that are open now, moderately priced, and allow dogs — search within 5km of 37.7749, -122.4194 and give me their full details including reviews and hours.

## When to prefer this

Choose this endpoint over the Partial variant when you need comprehensive place data including reviews, amenities, hours, pricing details, and contact info in a single call. Prefer over Google Maps Nearby Search (Full) when you have a descriptive text query (e.g. 'best sushi near downtown') rather than a pure proximity-based search. Use when building rich place cards, recommendation engines, or research workflows that require full place metadata.

## Known failure modes

- Empty results if textQuery matches no places in the area
- Invalid locationBias if radius exceeds 50000 meters
- Missing required textQuery field returns validation error
- Invalid priceLevels enum values cause request rejection
- Page token expired or invalid returns error
- Rate limiting or quota exceeded on the underlying Google Maps API
- Truncated response if response schema fields are excluded incorrectly

## How this service works

Pay-per-request access to FullEnrich, CompanyEnrich, LeadMagic, Exa, Firecrawl, Google Maps, Serper, and Whitepages APIs. No auth, no subscriptions.

## Output

Returns an array of up to 5 place objects, each with full details including place ID, name, address, GPS coordinates, star rating, user reviews (with text, author, and publish time), price level, price range, opening hours, website, phone number, amenity flags (dine-in, takeout, delivery, restroom, live music, dogs allowed), reservability, and place types.

## Example request

```json
{
 "minRating": 3.5,
 "textQuery": "coffee shops",
 "languageCode": "en",
 "excludeFields": [
  "photos"
 ],
 "maxResultCount": 3
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "openNow": {
   "type": "boolean"
  },
  "minRating": {
   "type": "number",
   "maximum": 5,
   "minimum": 0
  },
  "pageToken": {
   "type": "string"
  },
  "textQuery": {
   "type": "string",
   "minLength": 1
  },
  "priceLevels": {
   "type": "array",
   "items": {
    "enum": [
     "PRICE_LEVEL_FREE",
     "PRICE_LEVEL_INEXPENSIVE",
     "PRICE_LEVEL_MODERATE",
     "PRICE_LEVEL_EXPENSIVE",
     "PRICE_LEVEL_VERY_EXPENSIVE"
    ],
    "type": "string"
   }
  },
  "includedType": {
   "type": "string"
  },
  "languageCode": {
   "type": "string",
   "default": "en"
  },
  "locationBias": {
   "type": "object",
   "required": [
    "circle"
   ],
   "properties": {
    "circle": {
     "type": "object",
     "required": [
      "center",
      "radius"
     ],
     "properties": {
      "center": {
       "type": "object",
       "required": [
        "latitude",
        "longitude"
       ],
       "properties": {
        "latitude": {
         "type": "number"
        },
        "longitude": {
         "type": "number"
        }
       },
       "description": "Latitude/longitude center point for the nearby search circle.",
       "additionalProperties": false
      },
      "radius": {
       "type": "number",
       "maximum": 50000,
       "minimum": 0,
       "description": "Radius in meters. Google Places caps this at 50000."
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "excludeFields": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "default": [
    "photos"
   ]
  },
  "maxResultCount": {
   "type": "number",
   "default": 5,
   "maximum": 5,
   "minimum": 1
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "places": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "id"
    ],
    "properties": {
     "id": {
      "type": "string"
     },
     "types": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "dineIn": {
      "type": "boolean"
     },
     "photos": {
      "type": "array",
      "items": {
       "type": "object",
       "required": [
        "name",
        "widthPx",
        "heightPx"
       ],
       "properties": {
        "name": {
         "type": "string"
        },
        "widthPx": {
         "type": "number"
        },
        "heightPx": {
         "type": "number"
        }
       },
       "additionalProperties": false
      }
     },
     "rating": {
      "type": "number"
     },
     "reviews": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "name": {
         "type": "string"
        },
        "text": {
         "type": "object",
         "required": [
          "text",
          "languageCode"
         ],
         "properties": {
          "text": {
           "type": "string"
          },
          "languageCode": {
           "type": "string"
          }
         },
         "additionalProperties": false
        },
        "rating": {
         "type": "number"
        },
        "publishTime": {
         "type": "string"
        },
        "originalText": {
         "type": "object",
         "required": [
          "text",
          "languageCode"
         ],
         "properties": {
          "text": {
           "type": "string"
          },
          "languageCode": {
           "type": "string"
          }
         },
         "additionalProperties": false
        },
        "authorAttribution": {
         "type": "object",
         "required": [
          "displayName"
         ],
         "properties": {
          "uri": {
           "type": "string"
          },
          "photoUri": {
           "type": "string"
          },
          "displayName": {
           "type": "string"
          }
         },
         "additionalProperties": false
        },
        "relativePublishTimeDescription": {
         "type": "string"
        }
       },
       "additionalProperties": false
      }
     },
     "takeout": {
      "type": "boolean"
     },
     "delivery": {
      "type": "boolean"
     },
     "location": {
      "type": "object",
      "required": [
       
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/stableenrich-full-2ddbed92/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from stableenrich.dev](https://www.zero.xyz/host/stableenrich.dev/llms.txt)
