ADS-B Exchange Operations API
Endpoints provide access to Takeoffs/Landings operational events.
Endpoints provide access to Takeoffs/Landings operational events.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/adsbexchange-operations-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: ADSB Exchange Geopolitical Filtering Operations API
description: "The ADSB Exchange API provides real-time access to live global flight data,\nenabling retrieval of detailed information on aircraft positions, flight events, historical trace files,\nand many more aviation metrics. <br /><br />\nKnown for its accurate data, ADSB Exchange API is ideal\nfor aviation tracking applications, research, and analytics, offering extensive coverage powered by a\nglobal network of ADS-B and MLAT receivers. <br /><br />\nThis documentation is available in <a href=\"/api/aircraft/v2/docs\">ReDoc</a> and <a href=\"/api/aircraft/v2/docs/swagger\">Swagger</a> formats.\n<p>\n<b>Important developer notes:</b><br />\n<ul>\n <li>When designing API client, please ensure that all requests include the 'Accept-Encoding' header with 'gzip' value.</li>\n <li>When property values are not available, they will be omitted from the response object overall.</li>\n <li>When parsing JSON response do not hard-code the order of properties. Use property names to access values.</li>\n <li>We will never remove or rename properties. However, we may add new properties. Please ensure your code is resilient to new additive properties on the response objects.</li>\n</ul>\n</p>"
termsOfService: https://www.adsbexchange.com/terms-of-use/
contact:
name: Contact ADSB Exchange
url: https://www.adsbexchange.com/products/enterprise-api/
version: v2
x-logo:
url: https://adsbexchange.com/wp-content/uploads/ax_logo_background_api-scaled.avif
href: '#'
servers:
- url: https://gateway.adsbexchange.com/api/aircraft/v2
tags:
- name: Operations
description: Endpoints provide access to Takeoffs/Landings operational events.
paths:
/operations/icaos:
post:
tags:
- Operations
summary: Get operations by multiple aircraft ICAO codes
description: 'Returns operations (Takeoffs and Landings) for the given ICAO codes. Response is paginated and sorted by time (descending). Returns 1000 items per page.
Max number of ICAOs per request is 500 (enforced by model validation), further constrained by FleetLimit entitlement.'
operationId: PostApiAircraftV2OperationsIcaos
parameters:
- name: page
x-originalName: pageNumber
in: query
schema:
type:
- integer
- 'null'
format: int32
x-position: 2
- name: time_from
x-originalName: unixTimestampFrom
in: query
schema:
type:
- integer
- 'null'
format: int64
x-position: 3
- name: time_to
x-originalName: unixTimestampTo
in: query
schema:
type:
- integer
- 'null'
format: int64
x-position: 4
- type: string
name: Accept-Encoding
in: header
required: true
description: The encoding type the client will accept in the response. API call must use compression.
default: gzip
example: gzip
requestBody:
x-name: request
content:
application/json:
schema:
$ref: '#/components/schemas/OperationsIcaosRequest'
required: true
x-position: 1
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/OperationsResponse'
'400':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
'402':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ApiUnauthorizedResponse'
'403':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ApiForbiddenResponse'
'429':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ApiTooManyRequestsResponse'
'500':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
security:
- X-Api-Key: []
/operations/icao/{icao}:
get:
tags:
- Operations
summary: Get operations by aircraft
description: 'Returns operations (Takeoffs and Landings) for the given ICAO code (hex code) of the aircraft.
Response is paginated and sorted by time (descending). Returns 20 items per page.
```
GET /api/aircraft/v2/operations/icao/A1B2C3
```'
operationId: GetApiAircraftV2OperationsIcao
parameters:
- name: icao
in: path
required: true
description: ICAO code of the aircraft.
schema:
type: string
x-position: 1
- name: page
x-originalName: pageNumber
in: query
description: Page number to return. When not specified, defaults to 1.
schema:
type:
- integer
- 'null'
format: int32
x-position: 2
- name: time_from
x-originalName: unixTimestampFrom
in: query
description: Unix timestamp from which to start the search. When not specified, defaults to 24 hours ago. Value in seconds.
schema:
type:
- integer
- 'null'
format: int64
x-position: 3
- name: time_to
x-originalName: unixTimestampTo
in: query
description: Unix timestamp to which to end the search. When not specified, defaults to current time. Value in seconds.
schema:
type:
- integer
- 'null'
format: int64
x-position: 4
- type: string
name: Accept-Encoding
in: header
required: true
description: The encoding type the client will accept in the response. API call must use compression.
default: gzip
example: gzip
responses:
'200':
description: 'Response containing a collection of operational events: takeoffs and landings.'
content:
application/json:
schema:
$ref: '#/components/schemas/OperationsResponse'
'402':
description: Payment Required
content:
application/json:
schema:
$ref: '#/components/schemas/ApiUnauthorizedResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ApiForbiddenResponse'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/ApiTooManyRequestsResponse'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
security:
- X-Api-Key: []
/operations/airports:
post:
tags:
- Operations
summary: Get operations by multiple airports
description: "Returns operations (Takeoffs and Landings) for the given ICAO codes of the airports. Response is paginated and sorted by time (descending). Returns 1000 items per page.\nMax number of airports per request is 500 (hard limit), further constrained by AirportLimit entitlement.\n\n**Example**: get operations for three main California airports (Los Angeles, San Francisco, San Diego):\n```\nPOST /api/aircraft/v2/operations/airports\n \n{\n \"airports\": [\"KLAX\", \"KSFO\", \"KSAN\"]\n}\n```"
operationId: PostApiAircraftV2OperationsAirports
parameters:
- name: page
x-originalName: pageNumber
in: query
schema:
type:
- integer
- 'null'
format: int32
x-position: 2
- name: time_from
x-originalName: unixTimestampFrom
in: query
schema:
type:
- integer
- 'null'
format: int64
x-position: 3
- name: time_to
x-originalName: unixTimestampTo
in: query
schema:
type:
- integer
- 'null'
format: int64
x-position: 4
- type: string
name: Accept-Encoding
in: header
required: true
description: The encoding type the client will accept in the response. API call must use compression.
default: gzip
example: gzip
requestBody:
x-name: request
content:
application/json:
schema:
$ref: '#/components/schemas/OperationsAirportRequest'
required: true
x-position: 1
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/OperationsResponse'
'400':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequest'
'402':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ApiUnauthorizedResponse'
'403':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ApiForbiddenResponse'
'429':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ApiTooManyRequestsResponse'
'500':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
security:
- X-Api-Key: []
/operations/airport/{airport}:
get:
tags:
- Operations
summary: Get operations by airport
description: 'Returns operations (Takeoffs and Landings) for the given ICAO code of the airport. Response is paginated and sorted by time (descending). Returns 20 items per page.
Get operations for San Francisco airport for the last 24 hours:
```
GET /api/aircraft/v2/operations/airport/KSFO
```
Use https://www.world-airport-codes.com/ to find ICAO codes for airports.'
operationId: GetApiAircraftV2OperationsAirport
parameters:
- name: airport
in: path
required: true
description: ICAO code of the airport.
schema:
type: string
x-position: 1
- name: page
x-originalName: pageNumber
in: query
description: Page number to return. When not specified, defaults to 1.
schema:
type:
- integer
- 'null'
format: int32
x-position: 2
- name: time_from
x-originalName: unixTimestampFrom
in: query
description: Unix timestamp from which to start the search. When not specified, defaults to 24 hours ago. Value in seconds.
schema:
type:
- integer
- 'null'
format: int64
x-position: 3
- name: time_to
x-originalName: unixTimestampTo
in: query
description: Unix timestamp to which to end the search. When not specified, defaults to current time. Value in seconds.
schema:
type:
- integer
- 'null'
format: int64
x-position: 4
- type: string
name: Accept-Encoding
in: header
required: true
description: The encoding type the client will accept in the response. API call must use compression.
default: gzip
example: gzip
responses:
'200':
description: 'Response containing a collection of operational events: takeoffs and landings.'
content:
application/json:
schema:
$ref: '#/components/schemas/OperationsResponse'
'402':
description: Payment Required
content:
application/json:
schema:
$ref: '#/components/schemas/ApiUnauthorizedResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ApiForbiddenResponse'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/ApiTooManyRequestsResponse'
'500':
description: Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
security:
- X-Api-Key: []
components:
schemas:
OperationsResponseItem:
type: object
additionalProperties: false
properties:
icao:
type: string
registration:
type:
- string
- 'null'
flight:
type:
- string
- 'null'
ac_type:
type:
- string
- 'null'
time:
type:
- string
- 'null'
time_epoch:
type: integer
format: int64
airport:
type:
- string
- 'null'
runway:
type:
- string
- 'null'
operation:
type:
- string
- 'null'
flight_link:
type:
- string
- 'null'
gs:
type:
- string
- 'null'
squawk:
type:
- string
- 'null'
signal_type:
type:
- string
- 'null'
alt_baro:
type:
- integer
- 'null'
format: int32
track:
type:
- string
- 'null'
lat:
type:
- number
- 'null'
format: float
lon:
type:
- number
- 'null'
format: float
alt_geom:
type:
- integer
- 'null'
format: int32
rate:
type:
- integer
- 'null'
format: int32
category:
type:
- string
- 'null'
reg:
type:
- string
- 'null'
icaotype:
type:
- string
- 'null'
year:
type:
- string
- 'null'
manufacturer:
type:
- string
- 'null'
model:
type:
- string
- 'null'
ownop:
type:
- string
- 'null'
faa_pia:
type:
- boolean
- 'null'
faa_ladd:
type:
- boolean
- 'null'
short_type:
type:
- string
- 'null'
mil:
type:
- boolean
- 'null'
apt_type:
type:
- string
- 'null'
name:
type:
- string
- 'null'
continent:
type:
- string
- 'null'
iso_country:
type:
- string
- 'null'
iso_region:
type:
- string
- 'null'
municipality:
type:
- string
- 'null'
scheduled_service:
type:
- string
- 'null'
iata_code:
type:
- string
- 'null'
wgs84_elev:
type:
- integer
- 'null'
format: int32
OperationsAirportRequest:
type: object
description: Model representing a request for obtaining operations (takeoffs/landings) for one or more airports.
additionalProperties: false
properties:
airports:
type: array
maxItems: 500
minItems: 1
items:
type: string
ApiUnauthorizedResponse:
type: object
additionalProperties: false
properties:
msg:
type: string
reason:
type:
- string
- 'null'
BadRequest:
type: object
additionalProperties: false
properties:
statusCode:
type: integer
format: int32
ApiForbiddenResponse:
type: object
additionalProperties: false
properties:
msg:
type: string
reason:
type:
- string
- 'null'
ApiTooManyRequestsResponse:
type: object
additionalProperties: false
properties:
message:
type: string
OperationsResponse:
type: object
description: Response envelope for the response containing multiple operations objects.
additionalProperties: false
properties:
items:
type: array
description: List of operations objects
items:
$ref: '#/components/schemas/OperationsResponseItem'
msg:
type: string
description: Message indicating the status of the request overall.
totalItems:
type: integer
description: The total number of operations in the database for the given query.
format: int32
totalPages:
type: integer
description: Total number of pages that client can iterate through.
format: int32
pageNumber:
type: integer
description: Current page number.
format: int32
ctime:
type: integer
description: Unix timestamp of when the underlying data was last updated.
format: int64
now:
type: integer
description: Unix timestamp of the current UTC time on the server.
format: int64
ptime:
type: integer
description: Time taken on API server to process the request, in milliseconds.
format: int64
OperationsIcaosRequest:
type: object
description: Model representing a request for obtaining operations (takeoffs/landings) for one or more aircraft ICAO codes.
additionalProperties: false
properties:
icaos:
type: array
maxItems: 500
minItems: 1
items:
type: string
ProblemDetails:
type: object
additionalProperties: {}
properties:
type:
type:
- string
- 'null'
title:
type:
- string
- 'null'
status:
type:
- integer
- 'null'
format: int32
detail:
type:
- string
- 'null'
instance:
type:
- string
- 'null'
securitySchemes:
X-Api-Key:
type: apiKey
description: Provide your API key via x-api-key header to access the API.
name: x-api-key
in: header
x-generator: NSwag v14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))