Google Geocoding Scraper - Most Comprehensive avatar

Google Geocoding Scraper - Most Comprehensive

Pricing

from $0.10 / 1,000 addresses

Go to Apify Store
Google Geocoding Scraper - Most Comprehensive

Google Geocoding Scraper - Most Comprehensive

🔥 ~$0.1/1K addresses 🔥 Forward and reverse geocode with Google: addresses to coordinates, coordinates to addresses. Structured address components, place IDs, viewport, plus codes. No Google API key required.

Pricing

from $0.10 / 1,000 addresses

Rating

0.0

(0)

Developer

Kai

Kai

Maintained by Community

Actor stats

0

Bookmarked

21

Total users

13

Monthly active users

a day ago

Last modified

Share

Google Geocoding Scraper

Convert addresses into coordinates or coordinates into structured addresses. Each submitted query produces one Dataset record with a clear status, matched locations, normalized address components, place IDs, map bounds, and other location metadata when available.

What you can do

  • Forward geocode a street address, landmark, city, postal code, or place description.
  • Reverse geocode a latitude,longitude coordinate into nearby addresses and geographic areas.
  • Submit forward and reverse queries together in one run.
  • Localize results with language and bias ambiguous forward searches with region or bounds.
  • Restrict forward results with components.
  • Restrict reverse results with resultType and locationType.
  • Process batches concurrently while preserving one output record for every submitted query, including duplicates.

Quick start

Addresses to coordinates

{
"addresses": [
"Eiffel Tower, Paris, France",
"Sydney Opera House, Australia"
]
}

Coordinates to addresses

{
"latlngs": [
"40.748817,-73.985428",
"48.8584,2.2945"
]
}

Forward and reverse queries in one run

{
"addresses": ["Times Square, New York"],
"latlngs": ["34.0522,-118.2437"],
"maxConcurrency": 20
}

Input

At least one non-empty entry in addresses or latlngs is required. You can provide both arrays. Empty or whitespace-only queries are rejected.

FieldTypeDefaultApplies toDescription
addressesstring[]ForwardAddresses or place descriptions to convert into coordinates.
latlngsstring[]ReverseCoordinates written as latitude,longitude.
languagestringBothPreferred result language, such as en, ja, de, or fr.
regionstringForwardCountry-code region bias, such as us, uk, or de. This influences ranking rather than imposing a strict country filter.
componentsstringForwardComponent filter such as country:US or country:US|postal_code:94043.
boundsstringForwardViewport bias written as southwestLat,southwestLng|northeastLat,northeastLng.
resultTypestringReversePipe-separated result types such as street_address|locality.
locationTypestringReversePipe-separated precision filters such as ROOFTOP|APPROXIMATE.
maxConcurrencyinteger10BothNumber of queries processed in parallel, from 1 to 50.
proxyConfigurationobject{"useApifyProxy":true}BothUses Apify Proxy by default. Supply connection settings to customize or disable proxying.

Forward-only settings are ignored for coordinate queries. Reverse-only settings are ignored for address queries. Shared settings apply to every compatible query in the run.

Localize and bias an ambiguous place

{
"addresses": ["Toledo"],
"language": "es",
"region": "es"
}

Restrict a forward query by country and viewport

{
"addresses": ["Springfield"],
"components": "country:US",
"bounds": "39.70,-89.80|40.10,-89.40"
}

Filter reverse results

{
"latlngs": ["37.4224764,-122.0842499"],
"resultType": "street_address",
"locationType": "ROOFTOP"
}

Output

The default Dataset contains one record per submitted query. When concurrency is greater than 1, records can arrive in a different order from the input. Match them by query and mode rather than Dataset position.

FieldTypeDescription
querystringThe submitted address or coordinate.
modestringforward or reverse.
statusstringOK, ZERO_RESULTS, INVALID_REQUEST, or ERROR.
errorMessagestringA safe explanation for INVALID_REQUEST or ERROR; omitted otherwise.
resultsarrayMatched locations. Empty for every non-OK status.

Each item in results can contain:

FieldTypeDescription
addressstringFormatted address.
placeIdstringPlace identifier supplied with the result.
lat, lngnumberResult coordinates.
locationTypestringROOFTOP, RANGE_INTERPOLATED, GEOMETRIC_CENTER, or APPROXIMATE.
typesstring[]Categories associated with the result. This array can be empty.
componentsobjectNormalized address parts plus the complete raw component array.
viewportobjectRecommended map viewport with ne and sw corners.
boundsobjectPrecise bounds when available.
partialMatchbooleanWhether the result is an approximate or partial match.
plusCodeobjectGlobal and compound plus codes when available.
postcodeLocalitiesstring[]Localities associated with a postal code when available.

components may include streetNumber, street, city, state, stateCode, country, countryCode, postalCode, neighborhood, sublocality, and administrativeAreaLevel2. Its raw array preserves every returned component as longName, shortName, and types.

Real output

The record below is the complete, unchanged Dataset item from a live run for Eiffel Tower, Paris, France.

{
"query": "Eiffel Tower, Paris, France",
"mode": "forward",
"status": "OK",
"results": [
{
"address": "Av. Gustave Eiffel, 75007 Paris, France",
"placeId": "ChIJLU7jZClu5kcR4PcOOO6p3I0",
"lat": 48.85837009999999,
"lng": 2.2944813,
"locationType": "GEOMETRIC_CENTER",
"types": [
"establishment",
"point_of_interest",
"tourist_attraction"
],
"components": {
"street": "Avenue Gustave Eiffel",
"city": "Paris",
"state": "Île-de-France",
"stateCode": "IDF",
"country": "France",
"countryCode": "FR",
"postalCode": "75007",
"administrativeAreaLevel2": "Paris",
"raw": [
{
"longName": "Avenue Gustave Eiffel",
"shortName": "Av. Gustave Eiffel",
"types": ["route"]
},
{
"longName": "Paris",
"shortName": "Paris",
"types": ["locality", "political"]
},
{
"longName": "Paris",
"shortName": "Paris",
"types": ["administrative_area_level_2", "political"]
},
{
"longName": "Île-de-France",
"shortName": "IDF",
"types": ["administrative_area_level_1", "political"]
},
{
"longName": "France",
"shortName": "FR",
"types": ["country", "political"]
},
{
"longName": "75007",
"shortName": "75007",
"types": ["postal_code"]
}
]
},
"viewport": {
"ne": {
"lat": 48.8593817802915,
"lng": 2.296314600000001
},
"sw": {
"lat": 48.8566838197085,
"lng": 2.2934008
}
},
"partialMatch": false,
"plusCode": {
"globalCode": "8FW4V75V+8Q",
"compoundCode": "V75V+8Q Paris, France"
}
}
]
}

Status behavior

  • OK means at least one complete result was saved.
  • ZERO_RESULTS means the query was valid but no location matched.
  • INVALID_REQUEST means the submitted coordinate or filter combination was not accepted.
  • ERROR means that individual query could not be completed after retries. Other queries in the same batch continue.

If every query ends in ERROR, the records are still saved and the run is marked failed so automated workflows do not treat a fully broken batch as successful.

Data and privacy

Submitted queries and result records are stored with the run in its input storage and default Dataset. Their retention follows the storage settings of the account running the Actor. Runtime logs contain counts, query position, mode, status, and result totals; they do not repeat submitted addresses or coordinates.

Location data can change over time. Region and bounds settings bias ranking, while component and reverse filters restrict eligible results. Reverse geocoding can return several records at different geographic levels, from a specific address to a city, region, or country.