{
  "openapi": "3.0.1",
  "info": {
    "title": "Airport Departures & Arrivals Board Scraper",
    "description": "Every departure and arrival at any airport, as one clean row per flight. Live status, terminal, gate, estimated time and delay. Codeshare duplicates folded into the aircraft that actually flies, so a day at JFK is 656 real movements, not 2,861. Whole day or right now, 25 airports at once.",
    "version": "0.0",
    "x-build-id": "KNfG1UKpSky6kltDc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/apt_marble~airport-departures-arrivals-board-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-apt_marble-airport-departures-arrivals-board-scraper",
        "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/apt_marble~airport-departures-arrivals-board-scraper/runs": {
      "post": {
        "operationId": "runs-sync-apt_marble-airport-departures-arrivals-board-scraper",
        "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/apt_marble~airport-departures-arrivals-board-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-apt_marble-airport-departures-arrivals-board-scraper",
        "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": [
          "airports"
        ],
        "properties": {
          "airports": {
            "title": "Airports",
            "minItems": 1,
            "maxItems": 25,
            "type": "array",
            "description": "The airports whose boards you want, as three-letter airport codes such as JFK, LHR or DXB. City codes like NYC or LON are not accepted, because a board belongs to one airport — list the individual airports instead. Up to 25 airports in one run.",
            "default": [
              "JFK"
            ],
            "items": {
              "type": "string"
            }
          },
          "direction": {
            "title": "Departures or arrivals",
            "enum": [
              "departures",
              "arrivals",
              "both"
            ],
            "type": "string",
            "description": "Which board to collect. Choosing both collects each airport twice, once in each direction.",
            "default": "departures"
          },
          "date": {
            "title": "Day to collect",
            "pattern": "^$|^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "The day you want, written as 2026-08-16, in the airport's own local time. Leave it empty for today at each airport. The source publishes roughly a week of past days and a couple of days ahead; anything outside that is moved to the nearest day that is published and you are told in the log."
          },
          "fullDay": {
            "title": "Collect the whole day",
            "type": "boolean",
            "description": "On, the actor collects every movement from midnight to midnight at the airport. Off, it returns only the flights around right now, which is faster and much smaller.",
            "default": true
          },
          "includeStatus": {
            "title": "Add live status, terminals and gates",
            "type": "boolean",
            "description": "On, every flight that is currently published gets its live status, terminal, gate, estimated time and delay in minutes attached. This is charged separately, once for each airport and direction where status is actually attached to at least one flight — see Pricing.",
            "default": true
          },
          "deduplicateCodeshares": {
            "title": "Combine codeshare duplicates",
            "type": "boolean",
            "description": "On, a flight sold by several airlines under different numbers becomes ONE row for the aircraft that actually flies, with the other airlines listed in a codeshares column. Around three quarters of raw board entries are these duplicates, so leaving this off will roughly quadruple your row count and your bill.",
            "default": true
          },
          "onlyDisrupted": {
            "title": "Only disrupted flights",
            "type": "boolean",
            "description": "Keep only flights that are cancelled, diverted, or running fifteen minutes or more behind schedule. Filtered-out flights are never written and never charged for. Needs live status to be switched on, which carries its own charge per airport and direction.",
            "default": false
          },
          "language": {
            "title": "Language",
            "enum": [
              "en-GB",
              "en-US",
              "de-DE",
              "fr-FR",
              "es-ES",
              "it-IT",
              "pt-BR",
              "nl-NL",
              "pl-PL",
              "ja-JP"
            ],
            "type": "string",
            "description": "The language airport and airline names come back in. Flight numbers, codes, times and statuses are the same in every language.",
            "default": "en-GB"
          },
          "maxRows": {
            "title": "Maximum flights per board",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "The most flights to return for each airport and direction. A very large hub can publish well over a thousand movements in a day, so raise this if you want all of them and lower it to keep a run small.",
            "default": 2000
          },
          "parallelAirports": {
            "title": "How many airports at once",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "How many airports are collected in parallel. Leave this alone unless a run is being throttled; higher is not always faster.",
            "default": 4
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}