# Google Maps Scraper

> Google Maps Scraper is a paid API for AI agents from agent-data.centorprat.workers.dev, paid per call via x402, $0.08/call, status healthy (last checked 2026-10-30, last successful call 2026-10-30).

Scrapes Google Maps places by search term and location, returning business details including name, address, coordinates, rating, reviews, phone, website, hours, and optionally emails and social profiles.

## Facts

- Endpoint: POST https://agent-data.centorprat.workers.dev/tools/google-maps-scraper?utm_source=zero.xyz
- Price: $0.08/call
- Payment: x402
- Status: healthy
- Last checked: 2026-10-30
- Last successful call: 2026-10-30
- Success rate: 67% of calls made through Zero
- Activations on Zero: 3
- Tags: x402
- Canonical page: https://www.zero.xyz/c/google-maps-scraper-6329bba2
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_p5ZTyFXcDmd8sSsPUw7Na

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 google-maps-scraper-6329bba2 -d '<json body>'
```

Example prompt: Search Google Maps for 'dentist' in Austin, TX and give me up to 20 results with their name, address, phone, website, rating, and opening hours — include emails and social profiles scraped from each website.

## When to prefer this

Choose this endpoint when you need structured local business data from Google Maps without a Google API key — ideal for lead generation, market research, or competitive analysis. Prefer it over Google Places API when you need emails and social profiles scraped from business websites, or when you want to bypass API quota limits. Best suited for single-search queries (one term, one location per call) at $0.01 per call.

## Known failure modes

- No results returned if search term or location is too specific or misspelled
- Google may throttle scraping resulting in partial results
- includeContacts may find no emails if business websites don't publish them
- Closed or permanently closed places excluded when skipClosed is true
- maxPlacesPerSearch cap (20) limits results per search term per location
- Invalid country or language codes may produce unexpected results

## How this service works

Pay-per-call data and tools for AI agents, $0.002-0.01 per call in USDC via x402 (Base, Polygon or Solana), no account or API key; MAX tiers ($0.05-0.25) run deeper jobs. Agent toolkit: web search, search + read top pages, any page as clean markdown with a prompt-injection check, which-x402-API-to-call recommender, seller check. Data: Google Maps places with contacts, YouTube video data and transcripts, job listings (Indeed, LinkedIn, 13 boards), Google Ads Transparency, TikTok comments, Pinterest, Airbnb, Redfin, AliExpress, app stores, live sports, website and SEO checks, Shopify store tech stacks, and onchain token / address risk checks.

## Output

Returns an array of place records, each containing: business name, Google category, full address, latitude/longitude, star rating, review count, phone number, website URL, opening hours, place attributes, and Google Place ID. When includeContacts is enabled, also returns email addresses, additional phone numbers, and social media profile URLs scraped from each business's website.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "country": {
   "type": "string",
   "description": "Google country code, e.g. us, gb, de."
  },
  "website": {
   "enum": [
    "any",
    "with",
    "without"
   ],
   "type": "string",
   "description": "Places without a website are leads for web designers and agencies."
  },
  "language": {
   "type": "string",
   "description": "Language code for names and texts, e.g. en, de, es."
  },
  "locations": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "maxItems": 1,
   "description": "Cities, neighbourhoods or regions, e.g. [\"Austin, TX\", \"Brooklyn, NY\"]. Each term is searched in each location."
  },
  "minRating": {
   "type": "number",
   "description": "Keep places rated at least this."
  },
  "gridCellKm": {
   "type": "number",
   "description": "Smaller cells find more places in dense areas (more requests). 2-4 km for cities, 10+ km for rural regions."
  },
  "minReviews": {
   "type": "integer",
   "description": "Keep places with at least this many reviews."
  },
  "skipClosed": {
   "type": "boolean",
   "description": "Drop places marked permanently closed."
  },
  "searchTerms": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "maxItems": 1,
   "description": "What to search on Google Maps, e.g. [\"dentist\", \"pizza\", \"plumber\"]. Can include the place: [\"coffee in Lisbon\"]."
  },
  "categoryFilter": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "maxItems": 3,
   "description": "Keep places whose Google category contains any of these, e.g. [\"dentist\"]."
  },
  "coverWholeArea": {
   "type": "boolean",
   "description": "Split each location into a grid and search every cell, to get ALL matching places in a city or region instead of Google's top ~120-200. Slower; set maxPlacesPerSearch high."
  },
  "includeContacts": {
   "type": "boolean",
   "description": "Visit each place's website for emails, extra phones and social profiles (charged per place where contacts are found)."
  },
  "maxContactPages": {
   "type": "integer",
   "maximum": 2,
   "description": "Homepage + contact / about pages checked per website."
  },
  "maxPlacesPerSearch": {
   "type": "integer",
   "maximum": 20,
   "description": "Per search term x location. A single search lists up to ~120-200 places; turn on 'Cover the whole area' for every place in a city (up to 10,000)."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "items": [
   {
    "cid": "7720327853776914718",
    "city": "Austin",
    "name": "ATX Family Dental",
    "state": "Texas",
    "street": "1700 S 1st St",
    "address": "1700 S 1st St, Austin, TX 78704",
    "placeId": "ChIJb5gBC-u0RIYRHkntaUcdJGs",
    "category": "Dentist",
    "latitude": 30.2482229,
    "featureId": "0x8644b4eb0b01986f:0x6b241d4769ed491e",
    "categories": [
     "Dentist",
     "Cosmetic dentist",
     "Dental clinic",
     "Emergency dental service",
     "Pediatric dentist",
     "Teeth whitening service"
    ],
    "postalCode": "78704",
    "countryCode": "US",
    "neighborhood": "Bouldin Creek"
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/google-maps-scraper-6329bba2/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent-data.centorprat.workers.dev](https://www.zero.xyz/host/agent-data.centorprat.workers.dev/llms.txt)
