Local business discovery
Use Google Maps endpoints to turn local business discovery into repeatable API requests with documented inputs and JSON responses.
Collect local business and place data from Google Maps for location intelligence workflows.
Fetch Google Maps place details and local search results through documented Crawlora API endpoints.
Endpoint families
2
Documented params
10
Examples
4
Live catalog snapshot
Active endpoints
4
Methods
GET, POST
Required params
8
Schema refs
4
{
"platform": "Google Maps",
"endpoint": "google-map-place",
"method": "GET",
"path": "/google/map/place/{place_id}",
"auth": "apiKey"
}Related use cases
Free tools
Use cases
Fetch Google Maps place details and local search results through documented Crawlora API endpoints.
Use Google Maps endpoints to turn local business discovery into repeatable API requests with documented inputs and JSON responses.
Use Google Maps endpoints to turn place detail enrichment into repeatable API requests with documented inputs and JSON responses.
Use Google Maps endpoints to turn location intelligence into repeatable API requests with documented inputs and JSON responses.
Managed execution
Every figure below is read from the live Google Maps endpoint catalog — 4 endpoints, 10 documented request parameters, and 4 published response schemas — the same catalog Docs and Playground run against.
4 documented Google Maps endpoints, grouped into 2 request families — Place and Search.
10 request parameters are documented across those Google Maps endpoints, 8 of them required — the full input contract is public before you write any integration code.
4 of the 4 Google Maps endpoints ship a recorded example response, and 4 carry a documented response schema — you can code against the real JSON before the first request.
Google Maps endpoints document their error responses (400, 429 and 500) alongside the success schema, so a block, a rate limit, or a missing record comes back as a typed error rather than silently empty data.
4 hosted MCP tools back the Google Maps endpoints, so an agent can call the same routes with the same parameters and the same JSON contract, with no custom glue.
Coverage map
These cards are generated from the active endpoint catalog, so the landing page reflects the same API surface used by Docs and Playground.
/google/map/place/{place_id}
/google/map/search
Endpoint catalog
/google/map/place/{place_id}Returns detailed information for a specified place_id. Rate limit is enforced at 1 request per second.
Response notes
- `rating` is the aggregate Google rating (`1.0`–`5.0`), or `null` when the place has no aggregate rating on Google (too few reviews, or a place type Google does not rate) — never a literal `0`. Read it together with `review_count`.
MCP tool google_map_place
/google/map/place/{place_id}/photosReturns the photos Google publishes for a specified place_id — the imagery shown on the place's Google Maps page, typically dozens of images for a well-covered business. Each entry carries the image URL as served plus its pixel dimensions when reported; swap the trailing size suffix on the URL (e.g. `=w203-h100-k-no`) to request other dimensions. Contributor avatars and review-attached photos are excluded. This is the place page's image set, not a paginated archive feed. Rate limit is enforced at 1 request per second.
Response notes
- `url` is Google's image URL exactly as served, including its trailing size suffix (for example `=w203-h100-k-no`). Swap that suffix to request other dimensions. - `width` and `height` are the pixel dimensions of that URL when Google reports them. `0` means the dimension was not captured, not that the image is empty. - Contributor avatars and review-attached photos are excluded; this endpoint returns place imagery only. Photos attached to individual reviews belong to the review that carries them. - Each distinct image appears exactly once, at the largest size Google offers for it. Google's payload carries the same photo at several sizes; those variants are collapsed rather than returned as separate entries. - This is the place page's image set, **not** a paginated archive feed. There is no cursor to walk, so the response is the full set this endpoint can return for the place. - A place with no published photos returns an empty `data` array, not an error. Example response: ```json { "code": 200, "msg": "ok", "data": [ { "url": "https://lh3.googleusercontent.com/gps-cs-s/AHRPTWlbepbs69mWZVN7SNi4FYseIr1JvRCpGHgpFfN5wOf02mKO=w203-h100-k-no", "width": 203, "height": 100 }, { "url": "https://lh3.googleusercontent.com/gps-cs-s/AHRPTWntpDTSCFVQdK1TmGSIhUaUWhoH45c1klBfg6se1L-m4xSO=w408-h306-k-no", "width": 408, "height": 306 } ] } ```
MCP tool google_map_place_photos
/google/map/place/{place_id}/reviewsReturns the reviews Google shows on a specified place_id's Google Maps page — typically the 8 most relevant, each with its rating, text, reviewer, timestamp, and any photos the reviewer attached. Photo-only reviews return an empty `text`. This is the place page's first page of reviews, not the full review archive. Rate limit is enforced at 1 request per second.
Response notes
- This is the place page's **first page** of reviews, not the full review archive. There is no cursor to page through, so the response is the complete set this endpoint can return for the place. Use `review_count` on `/google/map/place/{place_id}` for the place's total review tally. - `text` is empty for a photo-only review — Google allows a review with photos and a rating but no written body. That is not a parse failure. - `published_at` is RFC3339 UTC. It is empty when Google did not report a timestamp. - `relative_time` is Google's own wording ("6 months ago") in the requested language, so it is a display string rather than something to parse — use `published_at` for date logic. - `photos` are the images attached to that specific review. They never overlap with `/google/map/place/{place_id}/photos`, which returns the place's own gallery; a review's photos belong to the review. - `author_url` is normalized to drop Google's `?hl=` suffix, so the same reviewer yields the same URL regardless of the request language. - `author_review_count` is how many reviews that contributor has written overall. `0` means Google did not report it, which is normal for a syndicated review. - `source` names the site the review came from. Google's place pages syndicate reviews from partner sites — common on hotels — so this is `Google` for a native Google review and the partner's name (for example `Tripadvisor`, `TrustYou`) otherwise. Syndicated reviews still carry a rating, text, author name, and timestamp, but have no Google contributor id, so `author_id` is empty and `author_url` points at the partner site rather than a Google contributor page. - A place nobody has reviewed returns an empty `data` array, not an error. Example response: ```json { "code": 200, "msg": "ok", "data": [ { "id": "Ci9DQUlRQUNvZENodHljRjlvT201dFRHSk1aRU54T0U5cmRFVjNlbGRmU1RJNFkzYxAB", "rating": 5, "text": "I never knew pork could taste this good. We tried the special loin and it was worth the queue.", "relative_time": "6 months ago", "published_at": "2026-01-01T14:39:25Z", "author_name": "Supisara Darnchaloemwong", "author_id": "112997636113922766481", "author_url": "https://www.google.com/maps/contrib/112997636113922766481", "author_photo": "https://lh3.googleusercontent.com/a-/ALV-UjWc6XFX9IKHJiQ4vZoY7o_EVCYkjMbWjGfdPZrLEw", "author_review_count": 23, "source": "Google", "photos": [ { "url": "https://lh3.googleusercontent.com/grass-cs/ACvplmM2ICW60UtuEQbkJLN-ot5vq3pCknhfn=w1207-h1262-k-no", "width": 1207, "height": 1262 } ] } ] } ```
MCP tool google_map_place_reviews
/google/map/searchReturns results from Google Maps based on search options. Rate limit is enforced at 1 request per second.
Response notes
- `rating` is the aggregate Google rating (`1.0`–`5.0`), or `null` when the place has no aggregate rating on Google (too few reviews, or a place type Google does not rate) — never a literal `0`. Read it together with `review_count`.
MCP tool google_map_search
Related APIs
Maps & Local Data
Search ready-made scraped datasets for local business research with filters, facets, geo queries, and repeatable API output.
Maps & Local Data
Normalize location search, coordinate lookup, and OSM identifier enrichment through API-key protected geocoding endpoints.
Maps & Local Data
Compare cities and countries with normalized Numbeo cost-of-living and quality indices. Retrieve city or country detail and current or historical rankings for location research, relocation products, market analysis, and local-data enrichment.
How to scrape Google Maps
Google Maps holds the richest public local-business dataset, but it's rendered for humans, not APIs. Crawlora's Google Maps endpoints return places, ratings, reviews, and contact details as structured JSON.
Search a query plus a location (e.g. “coffee shops in Austin”), or look up a single place by name or ID.
Pass the query and location (or a place reference) to Crawlora's Google Maps endpoint — no headless browser to maintain.
Receive business name, address, phone, rating, review count, hours, coordinates, and website for every result.
Dedupe by domain, enrich each website with the Contact API for emails and socials, or re-run on a schedule to track new and changed listings.
FAQ
Pass a search query plus location (or a specific place) to Crawlora's Google Maps endpoint. You get structured JSON — business name, address, phone, rating, reviews, hours, coordinates, and website — without maintaining browser automation. Collect public data and respect Google's terms.
Yes — Crawlora's Google Maps endpoints are a Google Maps data API for places, ratings, reviews, hours, coordinates, and local business data as structured JSON. It returns Maps results without managing the official Places API quota or a headless browser.
Google Maps lists each business's website and phone, not its email. Pair the Maps results with Crawlora's Contact API to pull emails and social profiles from each business's website — the missing piece for outreach.
Scraping publicly visible place and business data is generally permissible if you respect Google's terms of use, robots directives, rate limits, and applicable law. This is for public data you're authorized to collect.