{
  "openapi": "3.0.1",
  "info": {
    "title": "OpenSky Flight Scraper — Live Aircraft & ADS-B Data",
    "description": "Scrape live aircraft states and flight history from OpenSky Network. Extract icao24, callsign, position, altitude, velocity, heading for aviation analytics, flight tracking, and ATC research. No API key, no login.",
    "version": "1.0",
    "x-build-id": "hLckCtHGDTGaBCDyM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/logiover~opensky-flight-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-logiover-opensky-flight-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/logiover~opensky-flight-scraper/runs": {
      "post": {
        "operationId": "runs-sync-logiover-opensky-flight-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/logiover~opensky-flight-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-logiover-opensky-flight-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",
        "properties": {
          "region": {
            "title": "Region",
            "enum": [
              "worldwide",
              "europe",
              "northAmerica",
              "middleEastAsia",
              "africa",
              "oceania",
              "southAmerica"
            ],
            "type": "string",
            "description": "Pick a world region to scan live aircraft over its busiest airports. 'Worldwide' scans the full global grid. Leave as default (Worldwide) to get live flights everywhere. To scan a precise area instead, use the bounding box or custom center fields below.",
            "default": "worldwide"
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Maximum number of unique aircraft to return. Default 500 keeps empty/worldwide runs fast and cheap. Raise it (up to 20000) to capture every aircraft in view.",
            "default": 500
          },
          "lamin": {
            "title": "Min Latitude (bounding box, optional)",
            "minimum": -90,
            "maximum": 90,
            "type": "number",
            "description": "Minimum latitude for a bounding-box filter (e.g. 40). When all four bbox fields are set, only grid centers inside the box are queried. Leave empty to use the Region selector instead."
          },
          "lomin": {
            "title": "Min Longitude (bounding box, optional)",
            "minimum": -180,
            "maximum": 180,
            "type": "number",
            "description": "Minimum longitude for a bounding-box filter (e.g. -10). Use together with the other three bbox fields."
          },
          "lamax": {
            "title": "Max Latitude (bounding box, optional)",
            "minimum": -90,
            "maximum": 90,
            "type": "number",
            "description": "Maximum latitude for a bounding-box filter (e.g. 60). Use together with the other three bbox fields."
          },
          "lomax": {
            "title": "Max Longitude (bounding box, optional)",
            "minimum": -180,
            "maximum": 180,
            "type": "number",
            "description": "Maximum longitude for a bounding-box filter (e.g. 30). Use together with the other three bbox fields."
          },
          "centerLat": {
            "title": "Center Latitude (optional)",
            "minimum": -90,
            "maximum": 90,
            "type": "number",
            "description": "Latitude of a single custom center point. Use with Center Longitude and Search Radius for a focused area search."
          },
          "centerLon": {
            "title": "Center Longitude (optional)",
            "minimum": -180,
            "maximum": 180,
            "type": "number",
            "description": "Longitude of a single custom center point. Use with Center Latitude and Search Radius."
          },
          "radius": {
            "title": "Search Radius (nautical miles)",
            "minimum": 10,
            "maximum": 250,
            "type": "integer",
            "description": "Radius in nautical miles around each grid center (or custom center). Default 100nm. Max ~250nm before responses get too large.",
            "default": 100
          },
          "proxy": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Apify proxy settings. Defaults to Apify Proxy (AUTO). The adsb.lol API is open, so a direct connection is used automatically as a fallback if the proxy fails.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}