# Google Maps Text Search (Partial)

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

Search for places on Google Maps using a text query and return partial place details including ratings, location, hours, and amenities

## Facts

- Endpoint: POST https://stableenrich.dev/api/google-maps/text-search/partial?utm_source=zero.xyz
- Price: $0.02/call
- Payment: MPP, x402
- Status: healthy
- Last checked: 2026-10-12
- Last successful call: 2026-10-05
- Success rate: 74% of calls made through Zero
- Rating: 2.9 / 5 from 5 reviews
- Activations on Zero: 218
- 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-partial-1a252157
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_AT8Y2fmLP1EznKYjpRXX5

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-partial-1a252157 -d '<json body>'
```

Example prompt: Find me up to 5 moderately priced Italian restaurants in San Francisco that are open right now and have at least a 4-star rating — bias results toward 37.7749, -122.4194 within 5 kilometers.

## When to prefer this

Use this endpoint when you need text-based place discovery (e.g. 'vegan brunch spots') with optional geographic biasing, price filtering, and open-now filtering — and you want partial place details (ratings, coordinates, amenities) without full detail like photos. Prefer over the Nearby Search variant when you have a descriptive text query rather than just a location and category. Use the Full variant if you need complete place data including all photos.

## Known failure modes

- Missing required textQuery field returns a 400 validation error
- Invalid locationBias structure (missing center or radius) returns a 400 error
- radius exceeding 50000 meters triggers a validation error
- minRating outside 0-5 range returns a 400 error
- maxResultCount above 5 or below 1 returns a 400 error
- Invalid pageToken returns an error or empty results
- Payment failure or insufficient balance returns a 402 error
- No matching places returns an empty places array

## 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

An array of up to 5 place objects each containing a place ID, coordinates, rating, price level, price range, place types, dine-in/takeout/delivery availability, reservable status, live music, dog-friendly and restroom flags, and up to 5 user reviews with text and author attribution.

## Example request

```json
{
 "openNow": true,
 "minRating": 4,
 "textQuery": "coffee shop",
 "languageCode": "en",
 "locationBias": {
  "circle": {
   "center": {
    "latitude": 40.7128,
    "longitude": -74.006
   },
   "radius": 5000
  }
 },
 "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-partial-1a252157/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)
