ScraperCity logo

Google Maps Scraper API Documentation

Google Maps Scraper

Extract business listings from Google Maps with contact details and reviews

$0.0099 per businessPOST /api/v1/scrape/maps

Parameters

NameTypeRequiredDescription
searchStringsArraystring[]OptionalArray of search terms to find businessesExample: ["coffee shop", "cafe", "espresso bar"]
locationQuerystringOptionalCity, state, or address for the search areaExample: New York, NY
customGeolocationobjectOptionalAlternative to locationQuery - bounding box coordinatesExample: {"lat1": 40.7, "lng1": -74.0, "lat2": 40.8, "lng2": -73.9}
maxCrawledPlacesPerSearchnumberOptionalMaximum results per search termDefault: 100Example: 10
urlstringOptionalA Google Maps search link, instead of searchStringsArray and locationQuery. Its search words become the keywords and the place in them the location ("thai restaurants vegas" runs "thai restaurants" in Las Vegas, Nevada). With no place in the words, the map area the link shows is searched. The response says what it ran in search_translation. searchStringsArray, locationQuery or customGeolocation sent with it are used instead of the matching part of the link.Example: https://www.google.com/maps/search/plumbers+in+Austin,+TX

Examples

Scrape the search in a Google Maps link

curl -X POST https://app.scrapercity.com/api/v1/scrape/maps \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://www.google.com/maps/search/plumbers+in+Austin,+TX",
    "maxCrawledPlacesPerSearch": 100
  }'

Find coffee shops in San Francisco

curl -X POST https://app.scrapercity.com/api/v1/scrape/maps \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "searchStringsArray": ["coffee shop", "cafe", "espresso bar"],
    "locationQuery": "San Francisco, CA",
    "maxCrawledPlacesPerSearch": 50
  }'

Search restaurants in Manhattan

curl -X POST https://app.scrapercity.com/api/v1/scrape/maps \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "searchStringsArray": ["pizza", "italian restaurant", "pasta"],
    "locationQuery": "Manhattan, NY",
    "maxCrawledPlacesPerSearch": 10
  }'

Use Cases

  • •Build local business prospect lists for B2B sales
  • •Market research and competitive analysis by location
  • •Lead generation for local service providers
  • •Franchise opportunity research and site selection
  • •Create targeted direct mail campaigns

Best Practices

  • •REQUIRED: At least one of searchStringsArray, url or startUrls must be provided
  • •searchStringsArray expects an array of search terms
  • •Use locationQuery OR customGeolocation (not both) to define search area
  • •maxCrawledPlacesPerSearch applies per search term
  • •Results include name, address, phone, website, rating
  • •Includes business hours and review count
  • •Can be cancelled while running

Every scrape returns a runId. Poll GET /api/v1/scrape/status/{runId} until it completes, then download via GET /api/downloads/{runId}?format=csv.

Authenticate every request with Authorization: Bearer YOUR_API_KEY. See the full API reference for authentication, rate limits and error codes.