OpenSky Network · Schema

StateVectorResponse

Response object from the OpenSky Network REST API state vector endpoints containing time and an array of aircraft state vectors.

AviationFlight TrackingADS-BAircraftAirportReal-TimeHistorical Data

Properties

Name Type Description
time integer The time which the state vectors in this response are associated with. All vectors represent the state of a vehicle within the interval [time-1, time].
states arraynull The state vectors as a two-dimensional array. Each row represents a state vector with 18 indexed fields. Is null if no states are available.
View JSON Schema on GitHub

JSON Schema

state-vector-response.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/opensky/refs/heads/main/json-schema/state-vector-response.json",
  "title": "StateVectorResponse",
  "description": "Response object from the OpenSky Network REST API state vector endpoints containing time and an array of aircraft state vectors.",
  "type": "object",
  "properties": {
    "time": {
      "type": "integer",
      "description": "The time which the state vectors in this response are associated with. All vectors represent the state of a vehicle within the interval [time-1, time].",
      "example": 1458564121
    },
    "states": {
      "type": ["array", "null"],
      "description": "The state vectors as a two-dimensional array. Each row represents a state vector with 18 indexed fields. Is null if no states are available.",
      "items": {
        "$ref": "#/$defs/StateVector"
      }
    }
  },
  "$defs": {
    "StateVector": {
      "type": "array",
      "title": "StateVector",
      "description": "A single aircraft state vector containing 18 indexed fields representing the aircraft's current state.",
      "minItems": 17,
      "maxItems": 18,
      "prefixItems": [
        {
          "type": "string",
          "title": "icao24",
          "description": "Unique ICAO 24-bit address of the transponder in lower-case hex string representation.",
          "pattern": "^[0-9a-f]{6}$",
          "example": "3c6444"
        },
        {
          "type": ["string", "null"],
          "title": "callsign",
          "description": "Callsign of the vehicle (8 chars). Can be null if no callsign has been received.",
          "maxLength": 8,
          "example": "DLH400  "
        },
        {
          "type": "string",
          "title": "origin_country",
          "description": "Country name inferred from the ICAO 24-bit address.",
          "example": "Germany"
        },
        {
          "type": ["integer", "null"],
          "title": "time_position",
          "description": "Unix timestamp (seconds) for the last position update. Can be null if no position report was received by OpenSky within the past 15 seconds.",
          "example": 1458564120
        },
        {
          "type": "integer",
          "title": "last_contact",
          "description": "Unix timestamp (seconds) for the last update in general. Updated for any new valid message received from the transponder.",
          "example": 1458564121
        },
        {
          "type": ["number", "null"],
          "title": "longitude",
          "description": "WGS-84 longitude in decimal degrees. Can be null.",
          "minimum": -180,
          "maximum": 180,
          "example": 8.5432
        },
        {
          "type": ["number", "null"],
          "title": "latitude",
          "description": "WGS-84 latitude in decimal degrees. Can be null.",
          "minimum": -90,
          "maximum": 90,
          "example": 47.2231
        },
        {
          "type": ["number", "null"],
          "title": "baro_altitude",
          "description": "Barometric altitude in meters. Can be null.",
          "example": 9144.0
        },
        {
          "type": "boolean",
          "title": "on_ground",
          "description": "Boolean value which indicates if the position was retrieved from a surface position report.",
          "example": false
        },
        {
          "type": ["number", "null"],
          "title": "velocity",
          "description": "Velocity over ground in m/s. Can be null.",
          "minimum": 0,
          "example": 251.2
        },
        {
          "type": ["number", "null"],
          "title": "true_track",
          "description": "True track in decimal degrees clockwise from north (north=0 degrees). Can be null.",
          "minimum": 0,
          "maximum": 360,
          "example": 87.5
        },
        {
          "type": ["number", "null"],
          "title": "vertical_rate",
          "description": "Vertical rate in m/s. Positive value indicates climbing, negative value indicates descending. Can be null.",
          "example": 0.0
        },
        {
          "type": ["array", "null"],
          "title": "sensors",
          "description": "IDs of the receivers which contributed to this state vector. Is null if no filtering for sensor was used in the request.",
          "items": {
            "type": "integer"
          },
          "example": null
        },
        {
          "type": ["number", "null"],
          "title": "geo_altitude",
          "description": "Geometric altitude in meters. Can be null.",
          "example": 9448.8
        },
        {
          "type": ["string", "null"],
          "title": "squawk",
          "description": "The transponder code aka Squawk. Can be null.",
          "example": "1000"
        },
        {
          "type": "boolean",
          "title": "spi",
          "description": "Whether flight status indicates special purpose indicator.",
          "example": false
        },
        {
          "type": "integer",
          "title": "position_source",
          "description": "Origin of this state's position. 0=ADS-B, 1=ASTERIX, 2=MLAT, 3=FLARM.",
          "enum": [0, 1, 2, 3]
        },
        {
          "type": "integer",
          "title": "category",
          "description": "Aircraft category. 0=No information, 1=No ADS-B Emitter Category Info, 2=Light, 3=Small, 4=Large, 5=High Vortex Large, 6=Heavy, 7=High Performance, 8=Rotorcraft, 9=Glider, 10=Lighter-than-air, 11=Parachutist, 12=Ultralight, 13=Reserved, 14=UAV, 15=Space vehicle, 16=Surface Emergency, 17=Surface Service, 18=Point Obstacle, 19=Cluster Obstacle, 20=Line Obstacle.",
          "minimum": 0,
          "maximum": 20
        }
      ]
    }
  }
}