ADS-B Exchange Geospatial Filtering API

Endpoints allow filtering live data based on geospatial boundaries, such as latitude, longitude, altitudes, or even custom GeoJSON shapes. Use these endpoints to get information about aircraft within a specific radius from a given point, within a polygon, or within a custom shape. Note: When using GeoJSON shape files, only Polygon and MultiPolygon shapes are supported. Any other shapes will be ignored.

Operations 7

GET /lat/{lat}/lon/{lon}/dist/{dist} Get aircraft in radius #
POST /proximity/radius Get aircraft in radius #
GET /minimal/lat/{lat}/lon/{lon}/dist/{dist} Get aircraft in radius (minimal) #
GET /nohex/dist/{dist}/above/{alt}/lat/{lat}/lon/{lon} Get aircraft in radius (above altitude) #
GET /airport/{airport} Get aircraft near the airport #
POST /airport Get aircraft near airports #
POST /geospatial/boundary Get aircraft within boundary #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/adsbexchange-geospatial-filtering-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

adsbexchange-geospatial-filtering-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ADSB Exchange Geopolitical Filtering Geospatial Filtering 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: Geospatial Filtering
  description: 'Endpoints allow filtering live data based on geospatial boundaries, such as latitude, longitude, altitudes, or even custom GeoJSON shapes.

    Use these endpoints to get information about aircraft within a specific radius from a given point, within a polygon, or within a custom shape.

    <br /><br />

    <b>Note</b>: When using GeoJSON shape files, only Polygon and MultiPolygon shapes are supported. Any other shapes will be ignored.'
paths:
  /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.


        Get aircraft within 50 nautical miles of San Francisco:

        ```

        GET /api/aircraft/v2/lat/37.7749/lon/-122.4194/dist/50

        ```'
      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).


        Get aircraft within 50 nautical miles of San Francisco, above 5000 feet (sea level):

        ```

        GET /nohex/dist/50/above/5000/lat/37.7749/lon/-122.4194

        ```'
      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.


        Get aircraft within 5 nautical miles of San Francisco airport:

        ```

        GET /api/aircraft/v2/airport/KSFO

        ```

        Use 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: []
components:
  schemas:
    AcasResolutionAdvisoryResponse:
      type: object
      description: ACAS Resolution Advisory Class
      additionalProperties: false
      properties:
        utc:
          type:
          - string
          - 'null'
          description: UTC timestamp of the advisory.
        unix_timestamp:
          type:
          - number
          - 'null'
          description: Unix timestamp.
          format: double
        bytes:
          type:
          - string
          - 'null'
          description: Advisory bytes as a string.
        ARA:
          type:
          - string
          - 'null'
          description: Advisory ARA field.
        RAT:
          type:
          - string
          - 'null'
          description: Advisory RAT field.
        MTE:
          type:
          - string
          - 'null'
          description: Advisory MTE field.
        RAC:
          type:
          - string
          - 'null'
          description: Advisory RAC field.
        advisory_complement:
          type:
          - string
          - 'null'
          description: Advisory complement description.
        advisory:
          type:
          - string
          - 'null'
          description: Advisory description.
        TTI:
          type:
          - string
          - 'null'
          description: TTI field.
        threat_id_hex:
          type:
          - string
          - 'null'
          description: Threat ID in hexadecimal.
    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'
    LastPositionDataResponse:
      type: object
      description: 'When the regular lat and lon are older than 60 seconds

        they are no longer considered valid, this will provide

        the last position and show the age for the last position.

        Aircraft will only be in the aircraft json if a position

        has been received in the last 60 seconds or if any message

        has been received in the last 30 seconds.'
      additionalProperties: false
      properties:
        lat:
          type:
          - number
          - 'null'
          format: float
        lon:
          type:
          - number
          - 'null'
          format: float
        nic:
          type:
          - integer
          - 'null'
          description: Navigation Integrity Category (2.2.3.2.7.2.6)
          format: int32
        rc:
          type:
          - integer
          - 'null'
          description: 'Radius of Containment, meters; a measure of position integrity

            derived from NIC and supplementary bits. (2.2.3.2.7.2.6, Table 2-69)'
          format: int32
        seen_pos:
          type:
          - number
          - 'null'
          description: How long ago (in seconds before “now”) the position was last updated
          format: double
    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
          - 'null'
          description: The type of message (e.g., adsb_icao, tisb_icao, etc.).
        flight:
          type:
          - string
          - 'null'
          description: The flight number or callsign.
        r:
          type:
          - string
          - 'null'
          description: Registration or tail number.
        t:
          type:
          - string
          - 'null'
          description: Aircraft type (e.g., B38M for Boeing 737 MAX 8).
        alt_baro:
          description: Barometric altitude in feet.
        alt_geom:
          type:
          - number
          - 'null'
          description: Geometric altitude in feet.
          format: float
        gs:
          type:
          - number
          - 'null'
          description: Ground speed in knots.
          format: float
        ias:
          type:
          - number
          - 'null'
          description: Indicated airspeed in knots
          format: float
        tas:
          type:
          - number
          - 'null'
          description: True airspeed in knots.
          format: float
        mach:
          type:
          - number
          - 'null'
          description: Mach number (speed as a fraction of the speed of sound).
          format: float
        wd:
          type:
          - integer
          - 'null'
          description: Wind direction in degrees.
        ws:
          type:
          - integer
          - 'null'
          description: Wind speed in knots.
        oat:
          type:
          - integer
          - 'null'
          description: Outer/Static air temperature (OAT), typically somewhat inaccurate at lower altitudes.
        tat:
          type:
          - integer
          - 'null'
          description: Total air temperature (TAT), typically somewhat inaccurate at lower altitudes.
        track:
          type:
          - number
          - 'null'
          description: Aircraft track over the ground in degrees.
          format: float
        track_rate:
          type:
          - number
          - 'null'
          description: Rate of change of the track in degrees per second.
          format: float
        roll:
          type:
          - number
          - 'null'
          description: Aircraft roll angle in degrees.
          format: float
        mag_heading:
          type:
          - number
          - 'null'
          description: Magnetic heading in degrees.
          format: float
        true_heading:
          type:
          - number
          - 'null'
          description: True heading in degrees.
          format: float
        baro_rate:
          type:
          - integer
          - 'null'
          description: Barometric vertical rate (climb or descent) in feet per minute.
          format: int32
        geom_rate:
          type:
          - integer
          - 'null'
          description: Geometric vertical rate (climb or descent) in feet per minute.
          format: int32
        squawk:
          type:
          - string
          - 'null'
          description: Transponder squawk code.
        category:
          type:
          - string
          - 'null'
          description: Aircraft category based on size and weight.
        nav_qnh:
          type:
          - number
          - 'null'
          description: QNH setting (altimeter pressure setting) in hPa.
          format: float
        nav_altitude_mcp:
          type:
          - integer
          - 'null'
          description: MCP (Mode Control Panel) altitude setting in feet.
        nav_altitude_fms:
          type:
          - integer
          - 'null'
          description: Selected altitude from the Flight Management System (FMS) in feet.
        nav_heading:
          type:
          - number
          - 'null'
          description: MCP heading setting in degrees.
          format: float
        nav_modes:
          type:
          - array
          - 'null'
          description: 'Navigation modes: autopilot, vnav, althold, approach, lnav, tcas'
          items:
            type: string
        lat:
          type:
          - number
          - 'null'
          description: Latitude of the aircraft.
          format: float
        lon:
          type:
          - number
          - 'null'
          description: Longitude of the aircraft.
          format: float
        seen_pos:
          type:
          - number
          - 'null'
          description: Time since the last positional update in seconds.
          format: float
        seen:
          type:
          - number
          - 'null'
          description: Time since the last message was received, in seconds.
          format: float
    ApiUnauthorizedResponse:
      type: object
      additionalProperties: false
      properties:
        msg:
          type: string
        reason:
          type:
          - string
          - 'null'
    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
    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.

            Properties with will propagated to each aircraft object in "properties" field.


            **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'
    BadRequest:
      type: object
      additionalProperties: false
      properties:
        statusCode:
          type: integer
          format: int32
    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
          - 'null'
          description: Altitude in feet to filter aircraft by (lower boundary)
          format: int32
        altitude_max:
          type:
          - integer
          - 'null'
          description: Altitude in feet to filter aircraft by (upper boundary)
          format: int32
    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
    ProximityRequest:
      type: object
      description: Model for querying api for multiple aircraft by proximity
      additionalProperties: false
      properties:
        filters:
          type: array
          items:
            $ref: '#/components/schemas/ProximityPointFilter'
    ApiForbiddenResponse:
      type: object
      additionalProperties: false
      properties:
        msg:
          type: string
        reason:
          type:
          - string
          - 'null'
    ApiTooManyRequestsResponse:
      type: object
      additionalProperties: false
      properties:
        messa

# --- truncated at 32 KB (43 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/adsbexchange/refs/heads/main/openapi/adsbexchange-geospatial-filtering-api-openapi.yml