{
  "openapi": "3.0.1",
  "info": {
    "title": "Flightradar24 - Live Aircraft, Airport Boards & Flight History",
    "description": "Live aircraft positions by map area (callsign, lat/lng, altitude, speed, vertical speed, heading, squawk, registration, aircraft type, route, airline), airport departure and arrival boards, and aircraft or flight number history with times, delays and status, in one unified schema.",
    "version": "1.0",
    "x-build-id": "Vsy7ZJnVt75o40wxz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/abotapi~flightradar24-live-flight-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-abotapi-flightradar24-live-flight-tracker",
        "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/abotapi~flightradar24-live-flight-tracker/runs": {
      "post": {
        "operationId": "runs-sync-abotapi-flightradar24-live-flight-tracker",
        "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/abotapi~flightradar24-live-flight-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-abotapi-flightradar24-live-flight-tracker",
        "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": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "live",
              "airport",
              "history",
              "url"
            ],
            "type": "string",
            "description": "Live positions: every aircraft currently inside one or more map areas. Airport board: an airport's departures or arrivals. Aircraft or flight history: past and scheduled legs for a registration or a flight number. Paste links: flightradar24.com/data/... URLs.",
            "default": "live"
          },
          "bounds": {
            "title": "Map areas (bounding boxes)",
            "type": "array",
            "description": "One or more bounding boxes, each written as north,south,west,east in decimal degrees. Examples: 55.0,45.0,-6.0,10.0 (western Europe), 49.0,24.0,-125.0,-66.0 (continental USA), 51.7,51.2,-0.6,0.3 (Greater London). Leave empty to use western Europe.",
            "default": [
              "55.0,45.0,-6.0,10.0"
            ],
            "items": {
              "type": "string"
            }
          },
          "airports": {
            "title": "Airports (IATA codes)",
            "type": "array",
            "description": "One or more three letter IATA airport codes, for example LHR, JFK, SIN, DXB. Each airport is walked for the board type selected below.",
            "items": {
              "type": "string"
            }
          },
          "boardMode": {
            "title": "Board type",
            "enum": [
              "departures",
              "arrivals",
              "both"
            ],
            "type": "string",
            "description": "Which side of the board to return for every airport above. Choosing Both walks departures and arrivals as two separate scopes.",
            "default": "departures"
          },
          "historyQueries": {
            "title": "Registrations or flight numbers",
            "type": "array",
            "description": "One or more aircraft registrations (for example G-TUKR, N12345) or flight numbers (for example BA117, TOM8HB), matching the lookup type selected below.",
            "items": {
              "type": "string"
            }
          },
          "fetchBy": {
            "title": "Look up by",
            "enum": [
              "reg",
              "flight"
            ],
            "type": "string",
            "description": "Whether the entries above are aircraft registrations (tail numbers) or flight numbers.",
            "default": "reg"
          },
          "urls": {
            "title": "Flightradar24 links",
            "type": "array",
            "description": "Paste airport board or aircraft links, for example https://www.flightradar24.com/data/airports/lhr/departures or https://www.flightradar24.com/data/aircraft/g-tukr or https://www.flightradar24.com/data/flights/ba117 . Multiple links are supported.",
            "items": {
              "type": "string"
            }
          },
          "flightNumbers": {
            "title": "Flight numbers or callsigns",
            "type": "array",
            "description": "Keep only flights whose flight number or callsign is in this list, for example BA117, TOM8HB. Leave empty to keep every flight.",
            "items": {
              "type": "string"
            }
          },
          "registrations": {
            "title": "Aircraft registrations",
            "type": "array",
            "description": "Keep only these aircraft registrations (tail numbers), for example G-TUKR. Leave empty to keep every aircraft.",
            "items": {
              "type": "string"
            }
          },
          "airlines": {
            "title": "Airlines (ICAO or IATA)",
            "type": "array",
            "description": "Keep only flights operated by these airlines, given as ICAO codes (BAW, TUI, DLH) or IATA codes (BA, X3, LH). Leave empty to keep every airline.",
            "items": {
              "type": "string"
            }
          },
          "originAirports": {
            "title": "Origin airports",
            "type": "array",
            "description": "Keep only flights departing from these airports, given as IATA or ICAO codes. Leave empty to keep every origin.",
            "items": {
              "type": "string"
            }
          },
          "destinationAirports": {
            "title": "Destination airports",
            "type": "array",
            "description": "Keep only flights arriving at these airports, given as IATA or ICAO codes. Leave empty to keep every destination.",
            "items": {
              "type": "string"
            }
          },
          "minAltitudeFt": {
            "title": "Minimum altitude (feet)",
            "minimum": 0,
            "maximum": 60000,
            "type": "integer",
            "description": "Keep only aircraft at or above this altitude in feet. Applies to rows that report an altitude (live positions); board and history rows are unaffected. Leave empty for no minimum."
          },
          "maxAltitudeFt": {
            "title": "Maximum altitude (feet)",
            "minimum": 0,
            "maximum": 60000,
            "type": "integer",
            "description": "Keep only aircraft at or below this altitude in feet. Useful for watching approach and departure traffic. Leave empty for no maximum."
          },
          "includeOnGround": {
            "title": "Include aircraft on the ground",
            "type": "boolean",
            "description": "On by default. Turn off to return airborne aircraft only, which also stops ground traffic being requested at all in live mode.",
            "default": true
          },
          "includeGliders": {
            "title": "Include gliders",
            "type": "boolean",
            "description": "On by default. Turn off to exclude gliders, which also stops them being requested at all in live mode.",
            "default": true
          },
          "maxItems": {
            "title": "Max flights",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of flight records to return across the whole run, counting live positions, board rows and history legs together. Use 0 for unlimited.",
            "default": 50
          },
          "fetchDetails": {
            "title": "Add full flight detail (billed per enriched flight)",
            "type": "boolean",
            "description": "Off by default, and only used in live mode. When on, every live aircraft is also looked up individually to add full airport names, cities and countries, terminal and gate, scheduled, estimated and real departure and arrival times, delay, flight duration and the recorded position trail. Each enriched flight is charged a small surcharge on top of the per flight charge. If the lookups start failing, enrichment is switched off automatically for the rest of the run and nothing extra is charged. Turn on to look up each live aircraft's full flight detail. This costs one extra request per aircraft and is billed as a small surcharge per enriched flight.",
            "default": false
          },
          "includeTrail": {
            "title": "Include the recorded position trail",
            "type": "boolean",
            "description": "On by default, and only used when flight detail enrichment above is on. Adds the recorded track (latitude, longitude, altitude, speed, heading and timestamp per point) to each enriched flight. Turn off for smaller records when you only need the current position.",
            "default": true
          },
          "resumeFromRunId": {
            "title": "Resume from a previous run",
            "type": "string",
            "description": "Paste a previous run ID or dataset ID to continue a large crawl without returning or charging for flights already collected there. Use this after an interrupted run. For recurring monitoring of the same targets, use Incremental mode below instead."
          },
          "incrementalMode": {
            "title": "Incremental changes for scheduled runs",
            "type": "boolean",
            "description": "Turn this on for recurring monitoring. The first run returns everything as NEW. Later runs normally return only NEW, UPDATED and REAPPEARED flights. Important: change detection deliberately ignores position, altitude, speed, vertical speed and heading, because a flying aircraft reports new values every few seconds and every row would otherwise be UPDATED on every run. Those values are still returned in full on every row; what triggers UPDATED is a real event such as a status, gate, terminal, delay, time, route, aircraft or airline change. State is kept separately for each target and filter setup; use State key to name or deliberately share a campaign.",
            "default": false
          },
          "stateKey": {
            "title": "State key (optional, incremental mode only)",
            "type": "string",
            "description": "Optional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently configured runs. Leave empty to let the actor derive a key automatically from the targets and filters, so two different setups never mix state."
          },
          "emitUnchanged": {
            "title": "Emit unchanged flights (incremental mode only)",
            "type": "boolean",
            "description": "Off by default. Turn on to also return flights that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have, so leave it off unless you want the full snapshot every run.",
            "default": false
          },
          "emitExpired": {
            "title": "Emit expired flights (incremental mode only)",
            "type": "boolean",
            "description": "Off by default. Turn on to also return flights that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned its targets, never when Max flights capped it, when Resume was used, or when nothing was scanned. This returns, and bills, extra synthetic rows.",
            "default": false
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy. Leave the default unless a particular network gives you empty results, in which case pick another connection here.",
            "default": {
              "useApifyProxy": true
            }
          },
          "mcpConnectors": {
            "title": "Pipe results into your apps (optional)",
            "type": "array",
            "description": "Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page per item export; other connectors get a best effort write or digest. Leave empty to skip; never changes the dataset output. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com)."
          },
          "notionParentPageUrl": {
            "title": "Notion parent page (Notion connector only)",
            "type": "string",
            "description": "URL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors."
          },
          "maxNotifyListings": {
            "title": "Max items to export per connector",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Cap on items written to each connector per run. Does not affect the dataset.",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}