{ "x-generator": "NSwag v14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))", "openapi": "3.0.0", "info": { "title": "ADSB Exchange 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.

\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.

\nThis documentation is available in ReDoc and Swagger formats.\n

\nImportant developer notes:
\n

\n

", "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" } ], "paths": { "/all": { "get": { "tags": [ "Live Positional Data" ], "summary": "Get all aircraft", "description": "Returns all aircraft currently being tracked.\n\nNote: This endpoint can be slow or unresponsive in Swagger UI due to the large volume of data returned. For best results, use an external tool (like Postman or curl).", "operationId": "GetApiAircraftV2All", "parameters": [ { "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": "Returns a collection of aircraft.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "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": [] } ] } }, "/total-aircraft": { "get": { "tags": [ "Live Positional Data" ], "summary": "Get total aircraft", "description": "Returns only count of aircraft currently being tracked.", "operationId": "GetApiAircraftV2TotalAircraft", "parameters": [ { "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": "Returns a collection of aircraft with only total aircraft number set.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "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": [] } ] } }, "/filter": { "post": { "tags": [ "Live Positional Data" ], "summary": "Filter aircraft by criteria", "description": "Filters and returns only aircraft that match the provided criteria.\nFilter contains of a list of filter definitions and a logical operator that defines how filter criteria shall be combined.\n\nTwo logical operators are supported: \"and\" and \"or\". Default is \"and\" when property is not provided.\n\nFilter definition consists of the following properties:\n* \"property\" (string) - name of the property to filter by. Case-insensitive. Filtering only on top-level properties is supported.\n* \"operator\" (string) - comparison operator. All string comparisons are case-insensitive. Supported operators:\n * \"eq\" (equals)\n * \"ne\" (not equals)\n * \"gt\" (greater than, number only)\n * \"lt\" (less than, number only)\n * \"ge\" (greater than or equal to, number only)\n * \"le\" (less than or equal to, number only)\n * \"isNull\" (property value is null)\n * \"isNotNull\" (property is not null)\n * \"contains\" (property contains the value, string only)\n * \"notContains\" (property does not contain the value, string only)\n * \"startsWith\" (property starts with the value, string only)\n * \"notStartsWith\" (property does not start with the value, string only)\n * \"endsWith\" (property ends with the value, string only)\n * \"notEndsWith\" (property does not end with the value, string only)\n* \"value\" (string/number/boolean) - value to compare the property to.\nIf string - comparison is case-insensitive.\nIf number has decimal point - it will be parsed as double, otherwise as long.\nDecimals are compared with precision of 6 digits after the point (scientific notation is not supported).\nYou have to ensure type of the value specified matches the target property type (i.e. if response object type is number, you have to provide number).\n\nYou can supply up to 10 filters in a single request.\n\n**Example 1**: get all airborne aircraft under 5000 feet:\n```\nPOST /api/aircraft/v2/filter\n \n{\n \"filters\": [\n {\n \"property\": \"alt_baro\",\n \"operator\": \"le\",\n \"value\": 5000\n }\n ]\n}\n \n```\nPlease note, that when numeric value is provided, aircraft with value \"ground\" are excluded.\n\n \n**Example 2**: get aircraft that have updated their position in the last second:\n```\nPOST /api/aircraft/v2/filter\n \n{\n \"filters\": [\n {\n \"property\": \"seen\",\n \"operator\": \"le\",\n \"value\": 1\n }\n ]\n}\n \n```\nIf you're calling API at high frequency rate, this can be a reliable way to get only aircraft that have updated their position since the last request,\nand reduce the amount of data your application has to process.\n\n*Please note, if you decide to proceed this way - you have to keep track of the time when the last successful request\nwas made on your end, so that if you miss a request, you can adjust the time accordingly. Using value smaller than 0.5 seconds is not recommended, as\nAPI server refreshes aircraft positions every 500 milliseconds.*\n \n\n**Example 3**: get all airborne aircraft under 1000 feet and ones on the ground:\n```\nPOST /api/aircraft/v2/filter\n \n{\n \"logical_operator\": \"or\",\n \"filters\": [\n {\n \"property\": \"alt_baro\",\n \"operator\": \"le\",\n \"value\": 1000\n },\n {\n \"property\": \"alt_baro\",\n \"operator\": \"eq\",\n \"value\": \"ground\"\n }\n ]\n}\n \n```\n\n \n**Example 4**: get all WestJet and AirCanada aircraft:\n```\nPOST /api/aircraft/v2/filter\n \n{\n \"logical_operator\": \"or\",\n \"filters\": [\n {\n \"property\": \"flight\",\n \"operator\": \"startsWith\",\n \"value\": \"WJA\"\n },\n {\n \"property\": \"flight\",\n \"operator\": \"startsWith\",\n \"value\": \"ACA\"\n }\n ]\n}\n```\n\n \n**Example 5**: get PIA aircraft:\n```\nPOST /api/aircraft/v2/filter\n \n{\n \"logical_operator\": \"or\",\n \"filters\": [\n { \"property\": \"dbFlags\", \"operator\": \"eq\", \"value\": 4 },\n { \"property\": \"dbFlags\", \"operator\": \"eq\", \"value\": 5 },\n { \"property\": \"dbFlags\", \"operator\": \"eq\", \"value\": 6 },\n { \"property\": \"dbFlags\", \"operator\": \"eq\", \"value\": 7 },\n { \"property\": \"dbFlags\", \"operator\": \"eq\", \"value\": 12 },\n { \"property\": \"dbFlags\", \"operator\": \"eq\", \"value\": 13 },\n { \"property\": \"dbFlags\", \"operator\": \"eq\", \"value\": 14 },\n { \"property\": \"dbFlags\", \"operator\": \"eq\", \"value\": 15 }\n ]\n}\n```\nExplanation: whether aircraft is PIA or not is defined by the third bit in dbFlags property \"dbFlags & 4\".\nIn binary notation, 4 is 0100. Thus, if the third bit is set, the aircraft is PIA.\nWhich makes the following numeric values satisfy the requirement: 4, 5, 6, 7, 12, 13, 14, 15.\n\n \n**Example 6**: get aircraft where type is known:\n```\nPOST /api/aircraft/v2/filter\n \n{\n \"filters\": [\n {\n \"property\": \"t\",\n \"operator\": \"isNotNull\"\n }\n ]\n}\n```", "operationId": "PostApiAircraftV2Filter", "parameters": [ { "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", "description": "JSON request model containing definition of filter criteria.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FilterRequest" } } }, "required": true, "x-position": 1 }, "responses": { "200": { "description": "Response containing a collection of aircraft models that match filter criteria.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "402": { "description": "Payment Required", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiUnauthorizedResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiForbiddenResponse" } } } }, "422": { "description": "Request can not be processed due to error in filters", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "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": [] } ] } }, "/hex/{hex}": { "get": { "tags": [ "Live Positional Data" ], "summary": "Get last known position", "description": "This endpoint will return a last known position for the aircraft.\n\n\nEach aircraft model will contain the \"now\" property (unix timestamp, milliseconds) denoting the time when the aircraft was last observed.\n\n**Important:** Right now for backwards compatibility purposes, when requesting single aircraft by ICAO code,\ninstead of returning a collection of aircraft with a single aircraft, the method will return a single aircraft model. We understand\nthis is an unconventional behavior, which will be addressed in the future version of the API. To force a collection response, append a trailing comma\nto the ICAO code provided in the URL. This will still return a single aircraft model, but it will be wrapped in a collection as per API spec.\n\nExample:\n```\nGET /api/aircraft/v2/hex/A1B2C3,\n```\nwill force a collection response.", "operationId": "GetApiAircraftV2Hex", "parameters": [ { "name": "hex", "in": "path", "required": true, "description": "ICAO code of the aircraft, or coma-separated list of aircraft ICAO codes.", "schema": { "type": "string" }, "x-position": 1 }, { "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": "When single aircraft requested, returns a single aircraft model response, otherwise will return a collection of aircraft models. See the description.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "402": { "description": "Payment Required", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiUnauthorizedResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiForbiddenResponse" } } } }, "414": { "description": "Requested URL is too long", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestedUrlTooLongResponse" } } } }, "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": [] } ] } }, "/hex": { "post": { "tags": [ "Live Positional Data" ], "summary": "Get last known position", "description": "This endpoint will return a last known position for the aircraft. Because GET request has a limit on the number of characters in the URL,\nit is recommended to use POST request when querying multiple aircraft (more than 10).\n\n\nEach aircraft model will contain the \"now\" property (unix timestamp, milliseconds) denoting the time when the aircraft was last observed.\n\n**Important:** Right now for backwards compatibility purposes, when requesting single aircraft by ICAO code,\ninstead of returning a collection of aircraft with a single aircraft, the method will return a single aircraft model. We understand\nthis is an unconventional behavior, which will be addressed in the future version of the API. To force a collection response, append an empty string to\n\"hex_list\" property in the JSON request model. This will still return a single aircraft model, but it will be wrapped in a collection as per API spec.\n\nExample:\n```\nPOST /api/aircraft/v2/hex\n \n{\n \"hex_list\": [\"A1B2C3\", \"\"]\n}\n```\nwill force a collection response.", "operationId": "PostApiAircraftV2Hex", "parameters": [ { "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", "description": "JSON request model containing a list of ICAO codes to retrieve aircraft last known data for.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftRequest" } } }, "required": true, "x-position": 1 }, "responses": { "200": { "description": "When single aircraft requested, returns a single aircraft model response, otherwise will return a collection of aircraft models. See the description.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "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": [] } ] } }, "/icao/{icao}": { "get": { "tags": [ "Live Positional Data" ], "summary": "Get aircraft by ICAO", "description": "This endpoint will return aircraft data for the provided ICAO code(s). This will not return a match if aircraft has not been seen by ADSB Exchange in the last 15 minutes.", "operationId": "GetApiAircraftV2Icao", "parameters": [ { "name": "icao", "in": "path", "required": true, "description": "ICAO code of the aircraft, or coma-separated list of aircraft ICAO codes.", "schema": { "type": "string" }, "x-position": 1 }, { "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 aircraft models.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "402": { "description": "Payment Required", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiUnauthorizedResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiForbiddenResponse" } } } }, "414": { "description": "Requested URL is too long", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestedUrlTooLongResponse" } } } }, "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": [] } ] } }, "/icao": { "post": { "tags": [ "Live Positional Data" ], "summary": "Get aircraft by ICAO", "description": "This endpoint will return aircraft data for the provided ICAO code(s).\nThis will not return a match if aircraft has not been seen by ADSB Exchange in the last 15 minutes.\n\nBecause GET request has a limit on the number of characters in the URL,\nit is recommended to use POST request when querying multiple aircraft (more than 10).", "operationId": "PostApiAircraftV2Icao", "parameters": [ { "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", "description": "JSON request model containing a list of ICAO codes to retrieve aircraft data for.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftRequest" } } }, "required": true, "x-position": 1 }, "responses": { "200": { "description": "Response containing a collection of aircraft models.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "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": [] } ] } }, "/mil": { "get": { "tags": [ "Live Positional Data" ], "summary": "Get military aircraft", "description": "This endpoint will return only military aircraft.", "operationId": "GetApiAircraftV2Mil", "parameters": [ { "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 aircraft models.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "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": [] } ] } }, "/callsign/{callsign}": { "get": { "tags": [ "Live Positional Data" ], "summary": "Get aircraft by callsign", "description": "This endpoint will return aircraft data for the provided callsign(s).", "operationId": "GetApiAircraftV2Callsign", "parameters": [ { "name": "callsign", "in": "path", "required": true, "description": "Callsign of the aircraft, or coma-separated list of callsigns.", "schema": { "type": "string" }, "x-position": 1 }, { "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 aircraft models.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "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": [] } ] } }, "/registration/{registration}": { "get": { "tags": [ "Live Positional Data" ], "summary": "Get aircraft by registration", "description": "This endpoint will return aircraft data for the provided registration number(s).", "operationId": "GetApiAircraftV2Registration", "parameters": [ { "name": "registration", "in": "path", "required": true, "description": "Registration number of the aircraft, or comma-separated list of registrations.", "schema": { "type": "string" }, "x-position": 1 }, { "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 aircraft models.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "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": [] } ] } }, "/registration": { "post": { "tags": [ "Live Positional Data" ], "summary": "Get aircraft by registrations", "description": "This endpoint will return aircraft data for the provided registration number(s).\n\nBecause GET request has a limit on the number of characters in the URL,\nit is recommended to use POST request when querying multiple aircraft (more than 10).", "operationId": "PostApiAircraftV2Registration", "parameters": [ { "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", "description": "JSON request model containing a list of registration numbers to retrieve aircraft data for.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegistrationRequest" } } }, "required": true, "x-position": 1 }, "responses": { "200": { "description": "Response containing a collection of aircraft models.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "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": [] } ] } }, "/sqk/{squawk}": { "get": { "tags": [ "Live Positional Data" ], "summary": "Get aircraft by squawk", "description": "This endpoint will return aircraft data for the provided squawk code(s).", "operationId": "GetApiAircraftV2Sqk", "parameters": [ { "name": "squawk", "in": "path", "required": true, "description": "Squawk of the aircraft, or coma-separated list of squawk codes.", "schema": { "type": "string" }, "x-position": 1 }, { "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 aircraft models.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "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": [] } ] } }, "/lat/{lat}/lon/{lon}/dist/{dist}": { "get": { "tags": [ "Geospatial Filtering" ], "summary": "Get aircraft in radius", "description": "This endpoint will return aircraft data within the given radius (NM) of the provided coordinates.\n\nGet aircraft within 50 nautical miles of San Francisco:\n```\nGET /api/aircraft/v2/lat/37.7749/lon/-122.4194/dist/50\n```", "operationId": "GetApiAircraftV2LatLonDist", "parameters": [ { "name": "lat", "in": "path", "required": true, "description": "Latitude of the center point.", "schema": { "type": "number", "format": "double" }, "x-position": 1 }, { "name": "lon", "in": "path", "required": true, "description": "Longitude of the center point.", "schema": { "type": "number", "format": "double" }, "x-position": 2 }, { "name": "dist", "in": "path", "required": true, "description": "Radius in nautical miles.", "schema": { "type": "number", "format": "double" }, "x-position": 3 }, { "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 aircraft models within the given radius.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "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": [] } ] } }, "/proximity/radius": { "post": { "tags": [ "Geospatial Filtering" ], "summary": "Get aircraft in radius", "description": "This endpoint will return aircraft data within the given radius (NM) of the provided points.\n\nGet aircraft within 50 nautical miles of San Francisco, and within 20 nautical miles from New York (KJFK) at altitudes between 5000 and 30000 feet:\n```\nPOST /api/aircraft/v2/proximity/radius\n{\n \"filters\": [\n {\n \"latitude\": 37.7749,\n \"longitude\": -122.4194,\n \"radius\": 50\n },\n {\n \"latitude\": 40.641,\n \"longitude\": -73.775,\n \"radius\": 20,\n \"altitude_min\": 5000,\n \"altitude_max\": 30000\n },\n ...\n ]\n}\n```", "operationId": "PostApiAircraftV2ProximityRadius", "parameters": [ { "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", "description": "JSON request model containing a list of distance filters (points).", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProximityRequest" } } }, "required": true, "x-position": 1 }, "responses": { "200": { "description": "Response containing a collection of aircraft models within the given radius.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "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": [] } ] } }, "/minimal/lat/{lat}/lon/{lon}/dist/{dist}": { "get": { "tags": [ "Geospatial Filtering" ], "summary": "Get aircraft in radius (minimal)", "description": "This endpoint will return aircraft data within the given radius (NM) of the provided coordinates. The data will be returned in a minimal representation.", "operationId": "GetApiAircraftV2MinimalLatLonDist", "parameters": [ { "name": "lat", "in": "path", "required": true, "description": "Latitude of the center point.", "schema": { "type": "number", "format": "double" }, "x-position": 1 }, { "name": "lon", "in": "path", "required": true, "description": "Longitude of the center point.", "schema": { "type": "number", "format": "double" }, "x-position": 2 }, { "name": "dist", "in": "path", "required": true, "description": "Radius in nautical miles.", "schema": { "type": "number", "format": "double" }, "x-position": 3 }, { "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 aircraft models within the given radius.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionMinimalResponse" } } } }, "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": [] } ] } }, "/nohex/dist/{dist}/above/{alt}/lat/{lat}/lon/{lon}": { "get": { "tags": [ "Geospatial Filtering" ], "summary": "Get aircraft in radius (above altitude)", "description": "This endpoint will return aircraft data within the given radius (NM) of the provided coordinates, and above the provided altitude (ft).\n\nGet aircraft within 50 nautical miles of San Francisco, above 5000 feet (sea level):\n```\nGET /nohex/dist/50/above/5000/lat/37.7749/lon/-122.4194\n```", "operationId": "GetApiAircraftV2NohexDistAboveLatLon", "parameters": [ { "name": "lat", "in": "path", "required": true, "description": "Latitude of the center point.", "schema": { "type": "number", "format": "double" }, "x-position": 1 }, { "name": "lon", "in": "path", "required": true, "description": "Longitude of the center point.", "schema": { "type": "number", "format": "double" }, "x-position": 2 }, { "name": "dist", "in": "path", "required": true, "description": "Radius in nautical miles.", "schema": { "type": "number", "format": "double" }, "x-position": 3 }, { "name": "alt", "in": "path", "required": true, "description": "Altitude in feet above sea level.", "schema": { "type": "integer", "format": "int32" }, "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 aircraft models within the given radius.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "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": [] } ] } }, "/airport/{airport}": { "get": { "tags": [ "Geospatial Filtering" ], "summary": "Get aircraft near the airport", "description": "This endpoint will return aircraft data within 5 nautical miles of the provided airport ICAO code.\n\nGet aircraft within 5 nautical miles of San Francisco airport:\n```\nGET /api/aircraft/v2/airport/KSFO\n```\nUse https://www.world-airport-codes.com/ to find ICAO codes for airports.", "operationId": "GetApiAircraftV2Airport", "parameters": [ { "name": "airport", "in": "path", "required": true, "description": "ICAO code of the airport.", "schema": { "type": "string" }, "x-position": 1 }, { "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 aircraft models within the given radius.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "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": [] } ] } }, "/airport": { "post": { "tags": [ "Geospatial Filtering" ], "summary": "Get aircraft near airports", "description": "This endpoint will return aircraft data within 5 nautical miles of the provided airport ICAO code(s).\n\nGet aircraft within 5 nautical miles of San Francisco and Calgary airports:\n```\nPOST /api/aircraft/v2/airport\n{\n \"airports\": [\"KSFO\", \"CYYC\"]\n}\n```\nUse https://www.world-airport-codes.com/ to find ICAO codes for airports.", "operationId": "PostApiAircraftV2Airport", "parameters": [ { "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", "description": "JSON request model containing airport ICAO code.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AirportRequest" } } }, "required": true, "x-position": 1 }, "responses": { "200": { "description": "Response containing a collection of aircraft models within the given radius.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "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": [] } ] } }, "/geospatial/boundary": { "post": { "tags": [ "Geospatial Filtering" ], "summary": "Get aircraft within boundary", "description": "Returns all aircraft within the given geospatial boundary(ies) described by GeoJSON Features.\n\n\nThe boundary is defined as a GeoJSON \"FeatureCollection\" object that contains multiple \"Feature\" objects.\nOnly \"Polygon\" and \"MultiPolygon\" feature types are supported.\n\nWhen feature object in the request contains \"properties\" dictionary,\neach aircraft matched by the boundaries of the geometry in the response will inherit those.\nThis allows sending single request with multiple geometries. API supports having up to 5 properties per feature.\n**Important**: When overlapping geometries are provided, the aircraft will be returned only once.\nAircraft will inherit all properties from all geometries it falls into.\n\nTypical use-cases include:\n* Monitoring boundaries of multiple locations (e.g. airports, cities, regions)\n* Monitoring approaching certain airspace boundaries (defining multiple overlapping geometries)\n\nThe more geometries supplied in a single request, the slower the response becomes.\nWe recommended making more requests with fewer geometries to ensure faster response times.\n\nGet aircraft in the San Francisco Bay Area:\n```\nPOST /api/aircraft/v2/geospatial/boundary\n{\n \"type\": \"FeatureCollection\",\n \"features\": [\n {\n \"type\": \"Feature\",\n \"properties\": {\n \"id\": \"usa-san-francisco-bay-area\",\n \"name\": \"San Francisco Bay Area\"\n },\n \"geometry\": {\n \"coordinates\": [\n [\n [\n -122.44631395117611,\n 37.83516640724265\n ],\n [\n -122.5693889887842,\n 37.75095177721121\n ],\n [\n -122.43882801189045,\n 37.67277406071676\n ],\n [\n -122.29229571649552,\n 37.749864464293466\n ],\n [\n -122.44631395117611,\n 37.83516640724265\n ]\n ]\n ],\n \"type\": \"Polygon\"\n }\n }\n ]\n}\n```\n\n\nThe GeoJSON Specification can be found at https://geojson.org/.\n\nUsing https://geojson.io/ simplifies creating GeoJSON boundaries.", "operationId": "PostApiAircraftV2GeospatialBoundary", "parameters": [ { "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": "FeatureCollectionRequest", "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FeatureCollectionRequest" } } }, "required": true, "x-position": 1 }, "responses": { "200": { "description": "Response containing a collection of aircraft models within the given boundaries.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "400": { "description": "When the request is malformed or the GeoJSON is invalid.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BadRequest" } } } }, "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": [] } ] } }, "/geospatial/country/{country}": { "get": { "tags": [ "Geopolitical Filtering" ], "summary": "Get aircraft by country", "description": "Returns aircraft within the boundaries of the given country.\n\nSee below examples of how to query aircraft by country.\nCountry must be specified as ISO 3166-1 alpha-2 code.\nThe complete list of supported country codes can be accessed here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\n\nUSA:\n* `/api/aircraft/v2/geospatial/country/US`\n\nCanada:\n* `/api/aircraft/v2/geospatial/country/CA`", "operationId": "GetApiAircraftV2GeospatialCountry", "parameters": [ { "name": "country", "in": "path", "required": true, "description": "Country ISO 3166-1 alpha-2 code. Case-insensitive.", "schema": { "type": "string" }, "x-position": 1 }, { "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 aircraft models.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "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": [] } ] } }, "/geospatial/country/{country}/subdivisions": { "get": { "tags": [ "Geopolitical Filtering" ], "summary": "Get subdivisions by country code", "description": "Whe country code is provided, this endpoint will return a list of state/province subdivisions for the given country.\n\nThis endpoint is complimentary to `/geospatial/country/{country}/subdivision/{subdivision}` endpoint.\n\nThe complete list of supported country codes and states/provinces can be accessed here:\n* Countries: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\n* States/Provinces: https://en.wikipedia.org/wiki/ISO_3166-2\n\n\nFor example, to get a list of subdivisions for the United States you would call:\n```\nGET /api/aircraft/v2/geospatial/country/US/subdivisions\n```\nand expect a response with a collection of subdivisions:\n```json\n{\n \"country\": \"us\",\n \"subdivisions\": [\n {\n \"name\": \"Washington\",\n \"iso_a2\": \"US\",\n \"iso_3166_2\": \"US-WA\",\n \"adm1_code\": \"USA-3519\",\n \"name_alt\": \"WA|Wash.\",\n \"region\": \"West\"\n },\n ...\n ]\n}\n```\nand in requests to `/geospatial/country/{country}/subdivision/{subdivision}` endpoint you would use `iso_3166_2` code as a subdivision identifier.", "operationId": "GetApiAircraftV2GeospatialCountrySubdivisions", "parameters": [ { "name": "country", "in": "path", "required": true, "description": "Country ISO 3166-1 alpha-2 code. Case-insensitive.", "schema": { "type": "string" }, "x-position": 1 }, { "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 subdivisions.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GeoboundaryCountrySubdivisionsResponse" } } } }, "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": [] } ] } }, "/geospatial/country/{country}/subdivision/{subdivision}": { "get": { "tags": [ "Geopolitical Filtering" ], "summary": "Get aircraft by country subdivision: state/province", "description": "Returns aircraft within the boundaries of the given country's subdivision: state or province.\n\n* Country must be specified as ISO 3166-1 alpha-2 code.\n* State/province must be specified as ISO 3166-2 code. You can omit the country code prefix.\nBoth of the arguments are case-insensitive.\n \nSee below examples of how to query aircraft by country and state/province.\n \nUSA - California:\n* `/api/aircraft/v2/geospatial/country/US/subdivision/CA`\n* `/api/aircraft/v2/geospatial/country/US/subdivision/US-CA`\n \nCanada - British Columbia:\n* `/api/aircraft/v2/geospatial/country/CA/subdivision/BC`\n* `/api/aircraft/v2/geospatial/country/CA/subdivision/CA-BC`\n \nFrance - Paris:\n* `/api/aircraft/v2/geospatial/country/FR/subdivision/75`\n* `/api/aircraft/v2/geospatial/country/FR/subdivision/FR-75`\n\n\nThe complete list of supported country codes and states/provinces can be accessed here:\n* Countries: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\n* States/Provinces: https://en.wikipedia.org/wiki/ISO_3166-2\n\nYou can get supported states/provinces by making GET request to\n`/geospatial/country/{country}/subdivisions` endpoint.", "operationId": "GetApiAircraftV2GeospatialCountrySubdivision", "parameters": [ { "name": "country", "in": "path", "required": true, "description": "Country ISO 3166-1 alpha-2 code. Case-insensitive.", "schema": { "type": "string" }, "x-position": 1 }, { "name": "subdivision", "in": "path", "required": true, "description": "Subdivision (state/province) ISO_3166-2 code. You can omit the country code prefix. Case-insensitive.", "schema": { "type": "string" }, "x-position": 2 }, { "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 aircraft models.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "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": [] } ] } }, "/geospatial/region/{region}": { "get": { "tags": [ "Geopolitical Filtering" ], "summary": "Get aircraft by geographical region", "description": "Returns aircraft within the boundaries of the given geographical region.\n\nSupported regions:\n* Northern/Eastern/Southern/Western Europe\n* North/Central/South America\n* Central/East/South-East/South/West Asia\n* North/Middle/East/South/West Africa\n* Australia and New Zealand\n* Caribbean\n* Melanesia\n* Micronesia\n* Polynesia\n\n\nTo filter by 'North America' use pure text value from the list above. Remove spaces, or URL-encode them. Case-insensitive.\n \n* `/api/aircraft/v2/geospatial/region/NorthAmerica`\n* `/api/aircraft/v2/geospatial/region/North%20America`\n\n\nTo filter by 'South-East Asia':\n \n* `/api/aircraft/v2/geospatial/region/south-eastasia`\n* `/api/aircraft/v2/geospatial/region/South-East%20Asia`", "operationId": "GetApiAircraftV2GeospatialRegion", "parameters": [ { "name": "region", "in": "path", "required": true, "description": "Name of the geographical region from the list above. Case-insensitive.", "schema": { "type": "string" }, "x-position": 1 }, { "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 aircraft models.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "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": [] } ] } }, "/geospatial/continent/{continent}": { "get": { "tags": [ "Geopolitical Filtering" ], "summary": "Get aircraft by continent", "description": "Returns aircraft within the boundaries of the given continent.\n\nSupported continents:\n* Americas\n* Africa\n* Asia\n* Europe\n* Oceania\n* Antarctica\n\n\nTo filter by continent use pure text value from the list above.\n\nExamples:\n* `/api/aircraft/v2/geospatial/continent/Europe`\n* `/api/aircraft/v2/geospatial/continent/Antarctica`", "operationId": "GetApiAircraftV2GeospatialContinent", "parameters": [ { "name": "continent", "in": "path", "required": true, "description": "Name of the continent from the list above. Case-insensitive.", "schema": { "type": "string" }, "x-position": 1 }, { "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 aircraft models.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AircraftCollectionResponse" } } } }, "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/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.\nMax 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", "format": "int32", "nullable": true }, "x-position": 2 }, { "name": "time_from", "x-originalName": "unixTimestampFrom", "in": "query", "schema": { "type": "integer", "format": "int64", "nullable": true }, "x-position": 3 }, { "name": "time_to", "x-originalName": "unixTimestampTo", "in": "query", "schema": { "type": "integer", "format": "int64", "nullable": true }, "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.\nResponse is paginated and sorted by time (descending). Returns 20 items per page.\n\n```\nGET /api/aircraft/v2/operations/icao/A1B2C3\n```", "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", "format": "int32", "nullable": true }, "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", "format": "int64", "nullable": true }, "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", "format": "int64", "nullable": true }, "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", "format": "int32", "nullable": true }, "x-position": 2 }, { "name": "time_from", "x-originalName": "unixTimestampFrom", "in": "query", "schema": { "type": "integer", "format": "int64", "nullable": true }, "x-position": 3 }, { "name": "time_to", "x-originalName": "unixTimestampTo", "in": "query", "schema": { "type": "integer", "format": "int64", "nullable": true }, "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.\n\nGet operations for San Francisco airport for the last 24 hours:\n```\nGET /api/aircraft/v2/operations/airport/KSFO\n```\nUse 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", "format": "int32", "nullable": true }, "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", "format": "int64", "nullable": true }, "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", "format": "int64", "nullable": true }, "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": [] } ] } }, "/traces/{folder}/{jsonFile}": { "get": { "tags": [ "Traces" ], "summary": "Get recent trace file", "description": "Returns the trace file for the aircraft with the specified ICAO code.\n\nThe trace file contains aircraft position history starting 00:00 UTC today.\nMust begin with 'trace_recent_' or 'trace_full_' and end with '.json'.\nFolder name must be the last 2 characters of the aircraft ICAO code.\n\nExample: to request trace file for aircraft with ICAO code 'A1B2C3':\n```\nGET /api/aircraft/v2/traces/c3/trace_recent_a1b2c3.json\n```\n\n\nThe trace file is a JSON file with the following structure:\n```\n{\n icao: \"a1b2c3\", // hex id of the aircraft\n timestamp: 1609275898.495, // unix timestamp in seconds since epoch (1970)\n trace: [\n [ seconds after timestamp,\n lat,\n lon,\n altitude in ft or \"ground\" or null,\n ground speed in knots or null,\n track in degrees or null, (if altitude == \"ground\", this will be true heading instead of track)\n flags as a bitfield: (use bitwise and to extract data)\n (flags & 1 > 0): position is stale (no position received for 20 seconds before this one)\n (flags & 2 > 0): start of a new leg (tries to detect a separation point between landing and takeoff that separates flights)\n (flags & 4 > 0): vertical rate is geometric and not barometric\n (flags & 8 > 0): altitude is geometric and not barometric\n ,\n vertical rate in fpm or null,\n aircraft object with extra details or null (see aircraft.json documentation, note that not all fields are present as lat and lon for example already in the values above),\n // the following fields only in files generated 2022 and later:\n type / source of this position or null,\n geometric altitude or null,\n geometric vertical rate or null,\n indicated airspeed or null,\n roll angle or null\n ],\n [next entry like the one before],\n [next entry like the one before],\n ]\n}\n```\n\n\nExample of the response:\n```\n{\n\t\"icao\":\"a1b2c3\",\n\t\"r\":\"N11Y22\",\n\t\"t\":\"P123\",\n\t\"dbFlags\":0,\n\t\"desc\":\"Gulfstream G650\",\n\t\"ownOp\":\"SOME CORP\",\n\t\"year\":\"2021\",\n\t\"timestamp\": 1712275200.000,\n\t\"trace\":[\n\t\t[76863.35,41.279114,-70.128967,2500,118.4,326.7,5,704,{\"type\":\"adsr_icao\",\"track\":326.71,\"geom_rate\":704,\"nic\":8,\"rc\":186,\"nac_v\":0,\"alert\":0,\"spi\":0},\"adsr_icao\",null,704,null,null],\n\t\t[76870.59,41.282455,-70.131775,2600,119.0,328.0,4,384,null,\"adsr_icao\",2150,384,null,null],\n\t\t[76877.88,41.286804,-70.135376,2700,117.7,328.2,4,640,null,\"adsr_icao\",2250,640,null,null],\n\t\t[76885.92,41.290512,-70.138489,2800,118.5,328.5,4,448,null,\"adsr_icao\",2350,448,null,null],\n ...\n\t]\n}\n```", "operationId": "GetApiAircraftV2Traces", "parameters": [ { "name": "folder", "in": "path", "required": true, "description": "Last 2 characters of ICAO code.", "schema": { "type": "string" }, "x-position": 1 }, { "name": "jsonFile", "in": "path", "required": true, "description": "Name of the JSON file. Must be in the format 'trace_[recent|full]_{ICAO}.json'.", "schema": { "type": "string" }, "x-position": 2 }, { "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": "JSON response with the contents of the trace file.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TraceResponse" } } } }, "402": { "description": "Payment Required", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiUnauthorizedResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiForbiddenResponse" } } } }, "404": { "description": "Trace Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TraceNotFoundResponse" } } } }, "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": [] } ] } }, "/traces-hist/{year}/{month}/{day}/traces/{folder}/{jsonFile}": { "get": { "tags": [ "Traces" ], "summary": "Get historical trace file", "description": "Returns the trace file for the aircraft with the specified ICAO code.\n\nThe trace file contains aircraft position history before UTC today.\nFor getting the trace file for the current day, use the 'Get recent trace file' endpoint.\nFile name must begin with 'trace_full_' and end with '.json'.\nFolder name must be the last 2 characters of the aircraft ICAO code.\n\nTraces are available from January 1st, 2016 and later.\n\nExample: to request trace file for aircraft with ICAO code 'A1B2C3' for January 22, 2023:\n```\nGET /api/aircraft/v2/traces-hist/2023/01/22/traces/c3/trace_full_a1b2c3.json\n```\n\n\nThe trace file is a JSON file with the following structure:\n```\n{\n icao: \"a1b2c3\", // hex id of the aircraft\n timestamp: 1609275898.495, // unix timestamp in seconds since epoch (1970)\n trace: [\n [ seconds after timestamp,\n lat,\n lon,\n altitude in ft or \"ground\" or null,\n ground speed in knots or null,\n track in degrees or null, (if altitude == \"ground\", this will be true heading instead of track)\n flags as a bitfield: (use bitwise and to extract data)\n (flags & 1 > 0): position is stale (no position received for 20 seconds before this one)\n (flags & 2 > 0): start of a new leg (tries to detect a separation point between landing and takeoff that separates flights)\n (flags & 4 > 0): vertical rate is geometric and not barometric\n (flags & 8 > 0): altitude is geometric and not barometric\n ,\n vertical rate in fpm or null,\n aircraft object with extra details or null (see aircraft.json documentation, note that not all fields are present as lat and lon for example already in the values above),\n // the following fields only in files generated 2022 and later:\n type / source of this position or null,\n geometric altitude or null,\n geometric vertical rate or null,\n indicated airspeed or null,\n roll angle or null\n ],\n [next entry like the one before],\n [next entry like the one before],\n ]\n}\n```\n\n\nExample of the response:\n```\n{\n\t\"icao\":\"a1b2c3\",\n\t\"r\":\"N11Y22\",\n\t\"t\":\"P123\",\n\t\"dbFlags\":0,\n\t\"desc\":\"Gulfstream G650\",\n\t\"ownOp\":\"SOME CORP\",\n\t\"year\":\"2021\",\n\t\"timestamp\": 1712275200.000,\n\t\"trace\":[\n\t\t[76863.35,41.279114,-70.128967,2500,118.4,326.7,5,704,{\"type\":\"adsr_icao\",\"track\":326.71,\"geom_rate\":704,\"nic\":8,\"rc\":186,\"nac_v\":0,\"alert\":0,\"spi\":0},\"adsr_icao\",null,704,null,null],\n\t\t[76870.59,41.282455,-70.131775,2600,119.0,328.0,4,384,null,\"adsr_icao\",2150,384,null,null],\n\t\t[76877.88,41.286804,-70.135376,2700,117.7,328.2,4,640,null,\"adsr_icao\",2250,640,null,null],\n\t\t[76885.92,41.290512,-70.138489,2800,118.5,328.5,4,448,null,\"adsr_icao\",2350,448,null,null],\n ...\n\t]\n}\n```", "operationId": "GetApiAircraftV2TracesHistTraces", "parameters": [ { "name": "year", "in": "path", "required": true, "description": "Year of the trace file.", "schema": { "type": "string" }, "x-position": 1 }, { "name": "month", "in": "path", "required": true, "description": "Month of the trace file.", "schema": { "type": "string" }, "x-position": 2 }, { "name": "day", "in": "path", "required": true, "description": "Day of the trace file.", "schema": { "type": "string" }, "x-position": 3 }, { "name": "folder", "in": "path", "required": true, "description": "Last 2 characters of ICAO code.", "schema": { "type": "string" }, "x-position": 4 }, { "name": "jsonFile", "in": "path", "required": true, "description": "Name of the JSON file. Must be in the format 'trace_full_{ICAO}.json'.", "schema": { "type": "string" }, "x-position": 5 }, { "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": "JSON response with the contents of the trace file.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TraceResponse" } } } }, "402": { "description": "Payment Required", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiUnauthorizedResponse" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiForbiddenResponse" } } } }, "404": { "description": "Trace Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TraceNotFoundResponse" } } } }, "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": { "AircraftCollectionResponse": { "type": "object", "description": "Response envelope for the multiple aircraft endpoint.", "additionalProperties": false, "properties": { "ac": { "type": "array", "description": "List of aircraft with all available information.", "items": { "$ref": "#/components/schemas/AircraftSingleResponse" } }, "msg": { "type": "string", "description": "Message indicating the status of the request overall." }, "now": { "type": "integer", "description": "Unix timestamp of the current UTC time on the server (ms).", "format": "int64" }, "total": { "type": "integer", "description": "The number of aircraft in the response.", "format": "int32" }, "ctime": { "type": "integer", "description": "Unix timestamp (ms) of when the underlying data was last updated.", "format": "int64" }, "ptime": { "type": "integer", "description": "Time taken on server to process the request (ms).", "format": "int64" } } }, "AircraftSingleResponse": { "type": "object", "description": "Full aircraft model with all available information.", "additionalProperties": false, "properties": { "hex": { "type": "string", "description": "The ICAO 24-bit address (hex) of the aircraft." }, "type": { "type": "string", "description": "The type of message (e.g., adsb_icao, tisb_icao, etc.).", "nullable": true }, "flight": { "type": "string", "description": "The flight number or callsign.", "nullable": true }, "r": { "type": "string", "description": "Registration or tail number.", "nullable": true }, "t": { "type": "string", "description": "Aircraft type (e.g., B38M for Boeing 737 MAX 8).", "nullable": true }, "dbFlags": { "type": "integer", "description": "Bitfield for certain database flags, below and must be a bitwise and … check the documentation for your programming language", "nullable": true, "example": " military = dbFlags & 1;\n interesting = dbFlags & 2;\n PIA = dbFlags & 4;\n LADD = dbFlags & 8;" }, "alt_baro": { "description": "Barometric altitude in feet.", "nullable": true }, "alt_geom": { "type": "number", "description": "Geometric altitude in feet.", "format": "float", "nullable": true }, "gs": { "type": "number", "description": "Ground speed in knots.", "format": "float", "nullable": true }, "ias": { "type": "number", "description": "Indicated airspeed in knots", "format": "float", "nullable": true }, "tas": { "type": "number", "description": "True airspeed in knots.", "format": "float", "nullable": true }, "mach": { "type": "number", "description": "Mach number (speed as a fraction of the speed of sound).", "format": "float", "nullable": true }, "wd": { "type": "integer", "description": "Wind direction in degrees.", "nullable": true }, "ws": { "type": "integer", "description": "Wind speed in knots.", "nullable": true }, "oat": { "type": "integer", "description": "Outer/Static air temperature (OAT), typically somewhat inaccurate at lower altitudes.", "nullable": true }, "tat": { "type": "integer", "description": "Total air temperature (TAT), typically somewhat inaccurate at lower altitudes.", "nullable": true }, "track": { "type": "number", "description": "Aircraft track over the ground in degrees.", "format": "float", "nullable": true }, "track_rate": { "type": "number", "description": "Rate of change of the track in degrees per second.", "format": "float", "nullable": true }, "roll": { "type": "number", "description": "Aircraft roll angle in degrees.", "format": "float", "nullable": true }, "mag_heading": { "type": "number", "description": "Magnetic heading in degrees.", "format": "float", "nullable": true }, "true_heading": { "type": "number", "description": "True heading in degrees.", "format": "float", "nullable": true }, "baro_rate": { "type": "integer", "description": "Barometric vertical rate (climb or descent) in feet per minute.", "format": "int32", "nullable": true }, "geom_rate": { "type": "integer", "description": "Geometric vertical rate (climb or descent) in feet per minute.", "format": "int32", "nullable": true }, "squawk": { "type": "string", "description": "Transponder squawk code.", "nullable": true }, "emergency": { "type": "string", "description": "Emergency code (if applicable).", "nullable": true }, "category": { "type": "string", "description": "Aircraft category based on size and weight.", "nullable": true }, "nav_qnh": { "type": "number", "description": "QNH setting (altimeter pressure setting) in hPa.", "format": "float", "nullable": true }, "nav_altitude_mcp": { "type": "integer", "description": "MCP (Mode Control Panel) altitude setting in feet.", "nullable": true }, "nav_altitude_fms": { "type": "integer", "description": "Selected altitude from the Flight Management System (FMS) in feet.", "nullable": true }, "nav_heading": { "type": "number", "description": "MCP heading setting in degrees.", "format": "float", "nullable": true }, "nav_modes": { "type": "array", "description": "Navigation modes: autopilot, vnav, althold, approach, lnav, tcas", "nullable": true, "items": { "type": "string" } }, "rr_lat": { "type": "number", "description": "Rough estimated latitude based on receiver's position.", "format": "float", "nullable": true }, "rr_lon": { "type": "number", "description": "Rough estimated longitude based on receiver's position.", "format": "float", "nullable": true }, "lastPosition": { "description": "Last known position if lat/lon are older than 60 seconds.", "nullable": true, "oneOf": [ { "$ref": "#/components/schemas/LastPositionDataResponse" } ] }, "gpsOkBefore": { "type": "number", "description": "Indicator of whether GPS was working well before degradation.", "format": "double", "nullable": true }, "gpsOkLat": { "type": "number", "description": "Indicator of whether GPS was working well before degradation - latitude.", "format": "double", "nullable": true }, "gpsOkLon": { "type": "number", "description": "Indicator of whether GPS was working well before degradation - longitude.", "format": "double", "nullable": true }, "lat": { "type": "number", "description": "Latitude of the aircraft.", "format": "float", "nullable": true }, "lon": { "type": "number", "description": "Longitude of the aircraft.", "format": "float", "nullable": true }, "nic": { "type": "integer", "description": "Navigation Integrity Category.", "format": "int32", "nullable": true }, "rc": { "type": "integer", "description": "Containment Radius of Accuracy in meters.", "nullable": true }, "seen_pos": { "type": "number", "description": "Time since the last positional update in seconds.", "format": "float", "nullable": true }, "version": { "type": "integer", "description": "ADS-B version.", "format": "int32", "nullable": true }, "nic_baro": { "type": "integer", "description": "Barometric NIC (Navigation Integrity Category).", "nullable": true }, "nac_p": { "type": "integer", "description": "Navigation Accuracy Category for Position.", "nullable": true }, "nac_v": { "type": "integer", "description": "Navigation Accuracy Category for Velocity.", "nullable": true }, "sil": { "type": "integer", "description": "Source Integrity Level.", "nullable": true }, "sil_type": { "type": "string", "description": "Source Integrity Level type (e.g., per hour or per sample).", "nullable": true }, "gva": { "type": "integer", "description": "Geometric Vertical Accuracy.", "nullable": true }, "sda": { "type": "integer", "description": "System Design Assurance.", "nullable": true }, "alert": { "type": "integer", "description": "Alert status (whether the transponder is indicating an alert).", "nullable": true }, "spi": { "type": "integer", "description": "Special Position Identification (SPI) status.", "nullable": true }, "mlat": { "type": "array", "description": "List of fields derived from MLAT data (e.g., \"lat\", \"lon\", \"nic\", \"rc\").", "nullable": true, "items": { "type": "string" } }, "tisb": { "type": "array", "description": "List of fields derived from TIS-B data (e.g., \"gs\", \"lat\", \"lon\", \"nic\", \"rc\", \"nac_p\", \"sil\", \"sil_type\").", "nullable": true, "items": { "type": "string" } }, "messages": { "type": "integer", "description": "The number of messages received from the aircraft.", "format": "int64", "nullable": true }, "seen": { "type": "number", "description": "Time since the last message was received, in seconds.", "format": "float", "nullable": true }, "rssi": { "type": "number", "description": "Signal strength in dBFS.", "format": "float", "nullable": true }, "acas_ra": { "description": "ACAS Resolution Advisory data (experimental, subject to change).", "nullable": true, "oneOf": [ { "$ref": "#/components/schemas/AcasResolutionAdvisoryResponse" } ] }, "now": { "type": "integer", "description": "Unix milliseconds timestamp of the time the data was put into the cache.", "format": "int64", "nullable": true }, "geometries": { "type": "array", "description": "Contains caller-supplied collection of properties (up to 5) per matched geometry.\nProperties are propagated from each geometry object in the filter request.", "nullable": true, "items": { "type": "object", "additionalProperties": { "type": "string" } } } } }, "LastPositionDataResponse": { "type": "object", "description": "When the regular lat and lon are older than 60 seconds\nthey are no longer considered valid, this will provide\nthe last position and show the age for the last position.\nAircraft will only be in the aircraft json if a position\nhas been received in the last 60 seconds or if any message\nhas been received in the last 30 seconds.", "additionalProperties": false, "properties": { "lat": { "type": "number", "format": "float", "nullable": true }, "lon": { "type": "number", "format": "float", "nullable": true }, "nic": { "type": "integer", "description": "Navigation Integrity Category (2.2.3.2.7.2.6)", "format": "int32", "nullable": true }, "rc": { "type": "integer", "description": "Radius of Containment, meters; a measure of position integrity\nderived from NIC and supplementary bits. (2.2.3.2.7.2.6, Table 2-69)", "format": "int32", "nullable": true }, "seen_pos": { "type": "number", "description": "How long ago (in seconds before “now”) the position was last updated", "format": "double", "nullable": true } } }, "AcasResolutionAdvisoryResponse": { "type": "object", "description": "ACAS Resolution Advisory Class", "additionalProperties": false, "properties": { "utc": { "type": "string", "description": "UTC timestamp of the advisory.", "nullable": true }, "unix_timestamp": { "type": "number", "description": "Unix timestamp.", "format": "double", "nullable": true }, "bytes": { "type": "string", "description": "Advisory bytes as a string.", "nullable": true }, "ARA": { "type": "string", "description": "Advisory ARA field.", "nullable": true }, "RAT": { "type": "string", "description": "Advisory RAT field.", "nullable": true }, "MTE": { "type": "string", "description": "Advisory MTE field.", "nullable": true }, "RAC": { "type": "string", "description": "Advisory RAC field.", "nullable": true }, "advisory_complement": { "type": "string", "description": "Advisory complement description.", "nullable": true }, "advisory": { "type": "string", "description": "Advisory description.", "nullable": true }, "TTI": { "type": "string", "description": "TTI field.", "nullable": true }, "threat_id_hex": { "type": "string", "description": "Threat ID in hexadecimal.", "nullable": true } } }, "ApiUnauthorizedResponse": { "type": "object", "additionalProperties": false, "properties": { "msg": { "type": "string" }, "reason": { "type": "string", "nullable": true } } }, "ApiForbiddenResponse": { "type": "object", "additionalProperties": false, "properties": { "msg": { "type": "string" }, "reason": { "type": "string", "nullable": true } } }, "ApiTooManyRequestsResponse": { "type": "object", "additionalProperties": false, "properties": { "message": { "type": "string" } } }, "ProblemDetails": { "type": "object", "additionalProperties": { "nullable": true }, "properties": { "type": { "type": "string", "nullable": true }, "title": { "type": "string", "nullable": true }, "status": { "type": "integer", "format": "int32", "nullable": true }, "detail": { "type": "string", "nullable": true }, "instance": { "type": "string", "nullable": true } } }, "FilterRequest": { "type": "object", "description": "Model describing filter criteria for live aircraft data.", "additionalProperties": false, "properties": { "logical_operator": { "type": "string", "description": "Specifies the logical operator to use when combining filters." }, "filters": { "type": "array", "description": "Specifies the filters to apply to the aircraft data.", "items": { "$ref": "#/components/schemas/FilterDefinition" } } } }, "FilterDefinition": { "type": "object", "additionalProperties": false, "properties": { "property": { "type": "string", "description": "Name of the property to filter on. Case-insensitive.\nOnly top-level properties are supported at the moment." }, "operator": { "type": "string", "description": "Operator to use when comparing the property value. All string comparisons are case-insensitive.\nSupported operators are:\n- \"eq\" (equals)\n- \"ne\" (not equals)\n- \"gt\" (greater than)\n- \"lt\" (less than)\n- \"ge\" (greater than or equal to)\n- \"le\" (less than or equal to)\n- \"isNull\" (property value is null)\n- \"isNotNull\" (property is not null)\n- \"contains\" (property value contains the specified value)\n- \"notContains\" (property value does not contain the specified value)\n- \"startsWith\" (property value starts with the specified value)\n- \"notStartsWith\" (property value does not start with the specified value)\n- \"endsWith\" (property value ends with the specified value)\n- \"notEndsWith\" (property value does not end with the specified value)" }, "value": { "description": "Value to compare the property against.\nThis can be a string, number, boolean and must match target property type.\n- If number - it will be parsed as double (scientific notation is not supported).\n- If string - maximum length is 255 characters.\n- If boolean - it will be parsed as boolean.\n \nValue is not required for operators \"isNull\" and \"isNotNull\".", "nullable": true } } }, "RequestedUrlTooLongResponse": { "type": "object", "description": "Requested URL is too long.", "additionalProperties": false, "properties": { "msg": { "type": "string" } } }, "AircraftRequest": { "type": "object", "description": "Model for querying api for multiple aircraft hexes", "additionalProperties": false, "properties": { "hex_list": { "type": "array", "items": { "type": "string" } } } }, "RegistrationRequest": { "type": "object", "description": "Model for querying api for multiple aircraft by registration numbers", "additionalProperties": false, "properties": { "registrations": { "type": "array", "items": { "type": "string" } } } }, "ProximityRequest": { "type": "object", "description": "Model for querying api for multiple aircraft by proximity", "additionalProperties": false, "properties": { "filters": { "type": "array", "items": { "$ref": "#/components/schemas/ProximityPointFilter" } } } }, "ProximityPointFilter": { "type": "object", "description": "Describes a point in proximity to which aircraft should be queried", "additionalProperties": false, "properties": { "latitude": { "type": "number", "description": "Latitude of the coordinate", "format": "double" }, "longitude": { "type": "number", "description": "Longitude of the coordinate", "format": "double" }, "radius": { "type": "number", "description": "Radius in Nautical Miles from the coordinate specified via Latitude and Longitude", "format": "double" }, "altitude_min": { "type": "integer", "description": "Altitude in feet to filter aircraft by (lower boundary)", "format": "int32", "nullable": true }, "altitude_max": { "type": "integer", "description": "Altitude in feet to filter aircraft by (upper boundary)", "format": "int32", "nullable": true } } }, "AircraftCollectionMinimalResponse": { "type": "object", "description": "Response envelope for the multiple aircraft endpoint.", "additionalProperties": false, "properties": { "ac": { "type": "array", "description": "List of aircraft with all available information.", "items": { "$ref": "#/components/schemas/AircraftSingleMinimalResponse" } }, "msg": { "type": "string", "description": "Message indicating the status of the request overall." }, "now": { "type": "integer", "description": "Unix timestamp of the current UTC time on the server (ms).", "format": "int64" }, "total": { "type": "integer", "description": "The number of aircraft in the response.", "format": "int32" }, "ctime": { "type": "integer", "description": "Unix timestamp (ms) of when the underlying data was last updated.", "format": "int64" }, "ptime": { "type": "integer", "description": "Time taken on server to process the request (ms).", "format": "int64" } } }, "AircraftSingleMinimalResponse": { "type": "object", "description": "Contains the minimal information about an aircraft.", "additionalProperties": false, "properties": { "hex": { "type": "string", "description": "The ICAO 24-bit address (hex) of the aircraft." }, "type": { "type": "string", "description": "The type of message (e.g., adsb_icao, tisb_icao, etc.).", "nullable": true }, "flight": { "type": "string", "description": "The flight number or callsign.", "nullable": true }, "r": { "type": "string", "description": "Registration or tail number.", "nullable": true }, "t": { "type": "string", "description": "Aircraft type (e.g., B38M for Boeing 737 MAX 8).", "nullable": true }, "alt_baro": { "description": "Barometric altitude in feet.", "nullable": true }, "alt_geom": { "type": "number", "description": "Geometric altitude in feet.", "format": "float", "nullable": true }, "gs": { "type": "number", "description": "Ground speed in knots.", "format": "float", "nullable": true }, "ias": { "type": "number", "description": "Indicated airspeed in knots", "format": "float", "nullable": true }, "tas": { "type": "number", "description": "True airspeed in knots.", "format": "float", "nullable": true }, "mach": { "type": "number", "description": "Mach number (speed as a fraction of the speed of sound).", "format": "float", "nullable": true }, "wd": { "type": "integer", "description": "Wind direction in degrees.", "nullable": true }, "ws": { "type": "integer", "description": "Wind speed in knots.", "nullable": true }, "oat": { "type": "integer", "description": "Outer/Static air temperature (OAT), typically somewhat inaccurate at lower altitudes.", "nullable": true }, "tat": { "type": "integer", "description": "Total air temperature (TAT), typically somewhat inaccurate at lower altitudes.", "nullable": true }, "track": { "type": "number", "description": "Aircraft track over the ground in degrees.", "format": "float", "nullable": true }, "track_rate": { "type": "number", "description": "Rate of change of the track in degrees per second.", "format": "float", "nullable": true }, "roll": { "type": "number", "description": "Aircraft roll angle in degrees.", "format": "float", "nullable": true }, "mag_heading": { "type": "number", "description": "Magnetic heading in degrees.", "format": "float", "nullable": true }, "true_heading": { "type": "number", "description": "True heading in degrees.", "format": "float", "nullable": true }, "baro_rate": { "type": "integer", "description": "Barometric vertical rate (climb or descent) in feet per minute.", "format": "int32", "nullable": true }, "geom_rate": { "type": "integer", "description": "Geometric vertical rate (climb or descent) in feet per minute.", "format": "int32", "nullable": true }, "squawk": { "type": "string", "description": "Transponder squawk code.", "nullable": true }, "category": { "type": "string", "description": "Aircraft category based on size and weight.", "nullable": true }, "nav_qnh": { "type": "number", "description": "QNH setting (altimeter pressure setting) in hPa.", "format": "float", "nullable": true }, "nav_altitude_mcp": { "type": "integer", "description": "MCP (Mode Control Panel) altitude setting in feet.", "nullable": true }, "nav_altitude_fms": { "type": "integer", "description": "Selected altitude from the Flight Management System (FMS) in feet.", "nullable": true }, "nav_heading": { "type": "number", "description": "MCP heading setting in degrees.", "format": "float", "nullable": true }, "nav_modes": { "type": "array", "description": "Navigation modes: autopilot, vnav, althold, approach, lnav, tcas", "nullable": true, "items": { "type": "string" } }, "lat": { "type": "number", "description": "Latitude of the aircraft.", "format": "float", "nullable": true }, "lon": { "type": "number", "description": "Longitude of the aircraft.", "format": "float", "nullable": true }, "seen_pos": { "type": "number", "description": "Time since the last positional update in seconds.", "format": "float", "nullable": true }, "seen": { "type": "number", "description": "Time since the last message was received, in seconds.", "format": "float", "nullable": true } } }, "AirportRequest": { "type": "object", "description": "Model representing a request for obtaining aircraft in proximity to an airport(s)", "additionalProperties": false, "properties": { "airports": { "type": "array", "items": { "type": "string" } } } }, "BadRequest": { "type": "object", "additionalProperties": false, "properties": { "statusCode": { "type": "integer", "format": "int32" } } }, "FeatureCollectionRequest": { "type": "object", "description": "Mimics the request model for the feature collection endpoint (GeoJSON)", "additionalProperties": false, "properties": { "type": { "type": "string", "description": "Type of the GeoJSON object. Should be \"FeatureCollection\"" }, "features": { "type": "array", "description": "Collection of features describing the geometries", "items": { "$ref": "#/components/schemas/FeatureRequest" } } } }, "FeatureRequest": { "type": "object", "description": "Describes single feature in the GeoJSON feature collection", "additionalProperties": false, "properties": { "type": { "type": "string", "description": "Type of the GeoJSON object. Should be \"Feature\"" }, "properties": { "type": "object", "description": "Collection of properties associated with the geometry.\nProperties with will propagated to each aircraft object in \"properties\" field.\n\n**IMPORTANT**: Only 5 properties supported. Each key and value must not exceed 128 characters.", "additionalProperties": { "type": "string" } }, "geometry": { "description": "Geometry of the feature. Must be a Polygon or MultiPolygon.", "oneOf": [ { "$ref": "#/components/schemas/FeatureGeometryRequest" } ] } } }, "FeatureGeometryRequest": { "type": "object", "description": "Describes the geometry of the feature in the GeoJSON feature collection", "additionalProperties": false, "properties": { "type": { "type": "string", "description": "Type of the GeoJSON object. Should be \"Polygon\" or \"MultiPolygon\"" }, "coordinates": { "type": "array", "description": "Coordinates of the polygon or multipolygon geometry in GeoJSON format.", "items": { "type": "array", "items": { "type": "array", "items": { "type": "number", "format": "double" } } } } } }, "GeoboundaryCountrySubdivisionsResponse": { "type": "object", "description": "Response from the geoboundary endpoint containing country subdivisions.", "additionalProperties": false, "properties": { "country": { "type": "string", "description": "ISO 3166-1 alpha-2 country code." }, "subdivisions": { "type": "array", "description": "List of subdivisions for the country available in the API.", "items": { "$ref": "#/components/schemas/GeoboundaryCountrySubdivision" } } } }, "GeoboundaryCountrySubdivision": { "type": "object", "description": "Represents the response from the geoboundary endpoint.", "additionalProperties": false, "properties": { "name": { "type": "string", "description": "Name of the country subdivision.\nExample: California" }, "iso_a2": { "type": "string", "description": "ISO 3166-1 alpha-2 country code.\nExample: US" }, "iso_3166_2": { "type": "string", "description": "ISO 3166-2 country subdivision code.\nExample: US-CA (for California)" }, "adm1_code": { "type": "string", "description": "ADM1 code.\nExample: USA-3521", "nullable": true }, "name_alt": { "type": "string", "description": "Alternative name of the country subdivision.\nExample: CA|Calif.|Cal.", "nullable": true }, "region": { "type": "string", "description": "Name of the region.\nExample: West", "nullable": true } } }, "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" } } }, "OperationsResponseItem": { "type": "object", "additionalProperties": false, "properties": { "icao": { "type": "string" }, "registration": { "type": "string", "nullable": true }, "flight": { "type": "string", "nullable": true }, "ac_type": { "type": "string", "nullable": true }, "time": { "type": "string", "nullable": true }, "time_epoch": { "type": "integer", "format": "int64" }, "airport": { "type": "string", "nullable": true }, "runway": { "type": "string", "nullable": true }, "operation": { "type": "string", "nullable": true }, "flight_link": { "type": "string", "nullable": true }, "gs": { "type": "string", "nullable": true }, "squawk": { "type": "string", "nullable": true }, "signal_type": { "type": "string", "nullable": true }, "alt_baro": { "type": "integer", "format": "int32", "nullable": true }, "track": { "type": "string", "nullable": true }, "lat": { "type": "number", "format": "float", "nullable": true }, "lon": { "type": "number", "format": "float", "nullable": true }, "alt_geom": { "type": "integer", "format": "int32", "nullable": true }, "rate": { "type": "integer", "format": "int32", "nullable": true }, "category": { "type": "string", "nullable": true }, "reg": { "type": "string", "nullable": true }, "icaotype": { "type": "string", "nullable": true }, "year": { "type": "string", "nullable": true }, "manufacturer": { "type": "string", "nullable": true }, "model": { "type": "string", "nullable": true }, "ownop": { "type": "string", "nullable": true }, "faa_pia": { "type": "boolean", "nullable": true }, "faa_ladd": { "type": "boolean", "nullable": true }, "short_type": { "type": "string", "nullable": true }, "mil": { "type": "boolean", "nullable": true }, "apt_type": { "type": "string", "nullable": true }, "name": { "type": "string", "nullable": true }, "continent": { "type": "string", "nullable": true }, "iso_country": { "type": "string", "nullable": true }, "iso_region": { "type": "string", "nullable": true }, "municipality": { "type": "string", "nullable": true }, "scheduled_service": { "type": "string", "nullable": true }, "iata_code": { "type": "string", "nullable": true }, "wgs84_elev": { "type": "integer", "format": "int32", "nullable": true } } }, "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" } } } }, "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" } } } }, "TraceResponse": { "type": "object", "description": "Model used to represent a trace response example.", "additionalProperties": false, "properties": { "icao": { "type": "string" }, "timestamp": { "type": "number", "format": "double" }, "trace": { "type": "array", "items": { "type": "array", "items": {} } } } }, "TraceNotFoundResponse": { "type": "object", "additionalProperties": false, "properties": { "msg": { "type": "string", "description": "Message indicating the status of the request overall." }, "details": { "type": "string", "description": "Message clarifying the unsuccessful response.", "nullable": true }, "status": { "type": "integer", "description": "Status code indicating the status of the request overall.", "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" } } } }, "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" } } }, "tags": [ { "name": "Live Positional Data", "description": "Endpoints provide access to airborne or recently landed aircraft, as well as last known positions.\nUse these endpoints to get information about aircraft, such as location, flight, altitude, speed, and many more.\n

\nComprehensive filtering by various parameters is supported - such as ICAO hex code, registration, squawk, etc.\nSee documentation to learn more about available endpoints and their parameters.\n

\nFor more information about properties returned, please navigate to Version 2 API Fields documentation." }, { "name": "Geospatial Filtering", "description": "Endpoints allow filtering live data based on geospatial boundaries, such as latitude, longitude, altitudes, or even custom GeoJSON shapes.\nUse these endpoints to get information about aircraft within a specific radius from a given point, within a polygon, or within a custom shape.\n

\nNote: When using GeoJSON shape files, only Polygon and MultiPolygon shapes are supported. Any other shapes will be ignored." }, { "name": "Geopolitical Filtering", "description": "Allows filtering live data based on geopolitical boundaries, such as states/provinces, countries, regions, or even continents.\nAll endpoints support ISO 3166-1 alpha-2 country codes and ISO 3166-2 subdivision (states/provinces) codes.\n

\nWorld boundaries are based on OpenDataSoft dataset.\nAttribution:
\nThis API includes data from Marine Regions, licensed under\nCreative Commons Attribution 4.0 International (CC BY 4.0).
\nFlanders Marine Institute (2023). Maritime Boundaries Geodatabase, version 12. DOI: 10.14284/632" }, { "name": "Traces", "description": "Endpoints provide access to historical trace files for an aircraft." }, { "name": "Operations", "description": "Endpoints provide access to Takeoffs/Landings operational events." } ] }