Skip to content
    ↑↓ to choose · Enter to open

    September 24, 2026 · 14 min read

    Google Maps Geocoding Scraper: 13 Data Fields per Record (2026)

    By Crawlerbros Engineering Team

    Each input for this Actor produces exactly one record in the dataset, carrying 13 output fields including the resolved coordinates, place ID, structured address components, and a stable Google Maps URL. Records where Google cannot resolve the input are still pushed with "resolved": false for auditing. This Actor supports batch input, multiple languages, and country bias for ambiguous queries. It is suitable for developers integrating location data into applications or analysts cleaning address datasets. It is not for anyone who needs to extract business-specific details like operating hours or reviews, which the records do not include.

    Try it before you read further. Apify's free plan includes $5.00 of usage every month with no credit card, enough for up to 1,000 results at $0.005 each before platform usage. Open Google Maps Geocoding Scraper on Apify and run the prefilled example.

    How reliable is Google Maps Geocoding Scraper in production?

    Across the last 30 days of public runs on the Apify platform, Google Maps Geocoding Scraper recorded 328 runs with the following outcomes.

    Outcome Runs Share
    Succeeded 305 93.0%
    Failed 5 1.5%
    Aborted by the user 14 4.3%
    Timed out 4 1.2%
    Total 328 100.0%

    About 3 runs in a hundred failed or timed out in the last 30 days, a rate that requires attention when scheduling this Actor unattended. Plan for retries in your workflow, especially for large input batches, and consider setting up alerts if the success rate drops below acceptable thresholds. Monitoring individual run failures can help identify patterns related to input data.

    What does it cost to run Google Maps Geocoding Scraper?

    Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.

    Apify plan Per result Per 1,000 results
    FREE $0.005 $5.00
    BRONZE $0.00433 $4.33
    SILVER $0.00367 $3.67
    GOLD $0.003 $3.00
    PLATINUM $0.003 $3.00
    DIAMOND $0.003 $3.00

    Worked example: collecting 10,000 results costs $50.00 in result charges before run-start fees and platform usage. With 2.7% of runs failing or timing out in the last 30 days, budget for re-running a portion of those batches rather than assuming every run completes.

    The number of addresses or locations provided as input has the largest effect on the billing for this Actor, as each successfully processed input counts as one result. To determine if this Actor meets your needs before incurring significant costs, start by running a small batch of inputs to verify the output format and accuracy.

    How do you run Google Maps Geocoding Scraper from the API?

    None of its 8 controls is strictly required, so the defaults below produce a valid run on their own. Nothing in the payload below is illustrative. Those are the schema's prefilled defaults for Google Maps Geocoding Scraper, so the request works once your token is in place.

    Call the synchronous endpoint to start a run and receive dataset items in one request:

    curl -X POST "https://api.apify.com/v2/acts/crawlerbros~google-maps-geocoding/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"mode":"forward","addresses":["1600 Amphitheatre Parkway, Mountain View, CA"],"language":"en"}'
    

    The same run from Python, using the official client:

    from apify_client import ApifyClient
    
    client = ApifyClient("<YOUR_APIFY_TOKEN>")
    
    run_input = {
      "mode": "forward",
      "addresses": [
        "1600 Amphitheatre Parkway, Mountain View, CA"
      ],
      "language": "en"
    }
    
    run = client.actor("crawlerbros~google-maps-geocoding").call(run_input=run_input)
    
    for item in client.dataset(run["defaultDatasetId"]).iterate_items():
        print(item)
    

    And from Node.js:

    import { ApifyClient } from 'apify-client'
    
    const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
    
    const input = {
      "mode": "forward",
      "addresses": [
        "1600 Amphitheatre Parkway, Mountain View, CA"
      ],
      "language": "en"
    }
    
    const run = await client.actor('crawlerbros~google-maps-geocoding').call(input)
    const { items } = await client.dataset(run.defaultDatasetId).listItems()
    console.log(items)
    

    Because the call is synchronous, your client waits for the whole run. Keep it for exploration. For scheduled work, start the run without waiting and collect the dataset afterwards, so network trouble costs you a retry rather than the results.

    Which Google Maps Geocoding Scraper inputs matter, and which can you skip?

    The "mode" control is central to this Actor, directing whether you're converting addresses to coordinates ("forward") or the other way around ("reverse"). For initial runs, focus on populating either the "addresses" array for forward geocoding or the "locations" array for reverse geocoding. Most users can leave "language" and "country" at their defaults for a first pass.

    • mode (string): forward = address -> coordinates. reverse = coordinates -> address. Default: "forward".
    • address (string): A single address for forward geocoding. Used when mode = forward.
    • addresses (array): List of addresses for batch forward geocoding. Used when mode = forward.
    • location (object): A single {lat, lng} coordinate for reverse geocoding. Used when mode = reverse. Example: {"lat": 40.7484, "lng": -73.9857}
    • locations (array): List of {lat, lng} coordinates for batch reverse geocoding. Used when mode = reverse. Example: [{"lat": 40.7484, "lng": -73.9857}]
    • language (string): Language code for the Google Maps interface and result formatting. Default: "en".
    • country (string): Optional ISO 3166-1 alpha-2 country code (e.g. "US", "GB", "FR") used to bias results toward that country when an address is ambiguous.
    • proxyConfiguration (object): Optional proxy. Apify proxy may route through regions that trigger Google consent pages; the default no-proxy path is usually more reliable.

    Fixed-choice controls: mode accepts forward (address -> coordinates), reverse (coordinates -> address); language accepts 11 values (default en), including en (English), es (Spanish), fr (French), de (German).

    What does Google Maps Geocoding Scraper return?

    The returned records are suitable for applications requiring precise geographical coordinates or standardized address components. You get the resolved latitude and longitude, the formatted address, and structured components like city, state, and country. These records conspicuously do not contain any information about businesses, such as phone numbers, websites, or reviews.

    • mode: string - "forward" or "reverse".
    • inputAddress: string - Original address (forward mode only).
    • inputLocation: object - Original coordinates (reverse mode only).
    • resolved: boolean - Whether Google resolved the input to a place.
    • formattedAddress: string - Full address as Google formats it.
    • location: object - {lat, lng} of the resolved place.
    • placeId: string - Google's internal feature ID (hex:hex format).
    • plusCode: string - Open Location Code if present.
    • addressComponents: object - Structured {streetNumber, street, city, state, postalCode, country, countryCode}.
    • categoryName: string - Google's category label when the resolved place is a business.
    • googleMapsUrl: string - Stable /maps/place/ URL.
    • scrapedAt: string - UTC ISO-8601 timestamp.
    • error: string - Present only when scraping failed.

    These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.

    How do you build the workflow end to end?

    Open Google Maps Geocoding Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

    1. Set the "mode" to "forward" to convert addresses to coordinates.
    2. Provide a list of addresses in the "addresses" input field. Start with a small batch, maybe 5-10, to verify the output structure.
    3. Run the Actor and inspect the dataset for each record's "resolved" field to ensure successful geocoding.
    4. For any records where "resolved" is false, review the original "inputAddress" to identify potential formatting issues or ambiguities.
    5. If you need reverse geocoding, change the "mode" to "reverse" and input coordinates in the "locations" field.
    6. Experiment with the "language" or "country" bias for better localized or disambiguated results.

    How do you apply it? Three worked playbooks

    These are Google Maps Geocoding Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

    Use case 1: Customer Address Mapping

    Outcome: Convert a CSV of customer addresses to coordinates for mapping.

    Configure: Set "mode" to "forward". Input your customer addresses into the "addresses" array. Consider setting "language" to match your customer base.

    Working method: Begin by processing a small, diverse subset of your customer addresses. Review the output "location" and "formattedAddress" fields to confirm accuracy. Once satisfied, scale up the batch size and monitor the "resolved" field to identify any addresses Google cannot parse.

    Deliverable: A dataset of customer records, each with added "location" (latitude and longitude) and "formattedAddress" fields, ready for import into a mapping tool.

    Stop condition: More than 5% of records have "resolved": false, indicating a problem with input data quality or a need to refine language/country settings.

    Use case 2: Enrich Event Logs

    Outcome: Enrich event logs with city/state/country from raw GPS pings.

    Configure: Set "mode" to "reverse". Populate the "locations" array with your GPS {lat, lng} pairs.

    Working method: Start with a sample of GPS pings, ensuring they cover a range of locations. Examine the "addressComponents" field to confirm that city, state, and country are correctly extracted. Adjust the "language" if you need addresses formatted for a specific locale.

    Deliverable: An enriched event log dataset where each GPS ping record now includes structured "addressComponents" like city, state, and country, suitable for geographical analysis.

    Stop condition: The "addressComponents" fields are frequently empty or contain incorrect values for a significant portion of your input locations.

    Use case 3: Validate User Addresses

    Outcome: Validate user-submitted addresses against Google's canonical form.

    Configure: Set "mode" to "forward". Input user-submitted addresses into the "addresses" array. Use "country" for strong biasing if addresses are primarily from one nation.

    Working method: Process a batch of user-submitted addresses, including some with known inaccuracies or ambiguities. Compare the original "inputAddress" with Google's "formattedAddress" to assess the quality of the canonical form. Pay close attention to the "resolved" field to catch unresolvable entries.

    Deliverable: A validated address dataset, with Google's canonical "formattedAddress", structured "addressComponents", and a "resolved" flag for each user input, enabling data quality improvements.

    Stop condition: The "formattedAddress" frequently differs significantly from the expected canonical form for known good addresses.

    What breaks, and how do you design around it?

    • Over the last 30 days, 1.5% of public runs failed and 1.2% timed out. Build retries and alerting around those rates rather than assuming every run completes.

    When processing large batches, if you observe a high rate of unresolved inputs, first review the data quality of your addresses or coordinates before adjusting other settings. If you frequently encounter ambiguous addresses, leverage the "country" bias to steer Google's resolution towards a specific region. If you experience rate limits, the optional "proxyConfiguration" allows for proxy usage, though the default no-proxy path is often more reliable.

    When should you not use Google Maps Geocoding Scraper?

    Do not use this Actor if your primary need is to extract business-specific information such as reviews, operating hours, or contact details like emails and phone numbers. This Actor focuses solely on geocoding (address to coordinates, or vice-versa) and will not provide any business context beyond basic place names or categories. For extracting comprehensive business data, consider a specialized Actor like Google Maps Business Scraper. If you need to find businesses near a specific point of interest or within a defined area, Google Maps Nearby Places would be more appropriate. Similarly, if your goal is to generate leads with enriched contact information, Google Maps Leads Scraper is the better choice.

    What should you check before trusting the output?

    • Check that "resolved" is true for a high percentage of your inputs; a low percentage indicates an issue with your input data or an ambiguous address.
    • Verify that "location.lat" and "location.lng" are populated and appear geographically sensible for your inputs.
    • Inspect "formattedAddress" and "addressComponents" for correct parsing and completeness, especially when using country bias or specific languages.
    • Look for a high number of records where "error" is populated; this suggests a systemic issue that needs investigation.
    • Confirm that the "placeId" field is present and unique for resolved addresses, indicating a distinct Google Maps entity.
    • When working with reverse geocoding, check the "name" and "categoryName" fields to ensure they align with the expected type of location.

    None of this proves a record is correct. It gives a scheduled Google Maps Geocoding Scraper run defined points where it should stop instead of quietly passing bad data downstream.

    Frequently asked questions

    What is the success rate of the Google Maps Geocoding Scraper?

    In the last 30 days, 305 out of 328 runs succeeded, resulting in a 93.0% success rate. This indicates high reliability for converting addresses to coordinates or vice versa. About 3 runs in a hundred might fail or time out, suggesting the need for retry logic in automated workflows.

    How much does it cost to use the Google Maps Geocoding Scraper?

    The cost is $0.005 per result, which means $5.00 per 1,000 results on Apify's free plan. Apify's free plan includes $5.00 of monthly usage, covering up to 1,000 results of this Actor. Paid Apify plans offer lower per-result rates.

    Can this Actor resolve multiple addresses or coordinates in a single run?

    Yes, the Actor supports batch input. For forward geocoding, use the "addresses" array to provide a list of addresses. For reverse geocoding, use the "locations" array with a list of {lat, lng} coordinate pairs. Each input in the batch will produce one output record.

    Does this Actor require a Google Maps API key?

    No, this Actor does not require a Google Maps API key. It operates by scraping the public Google Maps web interface directly, bypassing the need for API keys, quotas, or direct API billing from Google.

    What happens if an address or coordinate cannot be resolved?

    If Google cannot resolve an input, the Actor still pushes a record to the dataset. This record will have "resolved": false, and will echo the original input in "inputAddress" or "inputLocation", allowing you to audit and identify unresolvable entries for further review or correction.

    Where to go next

    When you are ready to run it, open Google Maps Geocoding Scraper on Apify; the free plan covers up to 1,000 results a month.

    Start with the Google Maps Geocoding Scraper Actor page for the current input schema, pricing tier, and run history.

    It is part of the Google Maps Scraping Suite, which puts every related Actor on one page with its price and run history.

    Readers running Google Maps Geocoding Scraper commonly pair it with:

    Related guides:

    Resources

    • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-24.

    • Actor last updated by its maintainers on 2026-07-03.

    • Run outcome figures cover the 30 day public window ending 2026-09-24.

    • Google Maps Geocoding Scraper on Apify

    Featured actors

    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.

    Run on Apify ↗