Google Geocoding Scraper - Most Comprehensive
Pricing
from $0.10 / 1,000 addresses
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
Maintained by CommunityActor stats
0
Bookmarked
21
Total users
13
Monthly active users
a day ago
Last modified
Categories
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,longitudecoordinate into nearby addresses and geographic areas. - Submit forward and reverse queries together in one run.
- Localize results with
languageand bias ambiguous forward searches withregionorbounds. - Restrict forward results with
components. - Restrict reverse results with
resultTypeandlocationType. - 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.
| Field | Type | Default | Applies to | Description |
|---|---|---|---|---|
addresses | string[] | — | Forward | Addresses or place descriptions to convert into coordinates. |
latlngs | string[] | — | Reverse | Coordinates written as latitude,longitude. |
language | string | — | Both | Preferred result language, such as en, ja, de, or fr. |
region | string | — | Forward | Country-code region bias, such as us, uk, or de. This influences ranking rather than imposing a strict country filter. |
components | string | — | Forward | Component filter such as country:US or country:US|postal_code:94043. |
bounds | string | — | Forward | Viewport bias written as southwestLat,southwestLng|northeastLat,northeastLng. |
resultType | string | — | Reverse | Pipe-separated result types such as street_address|locality. |
locationType | string | — | Reverse | Pipe-separated precision filters such as ROOFTOP|APPROXIMATE. |
maxConcurrency | integer | 10 | Both | Number of queries processed in parallel, from 1 to 50. |
proxyConfiguration | object | {"useApifyProxy":true} | Both | Uses 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.
| Field | Type | Description |
|---|---|---|
query | string | The submitted address or coordinate. |
mode | string | forward or reverse. |
status | string | OK, ZERO_RESULTS, INVALID_REQUEST, or ERROR. |
errorMessage | string | A safe explanation for INVALID_REQUEST or ERROR; omitted otherwise. |
results | array | Matched locations. Empty for every non-OK status. |
Each item in results can contain:
| Field | Type | Description |
|---|---|---|
address | string | Formatted address. |
placeId | string | Place identifier supplied with the result. |
lat, lng | number | Result coordinates. |
locationType | string | ROOFTOP, RANGE_INTERPOLATED, GEOMETRIC_CENTER, or APPROXIMATE. |
types | string[] | Categories associated with the result. This array can be empty. |
components | object | Normalized address parts plus the complete raw component array. |
viewport | object | Recommended map viewport with ne and sw corners. |
bounds | object | Precise bounds when available. |
partialMatch | boolean | Whether the result is an approximate or partial match. |
plusCode | object | Global and compound plus codes when available. |
postcodeLocalities | string[] | 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
OKmeans at least one complete result was saved.ZERO_RESULTSmeans the query was valid but no location matched.INVALID_REQUESTmeans the submitted coordinate or filter combination was not accepted.ERRORmeans 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.