Google Maps Geocoding Scraper avatar

Google Maps Geocoding Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
Google Maps Geocoding Scraper

Google Maps Geocoding Scraper

Bidirectional geocoding via Google Maps: convert addresses to coordinates (forward) or coordinates to addresses (reverse). Batch input supported with structured address components, place IDs, plus codes, and place categories.

Pricing

from $3.00 / 1,000 results

Rating

5.0

(1)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

0

Bookmarked

29

Total users

8

Monthly active users

a day ago

Last modified

Share

Bidirectional geocoding via Google Maps. Convert street addresses into latitude/longitude coordinates (forward geocoding), or convert coordinates back into a human-readable address (reverse geocoding). Supports batch input, multiple languages, and country bias for ambiguous queries. It works without a login, cookies, or an API key.

What this actor does

  • Forward geocoding — given an address, returns the resolved coordinates, place ID, structured address components, plus code, and a stable Google Maps URL.
  • Reverse geocoding — given a {lat, lng} pair, returns the nearest matched place name and address. When Google answers a coordinate with a dropped pin instead of a named place, the resolved record carries the locality Google prints for it (city / region / country) plus the exact coordinate — never an invented street address.

Only resolved Google Maps results are written to the dataset. Inputs that Google cannot resolve are reported in the actor log/status and do not create placeholder or error rows.

Input

FieldTypeDescription
modeenum (forward | reverse)Which direction to geocode. Default: forward.
addressstringA single address (forward mode).
addressesarray of stringsBatch of addresses (forward mode).
locationobject {lat, lng}A single coordinate (reverse mode).
locationsarray of {lat, lng}Batch of coordinates (reverse mode).
languageenumInterface language (en, es, fr, de, it, pt, ja, ko, zh, ar, ru). Default: en.
countrystringOptional ISO 3166-1 alpha-2 code (e.g. US, GB) used to bias results when an address is ambiguous.
proxyConfigurationproxyOptional. Direct access is tried first; unresolved items use the bounded hardcoded Apify US RESIDENTIAL recovery path unless direct-only mode is explicitly requested.

Examples

Example: forward geocode one address

{
"mode": "forward",
"address": "1600 Amphitheatre Parkway, Mountain View, CA",
"language": "en"
}

Example: forward geocode a batch

{
"mode": "forward",
"addresses": [
"Eiffel Tower, Paris",
"Big Ben, London",
"Tokyo Tower, Tokyo"
],
"language": "en"
}

Example: reverse geocode one coordinate

{
"mode": "reverse",
"location": {"lat": 40.7579, "lng": -73.9855}
}

Example: reverse geocode a batch

{
"mode": "reverse",
"locations": [
{"lat": 48.8584, "lng": 2.2945},
{"lat": 35.6586, "lng": 139.7454},
{"lat": -33.8568, "lng": 151.2153}
]
}

Output per location

Each dataset record contains a subset of these fields (empty fields are omitted):

FieldTypeDescription
recordTypestringActor row discriminator (geocode).
modestring"forward" or "reverse".
inputAddressstringOriginal address (forward mode only).
inputLocationobjectOriginal coordinates (reverse mode only).
resolvedbooleanWhether Google resolved the input to a place.
namestringPlace name (h1 on the place page); often blank for pure street addresses.
formattedAddressstringFull address as Google formats it.
locationobject{lat, lng} of the resolved place.
placeIdstringCanonical Google Place ID beginning with ChIJ, when Google exposes one.
featureIdstringLegacy feature/CID token (0x…:0x…), when Google exposes one.
plusCodestringOpen Location Code if present.
addressComponentsobjectStructured {streetNumber, street, city, state, postalCode, country, countryCode}.
categoryNamestringGoogle's category label when the resolved place is a business.
googleMapsUrlstringStable /maps/place/ URL.
sourceUrlstringResolved Maps page URL used as the source context; omitted when unavailable.
scrapedAtstringUTC ISO-8601 timestamp.

Example output

{
"recordType": "geocode",
"mode": "forward",
"inputAddress": "1600 Amphitheatre Parkway, Mountain View, CA",
"resolved": true,
"name": "Google Building 41",
"formattedAddress": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
"location": {"lat": 37.4224864, "lng": -122.0855962},
"featureId": "0x808fba02f1822489:0x37a9269fbae1c4f7",
"plusCode": "CWC8+W4 Mountain View, California",
"addressComponents": {
"streetNumber": "1600",
"street": "Amphitheatre Pkwy",
"city": "Mountain View",
"state": "CA",
"postalCode": "94043",
"country": "USA",
"countryCode": "US"
},
"categoryName": "Corporate office",
"googleMapsUrl": "https://www.google.com/maps/place/...",
"sourceUrl": "https://www.google.com/maps/place/...",
"scrapedAt": "2026-06-16T12:00:00+00:00"
}

FAQ

Q: Do I need an API key? No. This scraper uses the public Google Maps web interface — no API key, no quota, no billing.

Q: How many results does it return per input? One record per input. If an address is ambiguous, Google picks the highest-confidence match (the same one you would see at the top of maps.google.com).

Q: How accurate are the coordinates? Coordinates are extracted directly from Google's resolved /maps/place/… URL with full precision (often 7 decimal places, sub-centimetre accuracy).

Q: Why does my batch of 10 addresses take 1–2 minutes? The scraper navigates a real browser for each address with a small polite delay between requests to avoid rate-limiting. Throughput is roughly 5–8 addresses per minute.

Q: Should I use a proxy? The actor tries direct access first, then retries unresolved items through its hardcoded Apify US RESIDENTIAL path. This keeps the cookieless path resilient without treating a blocked or consent-only render as a real unresolved result. Set {"useApifyProxy": false} only for a direct-only diagnostic.

Q: What languages are supported? The language input controls the Google Maps interface language and the format of the returned address (e.g. street names, country names in the target language). Currently exposed: English, Spanish, French, German, Italian, Portuguese, Japanese, Korean, Chinese, Arabic, Russian.

Q: Can I bias results to a specific country? Yes. Set country to an ISO 3166-1 alpha-2 code (e.g. US, GB, FR). The scraper appends the country name to ambiguous queries (e.g. Big Ben → Big Ben, UK).

Q: What happens for unresolvable inputs? The actor logs each unresolved input and names them in the run status, and leaves the dataset unchanged for that item. It never creates a placeholder or error row. Google answers an address it cannot place with nearby results rather than a "no match" page — a real business, with a real street address, unrelated to the input — so a forward lookup is only resolved when Google's own answer repeats a distinctive word of the address you asked for — reading the matched place's own-script name when the interface language renders the answer in another script. A substitute is reported as unresolved instead of being emitted as the answer.

Use cases

  • Convert a CSV of customer addresses to coordinates for mapping.
  • Enrich event logs with city/state/country from raw GPS pings.
  • Validate user-submitted addresses against Google's canonical form.
  • Reverse-geocode IoT device locations or photo EXIF coordinates.
  • Compare address-component parsing across multiple countries.

Data source

This actor scrapes Google Maps directly. It does not call the Google Maps Geocoding API, so no Google Cloud project, billing account, or API key is required.

You are responsible for using these results lawfully and in line with Google's terms.

🗺️ Complete Google Maps Scraper Suite

This actor is part of a comprehensive Google Maps data extraction toolkit by crawlerbros. All actors run cookielessly on the free Apify plan with bounded direct, retry, and residential recovery paths, and return clean, structured data.

ActorWhat it does
🏢 Google Maps Business ScraperExtract business data — name, address, phone, website, rating, reviews, hours, amenities
⭐ Google Maps Reviews ScraperScrape reviews with reviewer Local Guide level, photos, mentioned items, owner replies
📸 Google Maps Photos ScraperExtract all photos from any place — max-resolution URLs, contributor info, categories
🕐 Google Maps Business Hours ScraperFull 7-day hours, timezone, current local time, next open/close, holiday hours
📊 Google Maps Popular Times ScraperBusy hours histogram for all 7 days + current busyness + typical visit time
📧 Google Maps Email ExtractorFind business emails + social media links by crawling websites
🗺️ Google Maps Area ScannerGeographic grid scanning — bypass the 120-place limit with bounding box / circle / polygon
💼 Google Maps Leads ScraperB2B lead generation with email + phone enrichment, US states + global countries
🤖 Google Maps MCP ServerUnified MCP server combining search + reviews for AI assistants
🧭 Google Maps Directions ScraperA→B routing — distance, duration, traffic, route alternatives for driving/walking/transit
🔗 Google Maps Similar Places Scraper"People also search for" / related place discovery — competitor & alternative finder
🍽️ Google Maps Menu ScraperRestaurant menu items, prices, descriptions, photos
📌 Google Maps Nearby ScraperFind places near a coordinate point — lightweight POI search by category
📋 Google Maps Place List ScraperExtract Google's curated "Top X in Y" lists — best hotels/restaurants/things to do
🌍 Google Maps Timezone ScraperIANA timezone + current local time from coordinates