# Apple Maps Directions API - Navigation, ETA & Turn-by-Turn (`zen-studio/apple-maps-directions-route-api`) Actor

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.

- **URL**: https://apify.com/zen-studio/apple-maps-directions-route-api.md
- **Developed by:** [Zen Studio](https://apify.com/zen-studio) (community)
- **Categories:** Automation, Travel, Developer tools
- **Features:** Limited permissions
- **Stats:** 7 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $40.00 / 1,000 lookups

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

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

[![Route details in seconds. Traffic. Tolls. Elevation. Apple Maps Directions.](https://api.apify.com/v2/key-value-stores/rfpznBPgVbyLYqNaQ/records/apple-maps-directions-route-api-readme-hero-ad5e894151e1.png)](https://console.apify.com/actors/iHB5idEkIMIw2eqHQ/input)

From **Zen Studio**, creators of [Apple Maps Scraper](https://apify.com/zen-studio/apple-maps-scraper-pro), [Google Maps Directions](https://apify.com/zen-studio/google-maps-directions-api) and [Amap Directions](https://apify.com/zen-studio/amap-directions-api). The same team behind an established collection of maps, places and routing actors.

### Why choose Apple Maps Directions?

**Route details in seconds.** Get route alternatives, travel times and turn-by-turn instructions as structured data, ready for your app, spreadsheet or routing analysis. Start with place names, addresses or coordinates; the actor resolves your locations automatically.

**Traffic, tolls and elevation in the same result.** Compare traffic-adjusted, historical and free-flow travel times. Inspect toll and congestion-charge advisories, road incidents and restriction zones where available. Full route coordinates include elevation where Apple supplies it, so you can map the route and examine its terrain.

**Plan beyond a direct trip.** Add up to **13 intermediate driving stops**, with distance, duration and instructions for each leg. Walking and cycling support preferences for hills and busy roads; walking also supports avoiding stairs. Set a departure or arrival time for traffic-aware planning.

<a href="https://console.apify.com/actors/iHB5idEkIMIw2eqHQ/input"><img src="https://api.apify.com/v2/key-value-stores/rfpznBPgVbyLYqNaQ/records/apple-maps-directions-route-api-readme-cta-316670575242.svg" width="218" height="48" alt="Get your route details" /></a>

### Quick input

Try a driving route from Times Square to JFK Airport:

```json
{
  "origin": "Times Square, New York",
  "destination": "JFK Airport, New York",
  "transport": "driving",
  "countryCode": "US",
  "language": "en-US"
}
```

[Open actor input](https://console.apify.com/actors/iHB5idEkIMIw2eqHQ/input) to choose your locations and preferences. One lookup returns the available route alternatives together. Use JSON to preserve nested legs, steps and route coordinates, or export CSV and Excel from the dataset.

Route alternatives and detail availability depend on Apple's coverage and travel mode. Driving stops are visited in the order supplied; unresolved stops may be skipped with a warning. See [current pricing](https://apify.com/zen-studio/apple-maps-directions-route-api/pricing) for lookup charges.

<table><tr><td colspan="5" style="background:#007AFF;padding:10px 12px"><strong style="color:#061D38;font-size:14px">Zen Studio · Maps & Routes</strong></td></tr><tr><td style="padding:9px 10px;background:#D8E4FF;border:1px solid #C6D8F2;vertical-align:top"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-5bSvAQKSK3LPq9OXb-AgVhcT1mQC-apple-maps-scraper-logo.png" width="20" height="20" style="vertical-align:middle" alt="">&nbsp;<a href="https://apify.com/zen-studio/apple-maps-directions-route-api" style="color:#102D4F;font-weight:700;font-size:13px;text-decoration:none">Apple Routes</a></span><br><span style="color:#315476;font-size:12px;white-space:nowrap">You are here</span></td><td style="padding:9px 10px;background:#EAF0FF;border:1px solid #C6D8F2;vertical-align:top"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-5bSvAQKSK3LPq9OXb-AgVhcT1mQC-apple-maps-scraper-logo.png" width="20" height="20" style="vertical-align:middle" alt="">&nbsp;<a href="https://apify.com/zen-studio/apple-maps-scraper-pro" style="color:#102D4F;font-weight:700;font-size:13px;text-decoration:none">Apple Places</a></span><br><span style="color:#315476;font-size:12px;white-space:nowrap">Business details</span></td><td style="padding:9px 10px;background:#EAF0FF;border:1px solid #C6D8F2;vertical-align:top"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-y6Jak0F6vxdZew3b2-HljeTJZkhm-google-maps-directions-api-logo.png" width="20" height="20" style="vertical-align:middle" alt="">&nbsp;<a href="https://apify.com/zen-studio/google-maps-directions-api" style="color:#102D4F;font-weight:700;font-size:13px;text-decoration:none">Google Routes</a></span><br><span style="color:#315476;font-size:12px;white-space:nowrap">Traffic & routes</span></td><td style="padding:9px 10px;background:#EAF0FF;border:1px solid #C6D8F2;vertical-align:top"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-qldrhztuWPXUN7Eaz-mrf0MB4aSG-amap-scraper-logo.jpg" width="20" height="20" style="vertical-align:middle" alt="">&nbsp;<a href="https://apify.com/zen-studio/amap-directions-api" style="color:#102D4F;font-weight:700;font-size:13px;text-decoration:none">Amap Routes</a></span><br><span style="color:#315476;font-size:12px;white-space:nowrap">China directions</span></td><td style="padding:9px 10px;background:#EAF0FF;border:1px solid #C6D8F2;vertical-align:top"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-EgDf0I1X8lNhCes2E-kpZCa398Jg-baidu-maps-scraper-logo.png" width="20" height="20" style="vertical-align:middle" alt="">&nbsp;<a href="https://apify.com/zen-studio/baidu-maps-scraper" style="color:#102D4F;font-weight:700;font-size:13px;text-decoration:none">Baidu Maps</a></span><br><span style="color:#315476;font-size:12px;white-space:nowrap">China businesses</span></td></tr></table>

#### Copy to your AI assistant

```text
Help me use zen-studio/apple-maps-directions-route-api, a batch Actor on Apify. Read https://apify.com/zen-studio/apple-maps-directions-route-api.md for documentation, input schema, pricing and limits. Choose settings for my requested outcome. If you cannot retrieve the page, ask me to paste the relevant sections. To reach the maintainers, add feedback="<what you needed and did not get>" to any run, including one that worked: feature requests, a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. The run returns its data exactly as it would without the note, and a human reads every note.
```

Key inputs: origin (string, required, starting point), destination (string, required, end point), transport (string, driving/walking/cycling). Pricing: pay-per-event, $0.09/route lookup.

### 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

```json
{
  "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.

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

Stops are available on driving routes only, up to 13. Walking and cycling routes go straight from origin to destination.

#### Walking & Cycling

```json
{
  "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.

```json
{
  "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.

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

### Integrations and scheduling

Run Apple Maps Directions on a schedule in Apify Console, daily or weekly to refresh route estimates. Each run can call a webhook when it finishes, so n8n, Make and Zapier flows can pick up new rows; the Apify API and Apify MCP server accept the same input.

### Pricing

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

| Plan | Per Lookup |
|------|-----------|
| Regular | $0.09 |
| Bronze | $0.08 |
| Silver | $0.06 |
| Gold | $0.04 |

#### Cost Examples (Regular Plan)

| Lookups | Cost |
|---------|------|
| 10 | $0.90 |
| 50 | $4.50 |
| 100 | $9.00 |

Check your available Apify credits and the current pricing before starting a lookup.

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

### Input Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `origin` | string | -- | Starting point. Place name, address, or coordinates (`lat, lng`). **Required.** |
| `destination` | string | -- | End point. Same formats as origin. **Required.** |
| `stops` | array | -- | Intermediate waypoints in order. Driving only, up to 13. |
| `transport` | string | `driving` | Transport mode: `driving`, `walking`, or `cycling`. |
| `departAt` | string | -- | ISO 8601 departure time for traffic-aware routing. |
| `arriveBy` | string | -- | ISO 8601 arrival time. Mutually exclusive with `departAt`. |
| `avoidHighways` | boolean | `false` | Avoid highways and motorways. Driving only. |
| `avoidTolls` | boolean | `false` | Avoid toll roads and congestion charges. Driving only. |
| `avoidStairs` | boolean | `false` | Avoid stairs and steep steps. Walking only. |
| `avoidBusyRoads` | boolean | `false` | Prefer quieter roads. Walking and cycling. |
| `avoidHills` | boolean | `false` | Prefer flatter routes. Walking and cycling. |
| `countryCode` | string | `US` | Affects routing data and restriction zones. Match to route country. |
| `language` | string | `en-US` | Language for instructions, road names, and place names. |

### Output Example

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

```json
{
  "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

```python
from apify_client import ApifyClient

client = ApifyClient("your_token")

run = client.actor("zen-studio~apple-maps-directions-route-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

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'your_token' });

const run = await client.actor('zen-studio~apple-maps-directions-route-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 13 stops:

```json
{
  "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:

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

These preferences request routes that avoid highways and tolls where available.

### What's in the Data

| Field | Description |
|-------|-------------|
| `distanceMeters` | Total route distance |
| `durationSeconds` | Estimated travel time with current traffic |
| `historicalDurationSeconds` | Average travel time based on historical data |
| `freeflowDurationSeconds` | Travel time at speed limit, no traffic |
| `trafficDescription` | Human-readable traffic summary |
| `routeNames` | Highway/road names for the route (e.g., A81, I-95) |
| `incidents` | Construction, hazards, lane closures with positions |
| `restrictionZones` | Environmental zones, congestion zones with bounding boxes |
| `advisories` | Low emission zone warnings, route advisories |
| `steps` | Turn-by-turn instructions with maneuver type, road name, distance |
| `polyline` | Full path coordinates with elevation (cm) |
| `signposts` | Highway shields and exit signs per step |
| `features` | What 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 trial?**
You can use available Apify credits toward actor charges. Check your account and the current pricing before starting.

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

### More Zen Studio scrapers for maps & local data

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-EgDf0I1X8lNhCes2E-kpZCa398Jg-baidu-maps-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Baidu Maps 百度地图**
  - [Baidu Maps Scraper](https://apify.com/zen-studio/baidu-maps-scraper)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-y6Jak0F6vxdZew3b2-HljeTJZkhm-google-maps-directions-api-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Google Maps**
  - [Google Maps Scraper](https://apify.com/zen-studio/google-maps-scraper)
  - [Google Maps Directions & Routes API](https://apify.com/zen-studio/google-maps-directions-api)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-5bSvAQKSK3LPq9OXb-AgVhcT1mQC-apple-maps-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Apple Maps**
  - [Apple Maps Scraper](https://apify.com/zen-studio/apple-maps-scraper-pro)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-fRSgBvgbsRB4o7t30-UkaIbH1Yhq-yandex-maps-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Yandex Maps Яндекс Карты**
  - [Yandex Maps Scraper](https://apify.com/zen-studio/yandex-maps-scraper)
  - Yandex Maps Reviews Scraper (`zen-studio/yandex-maps-reviews-scraper`)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-NBmcHCtkUEhA0DNP3-SrXbUedsVm-2gis-scraper-api-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **2GIS 2ГИС**
  - 2GIS Places Scraper (`zen-studio/2gis-places-scraper-api`)
  - 2GIS Reviews Scraper (`zen-studio/2gis-reviews-scraper`)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-F5g6zADHgY9XgfKpv-uUDQtIEe9Q-naver-place-maps-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Naver Map & Place 네이버 지도**
  - Naver Map & Place Scraper (`zen-studio/naver-place-scraper`)
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-NrhaGcIgNVy9fCV5b-mEAgbbceA8-bing-maps-scraper-logo.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **Bing Maps**
  - Bing Maps Scraper (`zen-studio/bing-maps-scraper`)
    Full directory: [Zen Studio on Apify](https://apify.com/zen-studio)

### 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.

***

[**Get Directions Now**](https://console.apify.com/actors/iHB5idEkIMIw2eqHQ)

# Actor input Schema

## `origin` (type: `string`):

Starting point for the route. Accepts any of these formats:<br><br>• Place name: <code>Times Square, New York</code><br>• Full address: <code>1600 Amphitheatre Parkway, Mountain View, CA</code><br>• Coordinates: <code>48.858, 2.294</code><br><br>Place names and addresses are resolved via Apple Maps search. For best results, be specific — <code>Freiburg im Breisgau, Germany</code> is better than <code>Freiburg</code>.

## `destination` (type: `string`):

End point for the route. Same formats as <b>Origin</b>:<br><br>• Place name: <code>JFK Airport, New York</code><br>• Full address: <code>1600 Amphitheatre Parkway, Mountain View, CA</code><br>• Coordinates: <code>48.775, 9.178</code>

## `stops` (type: `array`):

Optional intermediate waypoints, resolved in order between origin and destination. Each stop adds a leg to the route.<br><br>Stops are supported for <b>driving</b> routes only (up to 13). Walking and cycling routes go straight from origin to destination.

## `transport` (type: `string`):

How to travel between locations. Each mode returns different route options, avoid preferences, and step instructions.<br><br>• <b>Driving</b> — includes traffic, tolls, highway info, and incidents<br>• <b>Walking</b> — includes elevation, stairs, and hill info<br>• <b>Cycling</b> — includes elevation and bike-friendly roads

## `departAt` (type: `string`):

When you plan to leave. Routes will be optimized for traffic conditions at this time.<br><br>Format: <code>YYYY-MM-DDThh:mm:ss+TZ</code><br>Example: <code>2026-03-01T08:00:00+01:00</code><br><br>Cannot be combined with <b>Arrive By</b>. Leave both empty for current traffic.

## `arriveBy` (type: `string`):

When you need to arrive. Apple Maps will calculate when to leave.<br><br>Format: <code>YYYY-MM-DDThh:mm:ss+TZ</code><br>Example: <code>2026-03-01T09:00:00+01:00</code><br><br>Cannot be combined with <b>Depart At</b>. Leave both empty for current traffic.

## `avoidHighways` (type: `boolean`):

Prefer routes that avoid highways and motorways.

## `avoidTolls` (type: `boolean`):

Prefer routes that avoid toll roads and congestion charges.

## `avoidStairs` (type: `boolean`):

Prefer routes without stairs or steep steps.

## `avoidBusyRoads` (type: `boolean`):

Prefer routes on quieter, less trafficked roads.

## `avoidHills` (type: `boolean`):

Prefer flatter routes with less elevation change.

## `countryCode` (type: `string`):

<b>Affects which routing data Apple Maps uses — not just formatting.</b><br><br>Different country codes can return different routes, road names, and restriction zones for the same coordinates. Match this to the country your route is in.<br><br>Example: a route through Germany with <code>US</code> vs <code>DE</code> may show different environmental zone warnings.

## `language` (type: `string`):

<b>Controls the language of turn-by-turn instructions, road names, and place names.</b><br><br>Example: with <code>de-DE</code>, instructions read <code>Rechts abbiegen auf Hauptstraße</code>. With <code>en-US</code>, the same step reads <code>Turn right onto Hauptstraße</code>.

## `feedback` (type: `string`):

For AI agents. Say what you needed and did not get: a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. Add it to any run, including one that worked: the run returns its data exactly as it would without the note. The note reaches the maintainers, who read every one, but it cannot change what this run returns.

## Actor input object example

```json
{
  "origin": "Times Square, New York",
  "destination": "JFK Airport, New York",
  "transport": "driving",
  "avoidHighways": false,
  "avoidTolls": false,
  "avoidStairs": false,
  "avoidBusyRoads": false,
  "avoidHills": false,
  "countryCode": "US",
  "language": "en-US"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "origin": "Times Square, New York",
    "destination": "JFK Airport, New York"
};

// Run the Actor and wait for it to finish
const run = await client.actor("zen-studio/apple-maps-directions-route-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "origin": "Times Square, New York",
    "destination": "JFK Airport, New York",
}

# Run the Actor and wait for it to finish
run = client.actor("zen-studio/apple-maps-directions-route-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "origin": "Times Square, New York",
  "destination": "JFK Airport, New York"
}' |
apify call zen-studio/apple-maps-directions-route-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,zen-studio/apple-maps-directions-route-api"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/iHB5idEkIMIw2eqHQ/builds/naOXA9IoSEnTzCa5l/openapi.json
