OpenSky Network Flights API

Endpoints for retrieving flight records including arrivals, departures, and flights by aircraft.

OpenAPI Specification

opensky-flights-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: OpenSky Network REST Flights API
  description: REST API for retrieving real-time and historical ADS-B aircraft state vectors, flight tracks, and airport arrival and departure data from the OpenSky Network crowd-sourced receiver network. Intended for non-commercial research and educational use.
  version: 1.0.0
  termsOfService: https://opensky-network.org/about/terms-of-use
  contact:
    name: OpenSky Network
    email: contact@opensky-network.org
    url: https://opensky-network.org/about/contact
  license:
    name: OpenSky Network Terms of Use
    url: https://opensky-network.org/about/terms-of-use
servers:
- url: https://opensky-network.org/api
  description: OpenSky Network REST API
security:
- {}
- bearerAuth: []
tags:
- name: Flights
  description: Endpoints for retrieving flight records including arrivals, departures, and flights by aircraft.
paths:
  /flights/all:
    get:
      operationId: getFlightsAll
      summary: Get flights in time interval
      description: Retrieve flights for a given time interval. The time interval must not exceed 2 hours. Returns all flights that were seen within the time interval.
      tags:
      - Flights
      parameters:
      - name: begin
        in: query
        required: true
        schema:
          type: integer
        description: Start of time interval to retrieve flights for as Unix time (seconds since epoch).
      - name: end
        in: query
        required: true
        schema:
          type: integer
        description: End of time interval to retrieve flights for as Unix time (seconds since epoch). Must be within 2 hours of begin.
      responses:
        '200':
          description: Successful response with an array of flights.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FlightObject'
        '400':
          description: Bad request. The time interval may exceed the 2-hour maximum.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No flights found for the given time interval.
          content: {}
        '429':
          description: Too many requests. Credit limit exhausted.
          headers:
            X-Rate-Limit-Retry-After-Seconds:
              schema:
                type: integer
              description: Number of seconds to wait before retrying.
  /flights/aircraft:
    get:
      operationId: getFlightsByAircraft
      summary: Get flights by aircraft
      description: Retrieve flights for a particular aircraft within a given time interval. The time interval must not exceed 2 days. Returns all flights for the specified aircraft in the given time range.
      tags:
      - Flights
      parameters:
      - name: icao24
        in: query
        required: true
        schema:
          type: string
        description: Unique ICAO 24-bit address of the transponder in lower-case hex string representation (e.g. 3c6444).
      - name: begin
        in: query
        required: true
        schema:
          type: integer
        description: Start of time interval to retrieve flights for as Unix time (seconds since epoch).
      - name: end
        in: query
        required: true
        schema:
          type: integer
        description: End of time interval to retrieve flights for as Unix time (seconds since epoch). Must be within 2 days of begin.
      responses:
        '200':
          description: Successful response with an array of flights for the specified aircraft.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FlightObject'
        '400':
          description: Bad request. The time interval may exceed the 2-day maximum.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No flights found for the given aircraft and time interval.
          content: {}
        '429':
          description: Too many requests. Credit limit exhausted.
          headers:
            X-Rate-Limit-Retry-After-Seconds:
              schema:
                type: integer
              description: Number of seconds to wait before retrying.
  /flights/arrival:
    get:
      operationId: getFlightsByArrivalAirport
      summary: Get arrivals by airport
      description: Retrieve flights arriving at a specific airport within a given time interval. The time interval must not exceed 2 days. Returns all flights that arrived at the specified airport in the given time range.
      tags:
      - Flights
      parameters:
      - name: airport
        in: query
        required: true
        schema:
          type: string
        description: ICAO identifier for the airport (e.g. EDDF for Frankfurt Airport).
      - name: begin
        in: query
        required: true
        schema:
          type: integer
        description: Start of time interval to retrieve flights for as Unix time (seconds since epoch).
      - name: end
        in: query
        required: true
        schema:
          type: integer
        description: End of time interval to retrieve flights for as Unix time (seconds since epoch). Must be within 2 days of begin.
      responses:
        '200':
          description: Successful response with an array of arrival flights.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FlightObject'
        '400':
          description: Bad request. The time interval may exceed the 2-day maximum.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No arrivals found for the given airport and time interval.
          content: {}
        '429':
          description: Too many requests. Credit limit exhausted.
          headers:
            X-Rate-Limit-Retry-After-Seconds:
              schema:
                type: integer
              description: Number of seconds to wait before retrying.
  /flights/departure:
    get:
      operationId: getFlightsByDepartureAirport
      summary: Get departures by airport
      description: Retrieve flights departing from a specific airport within a given time interval. The time interval should cover more than 2 days of UTC boundaries for best results. Returns all flights that departed from the specified airport in the given time range.
      tags:
      - Flights
      parameters:
      - name: airport
        in: query
        required: true
        schema:
          type: string
        description: ICAO identifier for the airport (typically uppercase, e.g. EDDF for Frankfurt Airport).
      - name: begin
        in: query
        required: true
        schema:
          type: integer
        description: Start of time interval to retrieve flights for as Unix time (seconds since epoch).
      - name: end
        in: query
        required: true
        schema:
          type: integer
        description: End of time interval to retrieve flights for as Unix time (seconds since epoch).
      responses:
        '200':
          description: Successful response with an array of departure flights.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FlightObject'
        '400':
          description: Bad request. Invalid parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No departures found for the given airport and time interval.
          content: {}
        '429':
          description: Too many requests. Credit limit exhausted.
          headers:
            X-Rate-Limit-Retry-After-Seconds:
              schema:
                type: integer
              description: Number of seconds to wait before retrying.
components:
  schemas:
    FlightObject:
      type: object
      description: A flight record representing a single flight detected by the OpenSky Network.
      properties:
        icao24:
          type: string
          description: Unique ICAO 24-bit address of the transponder in hex string representation. All letters are lower case.
          example: 3c6444
        firstSeen:
          type: integer
          description: Estimated time of departure for the flight as Unix time (seconds since epoch).
          example: 1517220000
        estDepartureAirport:
          type: string
          nullable: true
          description: ICAO code of the estimated departure airport. Can be null if the airport could not be identified.
          example: EDDF
        lastSeen:
          type: integer
          description: Estimated time of arrival for the flight as Unix time (seconds since epoch).
          example: 1517223600
        estArrivalAirport:
          type: string
          nullable: true
          description: ICAO code of the estimated arrival airport. Can be null if the airport could not be identified.
          example: EGLL
        callsign:
          type: string
          nullable: true
          description: Callsign of the vehicle (8 chars). Can be null if no callsign has been received. If the vehicle transmits multiple callsigns during the flight, the one seen most frequently is used.
          example: 'DLH400 '
        estDepartureAirportHorizDistance:
          type: integer
          nullable: true
          description: Horizontal distance of the last received airborne position to the estimated departure airport in meters.
          example: 1250
        estDepartureAirportVertDistance:
          type: integer
          nullable: true
          description: Vertical distance of the last received airborne position to the estimated departure airport in meters.
          example: 304
        estArrivalAirportHorizDistance:
          type: integer
          nullable: true
          description: Horizontal distance of the last received airborne position to the estimated arrival airport in meters.
          example: 1800
        estArrivalAirportVertDistance:
          type: integer
          nullable: true
          description: Vertical distance of the last received airborne position to the estimated arrival airport in meters.
          example: 152
        departureAirportCandidatesCount:
          type: integer
          description: Number of other possible departure airports in short distance to estDepartureAirport.
          example: 0
        arrivalAirportCandidatesCount:
          type: integer
          description: Number of other possible arrival airports in short distance to estArrivalAirport.
          example: 1
    Error:
      type: object
      properties:
        message:
          type: string
          description: Human-readable error message.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: OAuth2 client credentials Bearer token obtained from https://auth.opensky-network.org/auth/realms/opensky-network/protocol/openid-connect/token. Tokens expire after 30 minutes.
externalDocs:
  description: OpenSky Network REST API Documentation
  url: https://openskynetwork.github.io/opensky-api/rest.html