{
  "openapi": "3.0.1",
  "info": {
    "title": "FlightRadar24 Scraper – Live Flights & History",
    "description": "Track live aircraft anywhere on earth: position, altitude, speed, heading, callsign, route, registration and airline. Plus flight and airframe history, airport delay stats, free-text search and recorded tracks. Tiles large regions automatically past the 1,500-aircraft per-request cap.",
    "version": "0.0",
    "x-build-id": "f8eW8qL1XYRfJhmMQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rl1987~flightradar24-api-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rl1987-flightradar24-api-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/rl1987~flightradar24-api-scraper/runs": {
      "post": {
        "operationId": "runs-sync-rl1987-flightradar24-api-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/rl1987~flightradar24-api-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-rl1987-flightradar24-api-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": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "What to scrape",
            "enum": [
              "live",
              "search",
              "flight-history",
              "aircraft-history",
              "airport",
              "most-tracked",
              "playback"
            ],
            "type": "string",
            "description": "Pick one job. Each mode uses its own inputs below — the other sections are ignored.",
            "default": "live"
          },
          "region": {
            "title": "Region",
            "enum": [
              "custom",
              "world",
              "europe",
              "north-america",
              "south-america",
              "africa",
              "asia",
              "oceania",
              "middle-east"
            ],
            "type": "string",
            "description": "Area to sweep for live aircraft. Choose \"Custom area\" to use the four coordinates below; any other choice ignores them.",
            "default": "europe"
          },
          "north": {
            "title": "North latitude",
            "type": "string",
            "description": "Top edge of a custom area, -90 to 90. Decimal degrees. Only used when Region is \"Custom area\"."
          },
          "south": {
            "title": "South latitude",
            "type": "string",
            "description": "Decimal degrees. Bottom edge of a custom area, -90 to 90. Must be less than the north latitude."
          },
          "west": {
            "title": "West longitude",
            "type": "string",
            "description": "Decimal degrees. Left edge of a custom area, -180 to 180."
          },
          "east": {
            "title": "East longitude",
            "type": "string",
            "description": "Decimal degrees. Right edge of a custom area, -180 to 180. Must be greater than the west longitude."
          },
          "splitLargeAreas": {
            "title": "Split large areas automatically",
            "type": "boolean",
            "description": "FlightRadar24 returns at most 1,500 aircraft per request, whatever the area. With this on, an area that comes back at the cap is split into four and each part fetched separately, until every part fits — so a whole continent returns every aircraft rather than the first 1,500. Costs extra requests only where the sky is busy.",
            "default": true
          },
          "maxTileDepth": {
            "title": "Max split depth",
            "minimum": 0,
            "maximum": 7,
            "type": "integer",
            "description": "How many times an area may be halved. Each level multiplies requests by up to 4. Depth 4 covers Europe comfortably; raise it only if the log warns that an area is still truncated.",
            "default": 4
          },
          "airlineIcao": {
            "title": "Only this airline (ICAO)",
            "type": "string",
            "description": "Three-letter ICAO airline code, e.g. BAW for British Airways, DLH for Lufthansa, UAE for Emirates. Filtered by FlightRadar24 before the 1,500-row cap applies, so one airline worldwide is a single fast request."
          },
          "flightNumberFilter": {
            "title": "Only this flight number",
            "type": "string",
            "description": "e.g. BA48. Returns just that flight if it is airborne right now."
          },
          "registrationFilter": {
            "title": "Only this registration",
            "type": "string",
            "description": "e.g. G-STBA. Returns just that airframe if it is airborne right now."
          },
          "includeGrounded": {
            "title": "Include aircraft on the ground",
            "type": "boolean",
            "description": "Aircraft taxiing or parked at a stand. Turn off for airborne traffic only.",
            "default": true
          },
          "includeGliders": {
            "title": "Include gliders",
            "type": "boolean",
            "description": "Sailplanes and motor gliders, which FlightRadar24 receives via FLARM as well as ADS-B.",
            "default": true
          },
          "includeVehicles": {
            "title": "Include ground vehicles",
            "type": "boolean",
            "description": "Pushback tugs, fire trucks and other airside vehicles FlightRadar24 tracks.",
            "default": true
          },
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "One query per line: a flight number (BA48), a callsign (BAW48Q), an airline name (British Airways), an airport (Heathrow) or a registration (G-STBA).",
            "items": {
              "type": "string"
            }
          },
          "searchLimit": {
            "title": "Results per query",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many matches to return for each query, 1-50.",
            "default": 30
          },
          "flightNumbers": {
            "title": "Flight numbers",
            "type": "array",
            "description": "One flight number per line, e.g. BA48. Returns that flight's past and scheduled operations — dates, aircraft used, actual vs scheduled times.",
            "items": {
              "type": "string"
            }
          },
          "registrations": {
            "title": "Aircraft registrations",
            "type": "array",
            "description": "One registration per line, e.g. G-STBA. Returns the airframe (model, country, Mode-S hex) plus the flights it has operated.",
            "items": {
              "type": "string"
            }
          },
          "historyPages": {
            "title": "History pages per query",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Each page holds up to 100 flights. Raise to go further back.",
            "default": 1
          },
          "airportCodes": {
            "title": "Airport IATA codes",
            "type": "array",
            "description": "One three-letter IATA code per line, e.g. LHR, JFK, SIN. Returns name, ICAO code, coordinates, timezone and FlightRadar24's arrival/departure delay indices.",
            "items": {
              "type": "string"
            }
          },
          "flightIds": {
            "title": "Flight IDs",
            "type": "array",
            "description": "One 8-character FlightRadar24 flight ID per line, e.g. 41e26079. Take these from the flightId field of a live or search run. Returns the recorded track: every position, altitude, speed and vertical speed.",
            "items": {
              "type": "string"
            }
          },
          "includeFlightDetail": {
            "title": "Add full detail for each flight",
            "type": "boolean",
            "description": "For live, search and most-tracked modes: follow each aircraft with a detail lookup — full aircraft model, airline, both airports with coordinates, scheduled vs actual times, delay and an aircraft photo. One extra request per aircraft, billed as a detail row, so leave it off for large sweeps.",
            "default": false
          },
          "includeTrail": {
            "title": "Include the recent position trail",
            "type": "boolean",
            "description": "Adds the flight's recent track points to each detail row. Only has an effect when detail is enabled.",
            "default": false
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many records. 0 = no limit.",
            "default": 1000
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "type": "integer",
            "description": "Requests in parallel.",
            "default": 5
          },
          "maxRequestsPerCrawl": {
            "title": "Max requests per run",
            "minimum": 0,
            "type": "integer",
            "description": "Safety cap on total requests. 0 = unlimited.",
            "default": 0
          },
          "maxRequestRetries": {
            "title": "Max request retries",
            "minimum": 0,
            "type": "integer",
            "description": "Retries per request before it is marked failed. Does NOT bound retries caused by a blocked or rate-limited status code — see Max session rotations.",
            "default": 5
          },
          "maxSessionRotations": {
            "title": "Max session rotations",
            "minimum": 0,
            "type": "integer",
            "description": "Retries for a blocked or rate-limited response, each with a fresh session and proxy. Separate budget from Max request retries.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "FlightRadar24 gates on the browser fingerprint rather than the IP, so the default datacenter proxy is usually enough. Switch to residential only if you see repeated blocks.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}