Apple Maps Directions API - Navigation, ETA & Turn-by-Turn avatar

Apple Maps Directions API - Navigation, ETA & Turn-by-Turn

Pricing

from $40.00 / 1,000 lookups

Go to Apify Store
Apple Maps Directions API - Navigation, ETA & Turn-by-Turn

Apple Maps Directions API - Navigation, ETA & Turn-by-Turn

Get driving, walking, and cycling directions between any locations via Apple Maps. Returns multiple route alternatives with distance, ETA, live traffic, turn-by-turn steps, road names, incidents, environmental zones, and polyline coordinates with elevation. No Apple account needed. $0.09 per lookup.

Pricing

from $40.00 / 1,000 lookups

Rating

0.0

(0)

Developer

Zen Studio

Zen Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 hours ago

Last modified

Share

Apple Maps Directions API | Driving, Walking & Cycling Routes (2026)

Get turn-by-turn directions between any two locations using Apple Maps. Returns multiple route alternatives with distance, duration, live traffic, road names, incidents, environmental zones, and full polyline coordinates with elevation.

Apple Maps Directions API demo

Supports driving, walking, and cycling. Add up to 15 intermediate stops. Set departure or arrival times for traffic-aware routing.

No Apple account needed. No browser. One request per run.

How It Works

Enter an origin and destination. The Actor resolves locations via Apple Maps, fetches all available routes, and returns structured direction data.

Basic Route

{
"origin": "Times Square, New York",
"destination": "JFK Airport, New York"
}

Returns 2-3 route alternatives with the fastest route labeled. Each route includes distance, duration, traffic conditions, and turn-by-turn steps.

With Stops

Add intermediate waypoints. The route visits them in order.

{
"origin": "San Francisco, CA",
"destination": "Los Angeles, CA",
"stops": ["San Jose, CA", "Monterey, CA", "Santa Barbara, CA"]
}

Stop limits: 15 for driving, 2 for walking/cycling.

Walking & Cycling

{
"origin": "Brooklyn Bridge, New York",
"destination": "Central Park, New York",
"transport": "walking",
"avoidStairs": true,
"avoidHills": true
}

Walking and cycling routes include elevation data per coordinate.

Traffic-Aware Routing

Set a departure or arrival time to get routes optimized for predicted traffic.

{
"origin": "Midtown Manhattan, New York",
"destination": "JFK Airport, New York",
"departAt": "2026-03-01T08:00:00-05:00"
}

Each route returns three duration values:

  • durationSeconds -- estimated with current/predicted traffic
  • historicalDurationSeconds -- average based on historical data
  • freeflowDurationSeconds -- speed-limit travel time, no traffic

Leave both departAt and arriveBy empty to use current traffic conditions.

Country and Language Matter

These aren't cosmetic. They affect routing data, road names, and restriction zones.

A route through France with countryCode: "US" vs "FR" can return different road names and toll information. With language: "fr-FR", instructions read "Tournez à droite sur Rue de Rivoli" instead of "Turn right onto Rue de Rivoli".

Set both to match the country your route is in.

{
"origin": "Paris, France",
"destination": "Lyon, France",
"countryCode": "FR",
"language": "fr-FR"
}

Pricing

Pay-per-event pricing. You pay per direction lookup.

PlanPer Lookup
Regular$0.09
Bronze$0.08
Silver$0.06
Gold$0.04

Cost Examples (Regular Plan)

LookupsCost
10$0.90
50$4.50
100$9.00

Free tier: 5 runs, no credit card required.

Budget controls built in. Set a maximum spend and the Actor stops when the limit is reached.

Input Parameters

ParameterTypeDefaultDescription
originstring--Starting point. Place name, address, or coordinates (lat, lng). Required.
destinationstring--End point. Same formats as origin. Required.
stopsarray--Intermediate waypoints in order. Up to 15 (driving) or 2 (walking/cycling).
transportstringdrivingTransport mode: driving, walking, or cycling.
departAtstring--ISO 8601 departure time for traffic-aware routing.
arriveBystring--ISO 8601 arrival time. Mutually exclusive with departAt.
avoidHighwaysbooleanfalseAvoid highways and motorways. Driving only.
avoidTollsbooleanfalseAvoid toll roads and congestion charges. Driving only.
avoidStairsbooleanfalseAvoid stairs and steep steps. Walking only.
avoidBusyRoadsbooleanfalsePrefer quieter roads. Walking and cycling.
avoidHillsbooleanfalsePrefer flatter routes. Walking and cycling.
countryCodestringUSAffects routing data and restriction zones. Match to route country.
languagestringen-USLanguage for instructions, road names, and place names.

Output Example

A route from Times Square to JFK Airport (driving) returns:

{
"origin": "Times Square, New York",
"destination": "JFK Airport, New York",
"transport": "driving",
"isNavigable": true,
"routeCount": 3,
"routes": [
{
"identifier": 0,
"type": "MAIN_ROUTE",
"transportType": "AUTOMOBILE",
"drivingSide": "RIGHT_SIDE",
"label": "Fastest",
"trafficDescription": "Traffic is very heavy.",
"distanceMeters": 31146,
"durationSeconds": 3476,
"historicalDurationSeconds": 3381,
"freeflowDurationSeconds": 1848,
"routeNames": ["Grand Central Pkwy E"],
"features": {
"avoidsTolls": false,
"avoidsHighways": false
},
"advisories": [
"Tolls required",
"Congestion charge"
],
"incidents": [],
"restrictionZones": [],
"legs": [
{
"distanceMeters": 31146,
"durationSeconds": 3476,
"historicTravelTimeSeconds": 3381,
"staticTravelTimeSeconds": 1848,
"transportType": "AUTOMOBILE",
"drivingSide": "RIGHT_SIDE",
"name": "Grand Central Pkwy E",
"originWaypointMuid": "2251069063936124486",
"destinationWaypointMuid": "2285278383068840766",
"steps": [
{
"stepID": 0,
"maneuverType": "START_ROUTE",
"roadName": "Broadway",
"instruction": null,
"distanceCm": 0,
"expectedTimeSeconds": 0,
"endsOnFreeway": false,
"toFreeway": false
},
{
"stepID": 1,
"maneuverType": "LEFT_TURN",
"roadName": "W 40th St",
"instruction": "Turn left onto W 40th St",
"distanceCm": 13213,
"expectedTimeSeconds": 92,
"endsOnFreeway": false,
"toFreeway": false,
"junctionType": "JCTTYPE_NORMAL",
"junctionElements": [
{ "angle": -90, "usage": "EXIT" },
{ "angle": 90 }
]
},
{
"stepID": 2,
"maneuverType": "RIGHT_TURN",
"roadName": "5th Ave",
"instruction": "Turn right onto 5th Ave",
"distanceCm": 49152,
"expectedTimeSeconds": 564,
"endsOnFreeway": false,
"toFreeway": false,
"junctionType": "JCTTYPE_NORMAL",
"junctionElements": [
{ "angle": -90 },
{ "angle": 0 },
{ "angle": 90, "usage": "EXIT" }
]
},
{
"stepID": 3,
"maneuverType": "LEFT_TURN",
"roadName": "E 36th St",
"instruction": "Turn left onto E 36th St",
"distanceCm": 31417,
"expectedTimeSeconds": 92,
"endsOnFreeway": false,
"toFreeway": false,
"junctionType": "JCTTYPE_NORMAL",
"junctionElements": [
{ "angle": -90, "usage": "EXIT" },
{ "angle": 0 },
{ "angle": 90 }
]
}
],
"polyline": [
{ "lat": 40.7554921, "lng": -73.9865663, "elevationCm": 1716 },
{ "lat": 40.754379, "lng": -73.98691 },
{ "lat": 40.7543351, "lng": -73.9869238, "elevationCm": 1676 }
],
"roadNames": [
{ "name": "Van Wyck Expy", "locale": "en", "startOffsetCm": 2242832, "endOffsetCm": 3114614 },
{ "name": "Grand Central Pkwy E", "locale": "en", "startOffsetCm": 1271651, "endOffsetCm": 2163634 },
{ "name": "Brooklyn-Queens Expy E", "locale": "en", "startOffsetCm": 1107451, "endOffsetCm": 1228669 }
]
}
]
}
],
"fetchedAt": "2026-02-26T13:17:53.505639+00:00"
}

Output is trimmed for readability — showing the first route with 4 of 17 steps and a clipped polyline. A full response includes all 3 route alternatives, every turn-by-turn step, and the complete polyline with hundreds of coordinates.

API Integration

Python

from apify_client import ApifyClient
client = ApifyClient("your_token")
run = client.actor("zen-studio~apple-maps-directions-api").call(run_input={
"origin": "Times Square, New York",
"destination": "JFK Airport, New York",
"transport": "driving",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
for route in item["routes"]:
miles = route["distanceMeters"] / 1609.34
mins = route["durationSeconds"] // 60
print(f"{route['label']}{miles:.1f} mi, {mins} min via {', '.join(route['routeNames'])}")

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'your_token' });
const run = await client.actor('zen-studio~apple-maps-directions-api').call({
origin: 'Times Square, New York',
destination: 'JFK Airport, New York',
transport: 'driving',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
for (const route of item.routes) {
const miles = (route.distanceMeters / 1609.34).toFixed(1);
const mins = Math.floor(route.durationSeconds / 60);
console.log(`${route.label}${miles} mi, ${mins} min via ${route.routeNames.join(', ')}`);
}
}

Advanced Usage

Compare Transport Modes

Run the Actor multiple times with different transport values to compare driving, walking, and cycling for the same route.

Multi-Stop Road Trip

Plan a road trip with up to 15 stops:

{
"origin": "San Francisco, CA",
"destination": "Las Vegas, NV",
"stops": [
"Monterey, CA",
"San Luis Obispo, CA",
"Santa Barbara, CA",
"Los Angeles, CA"
],
"transport": "driving"
}

Each stop adds a leg to the route. The response includes per-leg distance, duration, and steps.

Avoid Preferences

Combine avoid flags to tailor routes:

{
"origin": "Boston, MA",
"destination": "Washington, DC",
"transport": "driving",
"avoidHighways": true,
"avoidTolls": true
}

This returns scenic routes on secondary roads without toll charges.

What's in the Data

FieldDescription
distanceMetersTotal route distance
durationSecondsEstimated travel time with current traffic
historicalDurationSecondsAverage travel time based on historical data
freeflowDurationSecondsTravel time at speed limit, no traffic
trafficDescriptionHuman-readable traffic summary
routeNamesHighway/road names for the route (e.g., A81, I-95)
incidentsConstruction, hazards, lane closures with positions
restrictionZonesEnvironmental zones, congestion zones with bounding boxes
advisoriesLow emission zone warnings, route advisories
stepsTurn-by-turn instructions with maneuver type, road name, distance
polylineFull path coordinates with elevation (cm)
signpostsHighway shields and exit signs per step
featuresWhat the route avoids (tolls, highways)

Data Export

Export results from the Apify Console in:

  • JSON -- programmatic analysis, route visualization
  • CSV -- spreadsheets, quick analysis
  • Excel -- reporting, comparison tables
  • XML -- legacy system integration

FAQ

How many routes does it return? Apple Maps typically returns 2-3 route alternatives per request. The fastest route is labeled.

Do I need an Apple account? No. No login, no cookies, no authentication required.

How fresh is the data? Routes and traffic conditions are fetched in real time from Apple Maps. You get whatever Apple Maps currently shows.

What location formats work? Place names ("Times Square, New York"), full addresses ("1600 Amphitheatre Parkway, Mountain View, CA"), and coordinates ("48.858, 2.294"). Be specific with place names for best results.

What are the three duration values? durationSeconds reflects current/predicted traffic. historicalDurationSeconds is the historical average. freeflowDurationSeconds is travel time at speed limits with zero traffic.

What are restriction zones? Environmental zones (low emission zones) and congestion charge zones along the route. Each includes a type, bounding box, and human-readable description. Common in European cities.

Does it include elevation? Yes. The polyline coordinates include elevationCm (elevation in centimeters) for all transport modes.

Is there a free tier? Yes. 5 free runs, no credit card required.

What happens when I hit my budget limit? The Actor stops and keeps all data from the current run. Nothing is lost.

Disclaimer

Data is collected from publicly available sources and provided "as is" for informational purposes. Users are responsible for compliance with Apple's terms of service and applicable regulations in their jurisdiction.


More maps, places, and directions scrapers:

ActorDescriptionPlatform
Apple Maps Scraper ProExtract 30+ fields per place from Apple Maps -- phone, ratings, hours, amenities, photosApple Maps
2GIS Places ScraperExtract places, contacts, and business data from 2GIS2GIS
2GIS Reviews ScraperScrape reviews and ratings from 2GIS places2GIS
Yandex Places ScraperExtract places and business data from Yandex MapsYandex Maps
Yandex Reviews ScraperScrape reviews and ratings from Yandex MapsYandex Maps

Get Directions Now