Google Maps Search Scraper
$1/1000
results
Search Google Maps by keyword, nearby, radius, bounding box, area, or bulk queries.
Google Maps Search Scraper
Search Google Maps by keyword, nearby, radius, bounding box, area, or bulk queries.
$1/1000
results
Search Google Maps by keyword, nearby, radius, bounding box, area, or bulk queries.
Search Google Maps by keyword, nearby, radius, bounding box, area, or bulk queries.
Google Maps Search Scraper discovers Google Maps business listings using flexible search modes: keyword, nearby, radius, bounding box, area, and bulk queries. It returns clean, structured JSON for each place — including place ID, business ID, name, category, rating, review count, phone, website, address components, coordinates, Maps URL, status, and media thumbnails.
This is the discovery layer of the Google Maps scraper suite. Lead-gen teams, market researchers, and location analysts use it to build target lists before enriching profiles, reviews, or posts with the sibling scrapers. One run can cover a city keyword search, a geo-fenced radius around a pin, or dozens of bulk queries.
Results are normalized for downstream use: store them as a lead database, pass placeId / Maps URLs into the Business or Reviews scrapers, or feed geospatial BI tools. You get structured JSON — not screenshots or brittle HTML.
Google Maps Search Scraper discovers Google Maps business listings using flexible search modes: keyword, nearby, radius, bounding box, area, and bulk queries. It returns clean, structured JSON for each place — including place ID, business ID, name, category, rating, review count, phone, website, address components, coordinates, Maps URL, status, and media thumbnails.
This is the discovery layer of the Google Maps scraper suite. Lead-gen teams, market researchers, and location analysts use it to build target lists before enriching profiles, reviews, or posts with the sibling scrapers. One run can cover a city keyword search, a geo-fenced radius around a pin, or dozens of bulk queries.
Results are normalized for downstream use: store them as a lead database, pass placeId / Maps URLs into the Business or Reviews scrapers, or feed geospatial BI tools. You get structured JSON — not screenshots or brittle HTML.
Tune language, country, category filters, and maxResults to balance coverage with cost. Whether you need “coffee shops near Midtown” or a multi-query franchise census, the scraper adapts to the geography and query style you choose.
Tune language, country, category filters, and maxResults to balance coverage with cost. Whether you need “coffee shops near Midtown” or a multi-query franchise census, the scraper adapts to the geography and query style you choose.
keyword, nearby, radius, boundingBox, area, and bulkqueriesmaxResultslanguage and country for localized Maps resultsbusinessCategorykeyword, nearby, radius, boundingBox, area, and bulkqueriesmaxResultslanguage and country for localized Maps resultsbusinessCategory| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| searchMode | string | Yes | "keyword" | Discovery mode: keyword, nearby, radius, boundingBox, area, or bulk. |
| query | string | Conditional | — | Search keyword for keyword, nearby, radius, boundingBox, and area modes (e.g. Restaurants in Manhattan). |
| queries | array of string | Conditional | — | Multiple keywords for bulk mode. |
| latitude | number | Conditional | — | Center latitude for nearby or radius search. |
| longitude | number | Conditional | — | Center longitude for nearby or radius search. |
| radius | integer | No | 1000 | Search radius in meters (used with radius mode). |
| north | number | Conditional | — | North latitude bound for boundingBox. |
| south | number | Conditional | — | South latitude bound for boundingBox. |
| east | number | Conditional | — | East longitude bound for boundingBox. |
| west | number | Conditional | — | West longitude bound for boundingBox. |
| area | string | Conditional | — | Named area string for area mode (e.g. a neighborhood or district label). |
| maxResults | string (numeric) | No | "50" | Maximum number of places to collect for the run. |
| language | string | No | "en" | Response language code (e.g. en, es, de). |
| country | string | No | — | Country code bias for keyword/bulk search (e.g. US, GB). |
| businessCategory | string | No | — | Optional category filter to narrow matching businesses. |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| searchMode | string | Yes | "keyword" | Discovery mode: keyword, nearby, radius, boundingBox, area, or bulk. |
| query | string | Conditional | — | Search keyword for keyword, nearby, radius, boundingBox, and area modes (e.g. Restaurants in Manhattan). |
| queries | array of string | Conditional | — | Multiple keywords for bulk mode. |
| latitude | number | Conditional | — | Center latitude for nearby or radius search. |
| longitude | number | Conditional | — | Center longitude for nearby or radius search. |
| radius | integer | No | 1000 | Search radius in meters (used with radius mode). |
| north | number | Conditional | — | North latitude bound for boundingBox. |
| south | number | Conditional | — | South latitude bound for boundingBox. |
| east | number | Conditional | — | East longitude bound for boundingBox. |
| west | number | Conditional | — | West longitude bound for boundingBox. |
| area | string | Conditional | — | Named area string for area mode (e.g. a neighborhood or district label). |
| maxResults | string (numeric) | No | "50" | Maximum number of places to collect for the run. |
| language | string | No | "en" | Response language code (e.g. en, es, de). |
| country | string | No | — | Country code bias for keyword/bulk search (e.g. US, GB). |
| businessCategory | string | No | — | Optional category filter to narrow matching businesses. |
searchMode=keyword — Uses query (+ optional country / language) for classic Maps search.nearby / radius — Requires latitude + longitude; radius (meters) scopes how far results may extend.boundingBox — Requires north, south, east, west to confine discovery to a rectangle.area — Uses area (and usually query) for named-region discovery.bulk — Iterates queries instead of a single query.maxResults — Hard stop on how many listings are returned; lower for quick samples, higher for coverage.businessCategory — Further filters results when you need a tighter vertical (e.g. only cafés).searchMode=keyword — Uses query (+ optional country / language) for classic Maps search.nearby / radius — Requires latitude + longitude; radius (meters) scopes how far results may extend.boundingBox — Requires north, south, east, west to confine discovery to a rectangle.area — Uses area (and usually query) for named-region discovery.bulk — Iterates queries instead of a single query.maxResults — Hard stop on how many listings are returned; lower for quick samples, higher for coverage.businessCategory — Further filters results when you need a tighter vertical (e.g. only cafés).Each result is one Google Maps place overview.
Each result is one Google Maps place overview.
| Field | Type | Description |
|---|---|---|
| placeId | string \| null | Google place ID |
| businessId | string \| null | Business identifier |
| cid | string \| null | Customer / CID identifier when available |
| name | string \| null | Business name |
| category | string \| null | Primary category |
| categories | array \| null | Additional categories |
| rating | number \| null | Average rating |
| reviewCount | number \| null | Number of reviews |
| priceLevel | string \| null | Price level indicator (e.g. $, $$) |
| phone | string \| null | Phone number |
| website | string \| null | Website URL |
| address | string \| null | Full formatted address |
| city | string \| null | City / locality |
| state | string \| null | State / region |
| country | string \| null | Country |
| postalCode | string \| null | Postal / ZIP code |
| latitude | number \| null | Latitude |
| longitude | number \| null | Longitude |
| googleMapsUrl | string \| null | Canonical Maps URL |
| businessStatus | string \| null | Open / closed / operational status |
| verified | boolean \| null | Verification flag |
| thumbnail | string \| null | Thumbnail image URL |
| coverPhoto | string \| null | Cover photo URL |
| timezone | string \| null | Timezone |
| plusCode | string \| null | Plus Code |
| Field | Type | Description |
|---|---|---|
| placeId | string \| null | Google place ID |
| businessId | string \| null | Business identifier |
| cid | string \| null | Customer / CID identifier when available |
| name | string \| null | Business name |
| category | string \| null | Primary category |
| categories | array \| null | Additional categories |
| rating | number \| null | Average rating |
| reviewCount | number \| null | Number of reviews |
| priceLevel | string \| null | Price level indicator (e.g. $, $$) |
| phone | string \| null | Phone number |
| website | string \| null | Website URL |
| address | string \| null | Full formatted address |
| city | string \| null | City / locality |
| state | string \| null | State / region |
| country | string \| null | Country |
| postalCode | string \| null | Postal / ZIP code |
| latitude | number \| null | Latitude |
| longitude | number \| null | Longitude |
| googleMapsUrl | string \| null | Canonical Maps URL |
| businessStatus | string \| null | Open / closed / operational status |
| verified | boolean \| null | Verification flag |
| thumbnail | string \| null | Thumbnail image URL |
| coverPhoto | string \| null | Cover photo URL |
| timezone | string \| null | Timezone |
| plusCode | string \| null | Plus Code |
Optional fields vary by listing completeness. Use placeId or googleMapsUrl as inputs to the Business, Reviews, or Posts scrapers for deeper extraction.
Optional fields vary by listing completeness. Use placeId or googleMapsUrl as inputs to the Business, Reviews, or Posts scrapers for deeper extraction.
{
"placeId": "ChIJrTLr-GyuEmsRBfy61i59si0",
"businessId": "0x6b12ae665cc020ad:0xfc0f8a0eecc295cf",
"cid": "18166148402119130703",
"name": "Joe's Pizza",
"category": "Pizza restaurant",
"categories": ["Pizza restaurant", "Italian restaurant"],
"rating": 4.6,
"reviewCount": 4821,
"priceLevel": "$$",
"phone": "+1 212-366-1182",
"website": "https://www.joespizzanyc.com/",
"address": "7 Carmine St, New York, NY 10014, United States",
"city": "New York",
"state": "NY",
"country": "US",
"postalCode": "10014",
"latitude": 40.7305959,
"longitude": -74.0021364,
"googleMapsUrl": "https://www.google.com/maps/place/?q=place_id:ChIJrTLr-GyuEmsRBfy61i59si0",
"businessStatus": "OPERATIONAL",
"verified": true,
"thumbnail": "https://lh3.googleusercontent.com/places/joes-pizza-thumb.jpg",
"coverPhoto": "https://lh3.googleusercontent.com/places/joes-pizza-cover.jpg",
"timezone": "America/New_York",
"plusCode": "87G8+6R New York"
}
{
"placeId": "ChIJrTLr-GyuEmsRBfy61i59si0",
"businessId": "0x6b12ae665cc020ad:0xfc0f8a0eecc295cf",
"cid": "18166148402119130703",
"name": "Joe's Pizza",
"category": "Pizza restaurant",
"categories": ["Pizza restaurant", "Italian restaurant"],
"rating": 4.6,
"reviewCount": 4821,
"priceLevel": "$$",
"phone": "+1 212-366-1182",
"website": "https://www.joespizzanyc.com/",
"address": "7 Carmine St, New York, NY 10014, United States",
"city": "New York",
"state": "NY",
"country": "US",
"postalCode": "10014",
"latitude": 40.7305959,
"longitude": -74.0021364,
"googleMapsUrl": "https://www.google.com/maps/place/?q=place_id:ChIJrTLr-GyuEmsRBfy61i59si0",
"businessStatus": "OPERATIONAL",
"verified": true,
"thumbnail": "https://lh3.googleusercontent.com/places/joes-pizza-thumb.jpg",
"coverPhoto": "https://lh3.googleusercontent.com/places/joes-pizza-cover.jpg",
"timezone": "America/New_York",
"plusCode": "87G8+6R New York"
}