ADS-B Exchange Operations API

Endpoints provide access to Takeoffs/Landings operational events.

Operations 4

POST /operations/icaos Get operations by multiple aircraft ICAO codes #
GET /operations/icao/{icao} Get operations by aircraft #
POST /operations/airports Get operations by multiple airports #
GET /operations/airport/{airport} Get operations by airport #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/adsbexchange-operations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

adsbexchange-operations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ADSB Exchange Geopolitical Filtering Operations API
  description: "The ADSB Exchange API provides real-time access to live global flight data,\nenabling retrieval of detailed information on aircraft positions, flight events, historical trace files,\nand many more aviation metrics. <br /><br />\nKnown for its accurate data, ADSB Exchange API is ideal\nfor aviation tracking applications, research, and analytics, offering extensive coverage powered by a\nglobal network of ADS-B and MLAT receivers. <br /><br />\nThis documentation is available in <a href=\"/api/aircraft/v2/docs\">ReDoc</a> and <a href=\"/api/aircraft/v2/docs/swagger\">Swagger</a> formats.\n<p>\n<b>Important developer notes:</b><br />\n<ul>\n  <li>When designing API client, please ensure that all requests include the 'Accept-Encoding' header with 'gzip' value.</li>\n  <li>When property values are not available, they will be omitted from the response object overall.</li>\n  <li>When parsing JSON response do not hard-code the order of properties. Use property names to access values.</li>\n  <li>We will never remove or rename properties. However, we may add new properties. Please ensure your code is resilient to new additive properties on the response objects.</li>\n</ul>\n</p>"
  termsOfService: https://www.adsbexchange.com/terms-of-use/
  contact:
    name: Contact ADSB Exchange
    url: https://www.adsbexchange.com/products/enterprise-api/
  version: v2
  x-logo:
    url: https://adsbexchange.com/wp-content/uploads/ax_logo_background_api-scaled.avif
    href: '#'
servers:
- url: https://gateway.adsbexchange.com/api/aircraft/v2
tags:
- name: Operations
  description: Endpoints provide access to Takeoffs/Landings operational events.
paths:
  /operations/icaos:
    post:
      tags:
      - Operations
      summary: Get operations by multiple aircraft ICAO codes
      description: 'Returns operations (Takeoffs and Landings) for the given ICAO codes. Response is paginated and sorted by time (descending). Returns 1000 items per page.

        Max number of ICAOs per request is 500 (enforced by model validation), further constrained by FleetLimit entitlement.'
      operationId: PostApiAircraftV2OperationsIcaos
      parameters:
      - name: page
        x-originalName: pageNumber
        in: query
        schema:
          type:
          - integer
          - 'null'
          format: int32
        x-position: 2
      - name: time_from
        x-originalName: unixTimestampFrom
        in: query
        schema:
          type:
          - integer
          - 'null'
          format: int64
        x-position: 3
      - name: time_to
        x-originalName: unixTimestampTo
        in: query
        schema:
          type:
          - integer
          - 'null'
          format: int64
        x-position: 4
      - type: string
        name: Accept-Encoding
        in: header
        required: true
        description: The encoding type the client will accept in the response. API call must use compression.
        default: gzip
        example: gzip
      requestBody:
        x-name: request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OperationsIcaosRequest'
        required: true
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationsResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '402':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiUnauthorizedResponse'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiForbiddenResponse'
        '429':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTooManyRequestsResponse'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      security:
      - X-Api-Key: []
  /operations/icao/{icao}:
    get:
      tags:
      - Operations
      summary: Get operations by aircraft
      description: 'Returns operations (Takeoffs and Landings) for the given ICAO code (hex code) of the aircraft.

        Response is paginated and sorted by time (descending). Returns 20 items per page.


        ```

        GET /api/aircraft/v2/operations/icao/A1B2C3

        ```'
      operationId: GetApiAircraftV2OperationsIcao
      parameters:
      - name: icao
        in: path
        required: true
        description: ICAO code of the aircraft.
        schema:
          type: string
        x-position: 1
      - name: page
        x-originalName: pageNumber
        in: query
        description: Page number to return. When not specified, defaults to 1.
        schema:
          type:
          - integer
          - 'null'
          format: int32
        x-position: 2
      - name: time_from
        x-originalName: unixTimestampFrom
        in: query
        description: Unix timestamp from which to start the search. When not specified, defaults to 24 hours ago. Value in seconds.
        schema:
          type:
          - integer
          - 'null'
          format: int64
        x-position: 3
      - name: time_to
        x-originalName: unixTimestampTo
        in: query
        description: Unix timestamp to which to end the search. When not specified, defaults to current time. Value in seconds.
        schema:
          type:
          - integer
          - 'null'
          format: int64
        x-position: 4
      - type: string
        name: Accept-Encoding
        in: header
        required: true
        description: The encoding type the client will accept in the response. API call must use compression.
        default: gzip
        example: gzip
      responses:
        '200':
          description: 'Response containing a collection of operational events: takeoffs and landings.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationsResponse'
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiUnauthorizedResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiForbiddenResponse'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTooManyRequestsResponse'
        '500':
          description: Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      security:
      - X-Api-Key: []
  /operations/airports:
    post:
      tags:
      - Operations
      summary: Get operations by multiple airports
      description: "Returns operations (Takeoffs and Landings) for the given ICAO codes of the airports. Response is paginated and sorted by time (descending). Returns 1000 items per page.\nMax number of airports per request is 500 (hard limit), further constrained by AirportLimit entitlement.\n\n**Example**: get operations for three main California airports (Los Angeles, San Francisco, San Diego):\n```\nPOST /api/aircraft/v2/operations/airports\n            \n{\n    \"airports\": [\"KLAX\", \"KSFO\", \"KSAN\"]\n}\n```"
      operationId: PostApiAircraftV2OperationsAirports
      parameters:
      - name: page
        x-originalName: pageNumber
        in: query
        schema:
          type:
          - integer
          - 'null'
          format: int32
        x-position: 2
      - name: time_from
        x-originalName: unixTimestampFrom
        in: query
        schema:
          type:
          - integer
          - 'null'
          format: int64
        x-position: 3
      - name: time_to
        x-originalName: unixTimestampTo
        in: query
        schema:
          type:
          - integer
          - 'null'
          format: int64
        x-position: 4
      - type: string
        name: Accept-Encoding
        in: header
        required: true
        description: The encoding type the client will accept in the response. API call must use compression.
        default: gzip
        example: gzip
      requestBody:
        x-name: request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OperationsAirportRequest'
        required: true
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationsResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '402':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiUnauthorizedResponse'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiForbiddenResponse'
        '429':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTooManyRequestsResponse'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      security:
      - X-Api-Key: []
  /operations/airport/{airport}:
    get:
      tags:
      - Operations
      summary: Get operations by airport
      description: 'Returns operations (Takeoffs and Landings) for the given ICAO code of the airport. Response is paginated and sorted by time (descending). Returns 20 items per page.


        Get operations for San Francisco airport for the last 24 hours:

        ```

        GET /api/aircraft/v2/operations/airport/KSFO

        ```

        Use https://www.world-airport-codes.com/ to find ICAO codes for airports.'
      operationId: GetApiAircraftV2OperationsAirport
      parameters:
      - name: airport
        in: path
        required: true
        description: ICAO code of the airport.
        schema:
          type: string
        x-position: 1
      - name: page
        x-originalName: pageNumber
        in: query
        description: Page number to return. When not specified, defaults to 1.
        schema:
          type:
          - integer
          - 'null'
          format: int32
        x-position: 2
      - name: time_from
        x-originalName: unixTimestampFrom
        in: query
        description: Unix timestamp from which to start the search. When not specified, defaults to 24 hours ago. Value in seconds.
        schema:
          type:
          - integer
          - 'null'
          format: int64
        x-position: 3
      - name: time_to
        x-originalName: unixTimestampTo
        in: query
        description: Unix timestamp to which to end the search. When not specified, defaults to current time. Value in seconds.
        schema:
          type:
          - integer
          - 'null'
          format: int64
        x-position: 4
      - type: string
        name: Accept-Encoding
        in: header
        required: true
        description: The encoding type the client will accept in the response. API call must use compression.
        default: gzip
        example: gzip
      responses:
        '200':
          description: 'Response containing a collection of operational events: takeoffs and landings.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OperationsResponse'
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiUnauthorizedResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiForbiddenResponse'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTooManyRequestsResponse'
        '500':
          description: Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      security:
      - X-Api-Key: []
components:
  schemas:
    OperationsResponseItem:
      type: object
      additionalProperties: false
      properties:
        icao:
          type: string
        registration:
          type:
          - string
          - 'null'
        flight:
          type:
          - string
          - 'null'
        ac_type:
          type:
          - string
          - 'null'
        time:
          type:
          - string
          - 'null'
        time_epoch:
          type: integer
          format: int64
        airport:
          type:
          - string
          - 'null'
        runway:
          type:
          - string
          - 'null'
        operation:
          type:
          - string
          - 'null'
        flight_link:
          type:
          - string
          - 'null'
        gs:
          type:
          - string
          - 'null'
        squawk:
          type:
          - string
          - 'null'
        signal_type:
          type:
          - string
          - 'null'
        alt_baro:
          type:
          - integer
          - 'null'
          format: int32
        track:
          type:
          - string
          - 'null'
        lat:
          type:
          - number
          - 'null'
          format: float
        lon:
          type:
          - number
          - 'null'
          format: float
        alt_geom:
          type:
          - integer
          - 'null'
          format: int32
        rate:
          type:
          - integer
          - 'null'
          format: int32
        category:
          type:
          - string
          - 'null'
        reg:
          type:
          - string
          - 'null'
        icaotype:
          type:
          - string
          - 'null'
        year:
          type:
          - string
          - 'null'
        manufacturer:
          type:
          - string
          - 'null'
        model:
          type:
          - string
          - 'null'
        ownop:
          type:
          - string
          - 'null'
        faa_pia:
          type:
          - boolean
          - 'null'
        faa_ladd:
          type:
          - boolean
          - 'null'
        short_type:
          type:
          - string
          - 'null'
        mil:
          type:
          - boolean
          - 'null'
        apt_type:
          type:
          - string
          - 'null'
        name:
          type:
          - string
          - 'null'
        continent:
          type:
          - string
          - 'null'
        iso_country:
          type:
          - string
          - 'null'
        iso_region:
          type:
          - string
          - 'null'
        municipality:
          type:
          - string
          - 'null'
        scheduled_service:
          type:
          - string
          - 'null'
        iata_code:
          type:
          - string
          - 'null'
        wgs84_elev:
          type:
          - integer
          - 'null'
          format: int32
    OperationsAirportRequest:
      type: object
      description: Model representing a request for obtaining operations (takeoffs/landings) for one or more airports.
      additionalProperties: false
      properties:
        airports:
          type: array
          maxItems: 500
          minItems: 1
          items:
            type: string
    ApiUnauthorizedResponse:
      type: object
      additionalProperties: false
      properties:
        msg:
          type: string
        reason:
          type:
          - string
          - 'null'
    BadRequest:
      type: object
      additionalProperties: false
      properties:
        statusCode:
          type: integer
          format: int32
    ApiForbiddenResponse:
      type: object
      additionalProperties: false
      properties:
        msg:
          type: string
        reason:
          type:
          - string
          - 'null'
    ApiTooManyRequestsResponse:
      type: object
      additionalProperties: false
      properties:
        message:
          type: string
    OperationsResponse:
      type: object
      description: Response envelope for the response containing multiple operations objects.
      additionalProperties: false
      properties:
        items:
          type: array
          description: List of operations objects
          items:
            $ref: '#/components/schemas/OperationsResponseItem'
        msg:
          type: string
          description: Message indicating the status of the request overall.
        totalItems:
          type: integer
          description: The total number of operations in the database for the given query.
          format: int32
        totalPages:
          type: integer
          description: Total number of pages that client can iterate through.
          format: int32
        pageNumber:
          type: integer
          description: Current page number.
          format: int32
        ctime:
          type: integer
          description: Unix timestamp of when the underlying data was last updated.
          format: int64
        now:
          type: integer
          description: Unix timestamp of the current UTC time on the server.
          format: int64
        ptime:
          type: integer
          description: Time taken on API server to process the request, in milliseconds.
          format: int64
    OperationsIcaosRequest:
      type: object
      description: Model representing a request for obtaining operations (takeoffs/landings) for one or more aircraft ICAO codes.
      additionalProperties: false
      properties:
        icaos:
          type: array
          maxItems: 500
          minItems: 1
          items:
            type: string
    ProblemDetails:
      type: object
      additionalProperties: {}
      properties:
        type:
          type:
          - string
          - 'null'
        title:
          type:
          - string
          - 'null'
        status:
          type:
          - integer
          - 'null'
          format: int32
        detail:
          type:
          - string
          - 'null'
        instance:
          type:
          - string
          - 'null'
  securitySchemes:
    X-Api-Key:
      type: apiKey
      description: Provide your API key via x-api-key header to access the API.
      name: x-api-key
      in: header
x-generator: NSwag v14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))