openapi: 3.0.0
info:
title: ADSB Exchange Geopolitical Filtering Operations API
description: "The ADSB Exchange API provides real-time access to live global flight data,\nenabling retrieval of detailed information on aircraft positions, flight events, historical trace files,\nand many more aviation metrics.
\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 - When designing API client, please ensure that all requests include the 'Accept-Encoding' header with 'gzip' value.
\n - When property values are not available, they will be omitted from the response object overall.
\n - When parsing JSON response do not hard-code the order of properties. Use property names to access values.
\n - We will never remove or rename properties. However, we may add new properties. Please ensure your code is resilient to new additive properties on the response objects.
\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
tags:
- name: Operations
description: Endpoints provide access to Takeoffs/Landings operational events.
paths:
/operations/icaos:
post:
tags:
- Operations
summary: Get operations by multiple aircraft ICAO codes
description: 'Returns operations (Takeoffs and Landings) for the given ICAO codes. Response is paginated and sorted by time (descending). Returns 1000 items per page.
Max number of ICAOs per request is 500 (enforced by model validation), further constrained by FleetLimit entitlement.'
operationId: PostApiAircraftV2OperationsIcaos
parameters:
- name: page
x-originalName: pageNumber
in: query
schema:
type: integer
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.
Response is paginated and sorted by time (descending). Returns 20 items per page.
```
GET /api/aircraft/v2/operations/icao/A1B2C3
```'
operationId: GetApiAircraftV2OperationsIcao
parameters:
- name: icao
in: path
required: true
description: ICAO code of the aircraft.
schema:
type: string
x-position: 1
- name: page
x-originalName: pageNumber
in: query
description: Page number to return. When not specified, defaults to 1.
schema:
type: integer
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.
Get operations for San Francisco airport for the last 24 hours:
```
GET /api/aircraft/v2/operations/airport/KSFO
```
Use https://www.world-airport-codes.com/ to find ICAO codes for airports.'
operationId: GetApiAircraftV2OperationsAirport
parameters:
- name: airport
in: path
required: true
description: ICAO code of the airport.
schema:
type: string
x-position: 1
- name: page
x-originalName: pageNumber
in: query
description: Page number to return. When not specified, defaults to 1.
schema:
type: integer
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: []
components:
schemas:
BadRequest:
type: object
additionalProperties: false
properties:
statusCode:
type: integer
format: int32
ApiTooManyRequestsResponse:
type: object
additionalProperties: false
properties:
message:
type: string
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
ApiUnauthorizedResponse:
type: object
additionalProperties: false
properties:
msg:
type: string
reason:
type: string
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
ApiForbiddenResponse:
type: object
additionalProperties: false
properties:
msg:
type: string
reason:
type: string
nullable: true
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
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
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
securitySchemes:
X-Api-Key:
type: apiKey
description: Provide your API key via x-api-key header to access the API.
name: x-api-key
in: header
x-generator: NSwag v14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))