Pricing
Pay per event
Google Maps Directions Scraper
Extract public Google Maps route estimates, distances, durations, route labels, warnings, toll flags, and source URLs for origin/destination pairs.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract public Google Maps route estimates for origin-destination pairs and export clean route-option datasets.
What does Google Maps Directions Scraper do?
Google Maps Directions Scraper converts public Google Maps directions pages into structured route-option records.
Give the actor one route or a batch of routes.
It returns route labels, distance, duration, warnings, toll indicators, ferry indicators, locale, country bias, source URLs, and scrape timestamps.
Use it when you need repeatable route-estimate collection from public Google Maps pages.
It is not an official Google Directions API replacement.
It does not use private accounts, saved places, or restricted Google data.
Who is it for?
Logistics and delivery teams
Use the actor to compare common lanes, estimate trip duration, and monitor public route alternatives.
Local service businesses
Use it to estimate travel time between a depot and customer neighborhoods.
Marketplaces and field operations teams
Use it to enrich origin-destination pairs before assigning jobs, territories, or service zones.
Travel and mobility analysts
Use it to collect public route estimates for research, benchmarking, and reporting workflows.
Data teams
Use it to turn route lookups into JSON, CSV, Excel, API, or warehouse-ready records.
Why use this route extractor?
Manual Google Maps checks are slow when you have dozens or hundreds of route pairs.
This actor processes route rows consistently and emits typed fields.
You can sort by duration, join by origin and destination, calculate distance bands, and audit the exact Google Maps URL used.
The output is built for spreadsheets and automation, not screenshots.
What data can you extract?
Each dataset row represents one route option, not one turn-by-turn instruction.
Typical fields include:
- origin
- destination
- travelMode
- routeOptionIndex
- routeLabel
- distanceText
- distanceMeters
- durationText
- durationSeconds
- warnings
- hasTolls
- hasFerries
- locale
- country
- routeUrl
- previewUrl
- scrapedAt
How much does it cost to scrape Google Maps directions?
The actor uses pay-per-event pricing.
There is a small start event and a per-route-option event.
Your final run cost depends on how many route options are saved.
| Example workload | Typical saved route-option rows | Cost driver |
|---|---|---|
| 1 origin-destination pair with 3 options | 1-3 rows | start + route-option events |
| 25 city pairs with up to 3 options | up to 75 rows | route-option events |
| 100 delivery lanes with up to 2 options | up to 200 rows | route-option events |
Start with a small validation run.
Then scale after you confirm that route labels and units match your workflow.
How to use it
-
Open the actor on Apify.
-
Add route rows with
originanddestination. -
Choose the default travel mode.
-
Set
localeandcountryto reduce ambiguity. -
Set
maxRouteOptionsPerPairto the number of alternatives you need. -
Run the actor.
-
Download the dataset as JSON, CSV, Excel, XML, or RSS.
-
Connect the dataset to your workflow with the Apify API if needed.
Input fields
routes is the main batch input.
Each route can include:
originโ address, place name, city, landmark, or coordinate pairdestinationโ address, place name, city, landmark, or coordinate pairmodeโdriving,walking,transit, orbicyclinglocaleโ language code for labels, such asencountryโ country bias, such asus,gb, orfr
You can also use the simple origin and destination fields for one route.
maxRouteOptionsPerPair controls how many alternatives are saved for each pair.
requestDelayMs adds a delay between route lookups for conservative runs.
Example input
{"routes":[{"origin":"New York, NY","destination":"Boston, MA","mode":"driving"},{"origin":"Philadelphia, PA","destination":"Washington, DC","mode":"driving"},{"origin":"San Francisco, CA","destination":"San Jose, CA","mode":"driving"}],"locale":"en","country":"us","maxRouteOptionsPerPair":3,"requestDelayMs":500}
Output table
The default dataset view is optimized for comparing route options.
Use routeOptionIndex to rank alternatives for each pair.
Use distanceMeters and durationSeconds for calculations.
Use distanceText and durationText for human-readable reports.
Use warnings, hasTolls, and hasFerries to identify caveats.
Output example
{"origin":"Chicago, IL","destination":"Milwaukee, WI","travelMode":"driving","routeOptionIndex":1,"routeLabel":"I-94 W","distanceText":"91.4 miles","distanceMeters":147047,"durationText":"1 hr 30 min","durationSeconds":5383,"warnings":["This route has tolls."],"hasTolls":true,"hasFerries":false,"locale":"en","country":"us","routeUrl":"https://www.google.com/maps/dir/?api=1...","previewUrl":"https://www.google.com/maps/preview/directions?...","scrapedAt":"2026-06-27T13:30:36.967Z"}
Tips for accurate results
Use clear place names.
Prefer full addresses or city-state combinations for ambiguous locations.
Use coordinates for operational locations that must be exact.
Set country to bias ambiguous places.
Set locale to control readable labels.
Review a sample dataset before automating decisions.
Remember that public route estimates can change with time, traffic, road closures, and Google Maps availability.
Route-option quality notes
The actor filters out turn-by-turn instruction steps.
Saved rows are intended to represent route alternatives such as I-94 W, I-30 W, or I-5 S.
If Google Maps returns fewer alternatives than requested, the actor saves only the valid alternatives found.
If a route cannot be extracted, the actor logs a warning and continues with the next pair.
Integrations
Send output to Google Sheets for route comparison tables.
Send output to Airtable for operations databases.
Use Make, Zapier, or n8n to trigger downstream tasks when a run finishes.
Load JSON into a data warehouse for lane analysis.
Connect the dataset to BI dashboards for distance and duration summaries.
Call the actor from a dispatch planning script before assigning jobs.
API usage
Call automation-lab/google-maps-directions-scraper with the Apify API.
Node.js:
import{ ApifyClient }from'apify-client';const client =newApifyClient({token: process.env.APIFY_TOKEN});const run =await client.actor('automation-lab/google-maps-directions-scraper').call({routes:[{origin:'New York, NY',destination:'Boston, MA',mode:'driving'}],maxRouteOptionsPerPair:3});console.log(run.defaultDatasetId);
Python:
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/google-maps-directions-scraper').call(run_input={'routes':[{'origin':'New York, NY','destination':'Boston, MA','mode':'driving'}],'maxRouteOptionsPerPair':3,})print(run['defaultDatasetId'])
cURL:
curl-X POST 'https://api.apify.com/v2/acts/automation-lab~google-maps-directions-scraper/runs?token=YOUR_APIFY_TOKEN'\-H'Content-Type: application/json'\-d'{"routes":[{"origin":"New York, NY","destination":"Boston, MA","mode":"driving"}],"maxRouteOptionsPerPair":3}'
MCP usage
Use the Apify MCP server with this actor-specific tool URL:
https://mcp.apify.com/?tools=automation-lab/google-maps-directions-scraper
Claude Code setup:
$claude mcp add apify-google-maps-directions --url"https://mcp.apify.com/?tools=automation-lab/google-maps-directions-scraper"
Claude Desktop config:
{"mcpServers":{"apify-google-maps-directions":{"url":"https://mcp.apify.com/?tools=automation-lab/google-maps-directions-scraper"}}}
Example prompts:
- "Extract driving route estimates for these city pairs."
- "Compare Google Maps route durations for this list of delivery lanes."
- "Create a CSV of distance and duration fields for these store-to-city routes."
Common workflows
Delivery lane comparison
Upload city or depot pairs and compare the fastest visible public route options.
Territory planning
Estimate travel time from a hub to many service areas.
Periodic route monitoring
Schedule the actor and compare duration values over time.
Spreadsheet enrichment
Start with CSV route rows and export distance and duration fields back to a spreadsheet.
Limitations
Google Maps is dynamic and can change page payloads.
The actor extracts public route estimates from public directions flows.
It does not guarantee the same result as the official Google Directions API.
It does not provide route geometry, full navigation instructions, traffic models, or private account data.
Results can vary by time, locale, country bias, and Google Maps availability.
Legality
Use this actor only for lawful workflows.
Respect Google Maps terms and applicable rules.
Do not use it to overload services, bypass access restrictions, or collect data you are not allowed to process.
Keep batch sizes reasonable and add delays for recurring workflows.
Troubleshooting
A route returns no options
Check spelling and place ambiguity.
Try adding state, country, postal code, or coordinates.
Lower maxRouteOptionsPerPair if you only need the primary route.
Labels look different from expected
Check locale and country.
Google Maps may localize road names and route labels.
Runs are slower than expected
Increase batch size gradually.
Keep requestDelayMs conservative for public-page access.
I need official API guarantees
Use the official Google Maps Platform APIs for contractual API behavior.
Use this actor for public-page route-estimate extraction workflows.
Related scrapers
For place leads, use https://apify.com/automation-lab/google-maps-leads-scraper when available.
For reviews, use a dedicated Google Maps reviews actor.
For places data, use a Google Maps places scraper.
Use this actor when the primary entity is a route option between an origin and destination.
FAQ
Is this the official Directions API?
No. It extracts route estimates from public Google Maps directions pages.
Does it return turn-by-turn steps?
No. The dataset is designed for route alternatives, not navigation instructions.
Can I scrape many rows?
Yes. Start with a small validation run, then scale conservatively.
Does it return live traffic?
It returns duration values visible in the public payload when available. Treat them as public estimates, not guaranteed traffic measurements.
Can I use coordinates?
Yes. Coordinates can reduce ambiguity for operational locations.
Data quality checklist
Before using output in production, verify:
- origin and destination strings are unambiguous
- route labels are route alternatives
- distance units match your expectations
- duration values fit the route context
- warning and toll fields are reasonable
- scrape time is suitable for your analysis
Changelog
Version 0.1 focuses on public route-option extraction for origin-destination rows.
It includes route labels, distances, durations, warnings, toll/ferry flags, locale, country bias, and source URLs.
Support
If output looks wrong, save the run ID and a small input sample.
Include the origin, destination, mode, locale, country, and the row that looked incorrect.
That information makes route-payload changes easier to diagnose.
