{
  "openapi": "3.0.1",
  "info": {
    "title": "Apple Maps Directions API - Navigation, ETA & Turn-by-Turn",
    "description": "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.",
    "version": "0.0",
    "x-build-id": "YoQAWHwatN0HTKdl7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/zen-studio~apple-maps-directions-route-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-zen-studio-apple-maps-directions-route-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/zen-studio~apple-maps-directions-route-api/runs": {
      "post": {
        "operationId": "runs-sync-zen-studio-apple-maps-directions-route-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/zen-studio~apple-maps-directions-route-api/run-sync": {
      "post": {
        "operationId": "run-sync-zen-studio-apple-maps-directions-route-api",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "origin",
          "destination"
        ],
        "properties": {
          "origin": {
            "title": "Origin",
            "type": "string",
            "description": "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>.",
            "default": "Times Square, New York"
          },
          "destination": {
            "title": "Destination",
            "type": "string",
            "description": "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>",
            "default": "JFK Airport, New York"
          },
          "stops": {
            "title": "Stops",
            "type": "array",
            "description": "Optional intermediate waypoints, resolved in order between origin and destination. Each stop adds a leg to the route.<br><br>Stop limits per transport mode:<br>• <b>Driving</b> — up to 15 stops<br>• <b>Walking</b> — up to 2 stops<br>• <b>Cycling</b> — up to 2 stops",
            "items": {
              "type": "string"
            }
          },
          "transport": {
            "title": "Transport Mode",
            "enum": [
              "driving",
              "walking",
              "cycling"
            ],
            "type": "string",
            "description": "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",
            "default": "driving"
          },
          "departAt": {
            "title": "Depart At",
            "type": "string",
            "description": "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": {
            "title": "Arrive By",
            "type": "string",
            "description": "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": {
            "title": "Avoid Highways",
            "type": "boolean",
            "description": "Prefer routes that avoid highways and motorways.",
            "default": false
          },
          "avoidTolls": {
            "title": "Avoid Tolls",
            "type": "boolean",
            "description": "Prefer routes that avoid toll roads and congestion charges.",
            "default": false
          },
          "avoidStairs": {
            "title": "Avoid Stairs",
            "type": "boolean",
            "description": "Prefer routes without stairs or steep steps.",
            "default": false
          },
          "avoidBusyRoads": {
            "title": "Avoid Busy Roads",
            "type": "boolean",
            "description": "Prefer routes on quieter, less trafficked roads.",
            "default": false
          },
          "avoidHills": {
            "title": "Avoid Hills",
            "type": "boolean",
            "description": "Prefer flatter routes with less elevation change.",
            "default": false
          },
          "countryCode": {
            "title": "Country Code",
            "type": "string",
            "description": "<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.",
            "default": "US"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "<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>.",
            "default": "en-US"
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}