{
  "openapi": "3.0.4",
  "info": {
    "title": "AeroDataBox API",
    "description": "**AeroDataBox API** is an enthusiast-driven cost-effective aviation and flight data API tailored for small and medium businesses, individual developers, researchers, and students. It offers a wide range of data, including flight status, schedules, aircraft information, airport details, statistics, historical data, and more. Designed for seamless integration using REST and web hooks and available through major API marketplaces, it enables users to incorporate aviation information effortlessly into their systems at affordable rates.\n\n## Introduction\n\n### Sign Up\nSign up through one of the supported API marketplaces, each offering various pricing models to suit your specific needs.\n- [API.Market](https://apimarket.aerodatabox.com/) - the widest selection of plans, best for single-tier use\n- [RapidAPI](https://rapid.aerodatabox.com/) - most tried & tested\n\n### Pricing\nCalls to endpoints are not priced equally!\nNote the **TIER #** marking next to the name of each endpoint and review [our pricing](https://aerodatabox.com/pricing) per each tier depending on the marketplace.\n\n### Subscribe to Updates\n\nVisit our [web-site](https://aerodatabox.com) and join our newsletter to stay in the loop. \nRecent updates can be found on the [News & Updates](https://aerodatabox.com/news) page.\n\n### Reading\n* **⚠️ [Terms of Use](https://aerodatabox.com/terms) &lt;- BY SUBSCRIBING TO THE API YOU AUTOMATICALLY ACCEPT THESE TERMS**\n* **⚠️ [Pricing](https://aerodatabox.com/pricing)  &lt;- CALLS ARE NOT PRICED EQUALLY**\n* **⚠️ [Data Coverage](https://aerodatabox.com/data-coverage) &lt;- BE AWARE OF OUR LIMITATIONS**\n* [Documentation & OpenAPI Specification](https://doc.aerodatabox.com/ )\n* [FAQ](https://aerodatabox.com/faq)\n* [For Students & Researchers](https://aerodatabox.com/students)\n* [Machine Learning-Based Realistic Flight Time Calculation](https://aerodatabox.com/ml-flight-time/)\n* [Airport Delays](https://aerodatabox.com/api-airport-delays/)\n* [Runway detection](https://aerodatabox.com/flight-take-off-and-landing-time-runway-detection-based-on-ads-b-data-more-flights-and-status-updates/)\n* [FAA LADD](https://aerodatabox.com/faa-ladd)\n\n### API Supported Response Formats\n* JSON (default, `Accept: application/json`)\n* XML (`Accept: application/xml`)",
    "termsOfService": "https://aerodatabox.com/terms/",
    "contact": {
      "url": "https://aerodatabox.com/contact/"
    },
    "version": "1.15.1.0"
  },
  "servers": [
    {
      "url": "https://aerodatabox.p.rapidapi.com/",
      "description": "RapidAPI Gateway"
    }
  ],
  "paths": {
    "/aircrafts/{searchBy}/{searchParam}": {
      "get": {
        "tags": [
          "Aircraft API"
        ],
        "summary": "Single aircraft (by tail-number, Mode-S or ID) / TIER 1",
        "description": "*Returns:* Single aircraft, *best* matching specified search criteria, if found. Please note that all found aircraft will be impersonated with registration information matching the requested tail number or Mode-S even though an aircraft might be flying under a different registration right now.",
        "operationId": "GetAircraft",
        "parameters": [
          {
            "name": "searchBy",
            "in": "path",
            "description": "Criteria to search aircraft by",
            "schema": {
              "$ref": "#/components/schemas/AircraftSearchByEnum"
            }
          },
          {
            "name": "searchParam",
            "in": "path",
            "description": "Value of the search criteria. If `searchBy` is: \n* `id`: then this field should be an ID of an aircraft (as specified in the database of this API);\n* `reg`: then this field should be a tail-number of an aircraft (with or without spaces or dashes, any case formats are acceptable, e.g.PH-BXO, DeMhJ), multiple matches are possible - see below;\n* `icao24`, then this field should be a ICAO 24-bit Mode-S address of an aircraft specified in hexadecimal format (e.g. 484161, 483EFD), multiple matches are possible - see below.\n\n*If multiple matches are possible:*\n\nThere cannot be more than one aircraft actively flying with the same tail-number or ICAO 24-bit Mode-S address at any moment of time. \nHowever, historically aircraft tail-numbers or addresses may be used multiple times by different aircraft.\nThis endpoint is supposed to return a **single** aircraft data. In case if multiple aircraft satisfy the search criteria, the best match will be chosen as follows:\n* If an active aircraft is found according to the requested critera, it is returned.\n* Otherwise, an aircraft that used requested tail-number/address the most recently is returned. \n* If usage time may not be determined, the aircraft stored in the database the most recently is returned.",
            "required": true,
            "schema": {
              "maxLength": 10,
              "type": "string"
            }
          },
          {
            "name": "withImage",
            "in": "query",
            "description": "Should include aircraft image (default: false).",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "withRegistrations",
            "in": "query",
            "description": "Should include the history of aircraft registrations (default: false).",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AircraftContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/AircraftContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 1",
            "position": "before",
            "color": "#beffe6"
          }
        ]
      }
    },
    "/aircrafts/{searchBy}/{searchParam}/registrations": {
      "get": {
        "tags": [
          "Aircraft API"
        ],
        "summary": "Single aircraft registration history (by tail-number, Mode-S or ID) / TIER 1",
        "description": "*Returns:* A list of all known registrations of a single aircraft, *best* matching specified search criteria, if found",
        "operationId": "GetAircraftRegistrations",
        "parameters": [
          {
            "name": "searchBy",
            "in": "path",
            "description": "Criteria to search aircraft by",
            "schema": {
              "$ref": "#/components/schemas/AircraftSearchByEnum"
            }
          },
          {
            "name": "searchParam",
            "in": "path",
            "description": "Value of the search criteria. If `searchBy` is: \n* `id`, then this field should be an ID of an aircraft (as specified in the database of this API);\n* `reg`, then this field should be a tail-number of an aircraft (with or without spaces or dashes, any case formats are acceptable, e.g.PH-BXO, DeMhJ), multiple matches are possible - see below;\n* `icao24`, then this field should be a ICAO 24-bit Mode-S address of an aircraft specified in hexadecimal format (e.g. 484161, 483EFD), multiple matches are possible - see below.\n\n*If multiple matches are possible:* see similar remark to `Single aircraft` endpoint.",
            "required": true,
            "schema": {
              "maxLength": 10,
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AircraftRegistrationContract"
                  }
                }
              },
              "application/xml": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AircraftRegistrationContract"
                  }
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 1",
            "position": "before",
            "color": "#beffe6"
          }
        ]
      }
    },
    "/aircrafts/{searchBy}/{searchParam}/all": {
      "get": {
        "tags": [
          "Aircraft API"
        ],
        "summary": "Aircraft by tail-number, Mode-S or ID / TIER 1",
        "description": "*Returns:* A list of all aircraft ever matched the requested criteria. Please note that all found aircraft will be impersonated with registration information matching the requested tail number or Mode-S even though an aircraft might be flying under a different registration right now.",
        "operationId": "GetAllAircraft",
        "parameters": [
          {
            "name": "searchBy",
            "in": "path",
            "description": "Criteria to search aircraft by",
            "schema": {
              "$ref": "#/components/schemas/AircraftSearchByEnum"
            }
          },
          {
            "name": "searchParam",
            "in": "path",
            "description": "Value of the search criteria. If `searchBy` is: \n* `id`, then this field should be an ID of an aircraft (as specified in the database of this API);\n* `reg`, then this field should be a tail-number of an aircraft (with or without spaces or dashes, any case formats are acceptable, e.g.PH-BXO, DeMhJ);\n* `icao24`, then this field should be a ICAO 24-bit Mode-S address of an aircraft specified in hexadecimal format (e.g. 484161, 483EFD).",
            "required": true,
            "schema": {
              "maxLength": 10,
              "type": "string"
            }
          },
          {
            "name": "withImage",
            "in": "query",
            "description": "Should include aircraft image (default: false).",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "withRegistrations",
            "in": "query",
            "description": "Should include the history of aircraft registrations (default: false).",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AircraftContract"
                  }
                }
              },
              "application/xml": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AircraftContract"
                  }
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 1",
            "position": "before",
            "color": "#beffe6"
          }
        ]
      }
    },
    "/airlines/{airlineCode}/aircrafts": {
      "get": {
        "tags": [
          "Aircraft API"
        ],
        "summary": "Airline fleet / Aircraft list by airline code (BETA) / TIER 3",
        "description": "*Returns:* A paged list of aircraft in the fleet of the specified airline. \n\nThat will include *active* aircraft currently flying in an *active* airline, verfified through more than one source.\nUnconfirmed sightings of an aircraft will not qualify said aircraft to be listed in the fleet.",
        "operationId": "GetAirlineFleet",
        "parameters": [
          {
            "name": "airlineCode",
            "in": "path",
            "description": "3-character ICAO-code of the airliner (e.g., KLM, ACA); or\n2-character IATA-code of the airline (e.g., KL, AC).\n            \nPlease note that more than one active airline may have the same IATA code, therefore IATA codes are not recommended for this endpoint.",
            "required": true,
            "schema": {
              "maxLength": 3,
              "minLength": 2,
              "type": "string"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The number of returned records will be capped at this value.\nMust be a positive value and not exceed the limit stipulated by your pricing plan.",
            "required": true,
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageOffset",
            "in": "query",
            "description": "The number of records to skip before listing a page of records. In conjunction with `pageSize` effectively determines the page number (default  - 0).",
            "schema": {
              "maximum": 2147483647,
              "minimum": 0,
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "withRegistrations",
            "in": "query",
            "description": "Should include the history of aircraft registrations (default: false).",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AircraftContractPagedCollectionContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/AircraftContractPagedCollectionContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 3",
            "position": "before",
            "color": "#ffb694"
          }
        ]
      }
    },
    "/aircrafts/reg/{reg}/image/beta": {
      "get": {
        "tags": [
          "Aircraft API"
        ],
        "summary": "Aircraft image by tail-number / TIER 2",
        "description": "**What is the aircraft photo?**\n\nAircraft images are being searched in external sources by certain criteria without any manual intervention. \nTherefore, false matches may be returned. Only images with licenses approved for commercial use are returned. Please be advised that you may be required to mention author attribution before using the image.\n\n*Returns:* Image data with medium-sized direct image URL and licence approved for commercial use\nis returned.",
        "operationId": "GetAircraftImageByRegistration",
        "parameters": [
          {
            "name": "reg",
            "in": "path",
            "description": "Tail-number of the aircraft (full, stripped and any case formats are acceptable).",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 2",
            "position": "before",
            "color": "#aab6f8"
          }
        ]
      }
    },
    "/aircrafts/search/term": {
      "get": {
        "tags": [
          "Aircraft API"
        ],
        "summary": "Search active aircraft tail numbers by term / TIER 2",
        "description": "*Returns:* List of active aircraft registrations with tail numbers starting from the term.",
        "operationId": "SearchAircraftByTerm",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "Search term (min. 4 non whitespace characters length)",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of items to be returned (max. 10, defaut = 5)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 5
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StringAircraftContractSearchResultCollectionContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/StringAircraftContractSearchResultCollectionContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 2",
            "position": "before",
            "color": "#aab6f8"
          }
        ]
      }
    },
    "/airports/{codeType}/{code}": {
      "get": {
        "tags": [
          "Airport API"
        ],
        "summary": "Airport by code / TIER 1",
        "description": "At the moment airports having both ICAO and IATA code are present in database only.\n\n*Returns*: Single airport data, if found.",
        "operationId": "GetAirport",
        "parameters": [
          {
            "name": "codeType",
            "in": "path",
            "description": "Type of code to search airport by (`iata` or `icao`)",
            "schema": {
              "$ref": "#/components/schemas/AirportCodesByEnum"
            }
          },
          {
            "name": "code",
            "in": "path",
            "description": "If `codeType` is:\n* `icao`, then this field must be a 4-character ICAO-code of the airport (e.g.: EHAM, KLAX, UUEE, etc.);\n* `iata`, then this field must be a 3-character IATA-code of the airport (e.g.: AMS, SFO, LAX, etc.).\n\nFull, stripped and any case formats are acceptable.",
            "required": true,
            "schema": {
              "maxLength": 4,
              "minLength": 3,
              "type": "string"
            }
          },
          {
            "name": "withRunways",
            "in": "query",
            "description": "Include runways data (default - false)",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "withTime",
            "in": "query",
            "description": "Include current local time (default - false)",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AirportContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/AirportContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 1",
            "position": "before",
            "color": "#beffe6"
          }
        ]
      }
    },
    "/airports/{codeType}/{code}/runways": {
      "get": {
        "tags": [
          "Airport API"
        ],
        "summary": "Airport runways / TIER 1",
        "description": "**Which runways does this airport have?**\n\nAt the moment airports having both ICAO and IATA code are present in database only.\n\n*Returns*: Collection of runway data items.",
        "operationId": "GetAirportRunways",
        "parameters": [
          {
            "name": "codeType",
            "in": "path",
            "description": "Type of code to search airport by (`iata` or `icao`)",
            "schema": {
              "$ref": "#/components/schemas/AirportCodesByEnum"
            }
          },
          {
            "name": "code",
            "in": "path",
            "description": "If `codeType` is:\n* `icao`, then this field must be a 4-character ICAO-code of the airport (e.g.: EHAM, KLAX, UUEE, etc.);\n* `iata`, then this field must be a 3-character IATA-code of the airport (e.g.: AMS, SFO, LAX, etc.).\n\nFull, stripped and any case formats are acceptable.",
            "required": true,
            "schema": {
              "maxLength": 4,
              "minLength": 3,
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RunwayContract"
                  }
                }
              },
              "application/xml": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RunwayContract"
                  }
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 1",
            "position": "before",
            "color": "#beffe6"
          }
        ]
      }
    },
    "/airports/search/location": {
      "get": {
        "tags": [
          "Airport API"
        ],
        "summary": "Search airports by location / TIER 2",
        "description": "**What are the airports closest to the location?**\n\nAt the moment airports having both ICAO and IATA code and flight schedules are present available only.\n\n*Returns:* A list of airports found within the specified radius around the specified location.",
        "operationId": "SearchAirportsByLocation",
        "parameters": [
          {
            "name": "lat",
            "in": "query",
            "description": "Latitude location coordinate in decimal format (between -90 and 90)",
            "required": true,
            "schema": {
              "type": "number",
              "format": "float"
            }
          },
          {
            "name": "lon",
            "in": "query",
            "description": "Longitude location coordinate in decimal format (between -180 and 180)",
            "required": true,
            "schema": {
              "type": "number",
              "format": "float"
            }
          },
          {
            "name": "radiusKm",
            "in": "query",
            "description": "Radius of search around specified location in kilometers (max. 1000 km)",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of airports to be returned (max. 250)",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "withFlightInfoOnly",
            "in": "query",
            "description": "If set to true, will only return airports which have flight data (scheduled or live) available. Default = false.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeoCoordinatesContractListingAirportContractSearchResultCollectionContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/GeoCoordinatesContractListingAirportContractSearchResultCollectionContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 2",
            "position": "before",
            "color": "#aab6f8"
          }
        ]
      }
    },
    "/airports/search/ip": {
      "get": {
        "tags": [
          "Airport API"
        ],
        "summary": "Search airports by IP address geolocation / TIER 2",
        "description": "**What are the airports closest to the customer, based on their IP address?**\n**What are the airports closest to the location determined (geo-located) by a IP address?**\n\nThis endpoint determines the location by the IP address provided and then returns the list of the nearest airports\nin the same way as `Search airports by location` endpoint does. \n\nPlease note:\n* IP geo-location is not a precise method and it determines an approximate location only.\n* At the moment airports having both ICAO and IATA code and flight schedules are present available only.\n\n*Returns:* A list of airports found within the specified radius around the location approximated (geo-located) from the specified IP address.",
        "operationId": "SearchAirportsByIpGeoLocation",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "A valid public IP v4 address",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "radiusKm",
            "in": "query",
            "description": "Radius of search around specified location in kilometers (max. 1000 km)",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of airports to be returned (max. 250)",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "withFlightInfoOnly",
            "in": "query",
            "description": "If set to true, will only return airports which have flight data (scheduled or live) available. Default = false.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeoCoordinatesContractListingAirportContractSearchResultCollectionContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/GeoCoordinatesContractListingAirportContractSearchResultCollectionContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 2",
            "position": "before",
            "color": "#aab6f8"
          }
        ]
      }
    },
    "/airports/search/term": {
      "get": {
        "tags": [
          "Airport API"
        ],
        "summary": "Search airports by free text / TIER 2",
        "description": "At the moment airports having both ICAO and IATA code and flight schedules are present available only.\n\n*Returns:* List of airports with names and city names (and IATA/ICAO code, if enabled) matching the search term.",
        "operationId": "SearchAirportByTerm",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "Search query (min. 3 non whitespace characters length)",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of airports to be returned (max. 250, defaut = 10)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          },
          {
            "name": "withFlightInfoOnly",
            "in": "query",
            "description": "If set to true, will only return airports which have flight data (scheduled or live) available. Default = false.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "withSearchByCode",
            "in": "query",
            "description": "If set to true, will attempt to interpret short words within the search query as IATA or ICAO code\nand prioritize exact matches by these codes (they will appear higher than others). \nOtherwise, the search by code will be completely excluded (only the name of an airport or its city will be searched). \nDefault = true.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StringListingAirportContractSearchResultCollectionContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/StringListingAirportContractSearchResultCollectionContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 2",
            "position": "before",
            "color": "#aab6f8"
          }
        ]
      }
    },
    "/subscriptions/webhook/{subjectType}/{subjectId}": {
      "post": {
        "tags": [
          "Flight Alert API"
        ],
        "summary": "Create web-hook subscription / FREE TIER",
        "description": "*This endpoitns is a part of Flight alert PUSH API currently powered by webhooks.  \nIf you are running your own web service, you can subscribe to flights by number or airport code. \nAfter that, your HTTP endpoint will be called (notified) whenever the flight information gets \nupdated.*\n\nCreates a web-hook subscription on a subject (e.g., flight alerts by number or by airport code).\nReturns information about created subscription. Subscription ID contained in it\ncan be used to refresh or remove it.\n\nEvery time a subject gets updated, a HTTP request will be sent to\nthe URL specified in `url` parameter. Request will be of a POST type \nand contain JSON-formatted `FlightNotificationContract` object containing subscription\nand flights information in  the body (see example response for status code 199\nof this endpoint documentation).\n\nAll flight alerts / notifications are delivered in best-effort manner. They might be missing\nor delayed. If there was an error delivering a notification for any reason, e.g., your\nendpoint was not available, returned non-2xx status code, or did not respond within timeout period of 10 seconds,\nthere will be no retries unless you explicitly set amount of retries when creating the subscription using `maxDeliveryRetries` parameter in the request body. \nEach retry attempt costs the same amount of credits as the original notification delivery attempt.\n\nIf subscribed to a specific flight or to flights operated in a specific airport:\n* Ensure that the flight is within the live updates / ADS-B data coverage. There is no sense in subscribing to a flight which operates in airports having poor or  no live updates or ADS-B coverage: there simply will be no updates. To check if an airport is tracked and on which level, use `/health/services/airports/{icao}/feeds` endpoint. You can also use `/health/services/feeds/{service}/airports` to get the list of covered airports. Read more about coverage here: https://www.aerodatabox.com/data-coverage.\n* Notifications will cover updates for flights commencing from 6 hours ago up to 72 hours in future.\n* Among these, notifications will contain only those flight items which were actually updated for this specific alert.\n\nAdditional aspects of behavior and billing of web-hook subscriptions:\n* Web-hook subscriptions do not expire, unless you remove them manually.\n* Every API consumer has a dedicated flight alert credit balance separate from the API quota. \n* Credits are deducted from your balance each time an alert notification is sent to your webhook. The cost is 1 credit per flight item in the notification. If a notification contains 1 flight, it costs 1 credit. If a notification contains 5 flights (common with airport subscriptions), it costs 5 credits.\n* Use caution when subscribing to an airport with a lot of traffic, as it may drain your balance quickly.\n* As soon as your balance reaches zero, all your web-hook subscriptions will pause and no notifications will be sent until you refill your balance.The balance is shared among all web-hook subscriptions created by you.\n* To refill the balance, refer to `POST /subscriptions/balance/refill` API endpoint.\n* To check the balance, refer to `GET /subscriptions/balance` endpoint.\n\nFor more details, read our guide at https://aerodatabox.com/flight-alert-api-2026/ (refer to the New behaviour sections as transition is now complete).",
        "operationId": "SubscribeWebhook",
        "parameters": [
          {
            "name": "subjectType",
            "in": "path",
            "description": "Subject type",
            "schema": {
              "$ref": "#/components/schemas/SubscriptionSubjectType"
            }
          },
          {
            "name": "subjectId",
            "in": "path",
            "description": "Subject ID. If `subjectType` is: \n* `FlightByNumber`, then this field must be a flight number (with or without spaces, IATA or ICAO, any case formats are acceptable, e.g. KL1395, Klm 1395);\n* `FlightByAirportIcao`, then this field must be a 4-character ICAO-code of the airport where flights are operated (e.g.: EHAM, KLAX, UUEE, etc.);",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Command containing parameters for web-hook subscription creation",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWebHookSubscription"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionContract"
                }
              }
            }
          },
          "199": {
            "description": "Information",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlightNotificationContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/FlightNotificationContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "FREE TIER",
            "position": "before",
            "color": "#ccc"
          }
        ]
      }
    },
    "/subscriptions/webhook/{subscriptionId}": {
      "get": {
        "tags": [
          "Flight Alert API"
        ],
        "summary": "Get web-hook subscription / FREE TIER",
        "description": "*This endpoint is a part of Flight alert PUSH API currently powered by webhooks.  \nIf you are running your own web service, you can subscribe to flights by number or airport code. \nAfter that, your HTTP endpoint will be called (notified) whenever the flight information gets \nupdated.*\n\nGets information about an existing active web-hook subscription.",
        "operationId": "GetWebhook",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription ID",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "FREE TIER",
            "position": "before",
            "color": "#ccc"
          }
        ]
      },
      "delete": {
        "tags": [
          "Flight Alert API"
        ],
        "summary": "Remove web-hook subscription / FREE TIER",
        "description": "*This endpoitns is a part of Flight alert PUSH API currently powered by webhooks.  \nIf you are running your own web service, you can subscribe to flights by number or airport code. \nAfter that, your HTTP endpoint will be called (notified) whenever the flight information gets \nupdated.*\n\nRemoves the subscription",
        "operationId": "UnsubscribeWebhook",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "Subscription ID",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK"
          }
        },
        "x-badges": [
          {
            "name": "FREE TIER",
            "position": "before",
            "color": "#ccc"
          }
        ]
      }
    },
    "/subscriptions/webhook": {
      "get": {
        "tags": [
          "Flight Alert API"
        ],
        "summary": "List web-hook subscriptions / FREE TIER",
        "description": "*This endpoitns is a part of Flight alert PUSH API currently powered by webhooks.  \nIf you are running your own web service, you can subscribe to flights by number or airport code. \nAfter that, your HTTP endpoint will be called (notified) whenever the flight information gets \nupdated.*\n\nGet the list of existing active web-hook subscriptions",
        "operationId": "GetWebhookList",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SubscriptionContract"
                  }
                }
              },
              "application/xml": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SubscriptionContract"
                  }
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "FREE TIER",
            "position": "before",
            "color": "#ccc"
          }
        ]
      }
    },
    "/subscriptions/balance": {
      "get": {
        "tags": [
          "Flight Alert API"
        ],
        "summary": "Get web-hook subscription balance / FREE TIER",
        "description": "The current web-hook subscription balance information.\nThis is separate from your API marketplace quota and is used solely for billing of web-hook subscriptions.\nFor more details about how flight alert API billing works, refer to our guide at https://aerodatabox.com/flight-alert-api-2026/",
        "operationId": "GetBalance",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionBalanceContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionBalanceContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "FREE TIER",
            "position": "before",
            "color": "#ccc"
          }
        ]
      }
    },
    "/subscriptions/balance/refill": {
      "post": {
        "tags": [
          "Flight Alert API"
        ],
        "summary": "Refill web-hook subscription balance / TIER 1",
        "description": "Performs refill operation on the web-hook subscription balance by the specified amount of credits.\nThis balance is separate from your API marketplace quota and is used solely for billing of web-hook subscriptions.\n\nIn the request body, you specify how many credits you want to add. This is a variable-rate endpoint and the amount of API units \ndeducted from your API quota depends on the amount of flight alerts credits requested.\nThe conversion rate is: 1 credit = 1 API unit.\n\nAdditional limits apply with regard to how many credits you can request per single refill operation and how many credits\nyou can have in your balance at any given time. These limits depend on your pricing plan (https://aerodatabox.com/pricing).\n\nFor more details about how flight alert API billing works, refer to our guide at https://aerodatabox.com/flight-alert-api-2026/",
        "operationId": "RefillBalance",
        "requestBody": {
          "description": "The details of the balance refill operation, including the amount of credits to add.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionsBalanceRefillRequestContract"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionBalanceContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionBalanceContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 1",
            "position": "before",
            "color": "#beffe6"
          }
        ]
      }
    },
    "/flights/{searchBy}/{searchParam}": {
      "get": {
        "tags": [
          "Flight API"
        ],
        "summary": "Flight Status (single day) / TIER 2",
        "description": "**What is the status of a specific flight?**\n**What is the historical status or schedule of a specific flight on a specific date in past or in future?**\n\nThis endpoint returns data about a specific flight  live flight status (if the flight is within the coverage and not in distant future), \nor flight schedule data otherwise.\n\nIf `dateLocal` is specified, gets data about flight(s) departing or arriving on the day specified (local time).\nOtherwise, gets data about the status of flight(s) operating on the nearest date (either in past or in future).\n\nA flight can be searched by:\n* flight number it's being operated under; or\n* ATC-callsign it's being operated under; or\n* tail-number of the aircraft it's being operated by; or\n* Mode-S 24-bit ICAO Transponder address of the aircraft it's being operated by.\n\nFlight data may include airport of arrival and departure, scheduled and actual times, flight status, type of aircraft, \ntail-number and aircraft image.\n\nSome flights may have partial data. The data may be absent for either arrival \nor departure airport or may not include live updates of time and status. Check quality markers inside the response to \ndetermine which data is available.\n\nNormally, information with live status updates and estimated/actual arrival/departure times is only available \nfor airports tracked live or with ADS-B by our system. Otherwise flight information will be with scheduled info only \nor absent. \n\nTo check if an airport is currently tracked and on which level, \nuse `/health/services/airports/{icao}/feeds` endpoint. You can also use `/health/services/feeds/{service}/airports` to get \nthe list of covered airports. \n\nRead more about coverage and flight data limitations here: https://www.aerodatabox.com/data-coverage.",
        "operationId": "GetFlight_FlightNearest",
        "parameters": [
          {
            "name": "searchBy",
            "in": "path",
            "description": "Criteria to search flight by",
            "schema": {
              "$ref": "#/components/schemas/FlightSearchByEnum"
            }
          },
          {
            "name": "searchParam",
            "in": "path",
            "description": "Value of the search criteria. If `searchBy` is: \n* `number`, then this field shoud be Flight number (with or without spaces, IATA or ICAO, any case formats are acceptable, e.g. KL1395, Klm 1395)\n* `callsign`, then this field should be ATC call-sign of the flight (with or without spaces, any case formats are acceptable, e.g.AFL1482, nca 008X);\n* `reg`, then this field should be Aircraft tail-number (with or without spaces or dashes, any case formats are acceptable, e.g.PH-BXO, DeMhJ);\n* `icao24`, then this field should be Aircraft ICAO 24-bit Mode-S address specified in hexadecimal format (e.g. 484161, 483EFD).",
            "required": true,
            "schema": {
              "maxLength": 10,
              "type": "string"
            }
          },
          {
            "name": "dateLocalRole",
            "in": "query",
            "description": "* If set to `Both` (default, recommended for best results) then the dateLocal parameter shall be considered as both departure and arrival date. If a flight departs OR arrives on that date (in the local timezone of the origin or destination, respectively), it will be returned.\n* If set to `Departure` then the dateLocal parameter shall be considered as departure date only. Only the flights departing on that date (in the local timezone of origin) will be returned.\n* If set to `Arrival` then the dateLocal parameter shall be considered as arrival date only. Only the flights arriving on that date (in the local timezone of destination) will be returned.",
            "schema": {
              "$ref": "#/components/schemas/FlightDirection"
            }
          },
          {
            "name": "withAircraftImage",
            "in": "query",
            "description": "Should include aircraft image (default: false).\n\nAircraft images are being searched in external sources by certain criteria without any manual intervention. \nTherefore, false matches may be returned. Only images with licenses approved for commercial use are returned. \nPlease be advised that you may be required to mention author attribution before using the image.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "withLocation",
            "in": "query",
            "description": "Should include real-time positional data, e.g.: location, speed, altitude, etc., if available (default: false).",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "withFlightPlan",
            "in": "query",
            "description": "Should include the flight plan filed with the ATC for the flight (default: false).\n\n* NOTE 1: Generally availabe to flights departing from, arriving to or crossing the mainland U.S. airspace.\n* NOTE 2: Only available on Basic and Ultra, Ultra-2 and Mega pricing plans.\n* NOTE 3: If set to true and the flight plan is found for one or more flights returned, **the request will be billed as 2 requests** against your API quota (except on Mega plan).",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FlightContract"
                  }
                }
              },
              "application/xml": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FlightContract"
                  }
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 2",
            "position": "before",
            "color": "#aab6f8"
          }
        ]
      }
    },
    "/flights/{searchBy}/{searchParam}/{dateLocal}": {
      "get": {
        "tags": [
          "Flight API"
        ],
        "summary": "Flight Status (single day) / TIER 2",
        "description": "**What is the status of a specific flight?**\n**What is the historical status or schedule of a specific flight on a specific date in past or in future?**\n\nThis endpoint returns data about a specific flight  live flight status (if the flight is within the coverage and not in distant future), \nor flight schedule data otherwise.\n\nIf `dateLocal` is specified, gets data about flight(s) departing or arriving on the day specified (local time).\nOtherwise, gets data about the status of flight(s) operating on the nearest date (either in past or in future).\n\nA flight can be searched by:\n* flight number it's being operated under; or\n* ATC-callsign it's being operated under; or\n* tail-number of the aircraft it's being operated by; or\n* Mode-S 24-bit ICAO Transponder address of the aircraft it's being operated by.\n\nFlight data may include airport of arrival and departure, scheduled and actual times, flight status, type of aircraft, \ntail-number and aircraft image.\n\nSome flights may have partial data. The data may be absent for either arrival \nor departure airport or may not include live updates of time and status. Check quality markers inside the response to \ndetermine which data is available.\n\nNormally, information with live status updates and estimated/actual arrival/departure times is only available \nfor airports tracked live or with ADS-B by our system. Otherwise flight information will be with scheduled info only \nor absent. \n\nTo check if an airport is currently tracked and on which level, \nuse `/health/services/airports/{icao}/feeds` endpoint. You can also use `/health/services/feeds/{service}/airports` to get \nthe list of covered airports. \n\nRead more about coverage and flight data limitations here: https://www.aerodatabox.com/data-coverage.",
        "operationId": "GetFlight_FlightOnSpecificDate",
        "parameters": [
          {
            "name": "searchBy",
            "in": "path",
            "description": "Criteria to search flight by",
            "schema": {
              "$ref": "#/components/schemas/FlightSearchByEnum"
            }
          },
          {
            "name": "searchParam",
            "in": "path",
            "description": "Value of the search criteria. If `searchBy` is: \n* `number`, then this field shoud be Flight number (with or without spaces, IATA or ICAO, any case formats are acceptable, e.g. KL1395, Klm 1395)\n* `callsign`, then this field should be ATC call-sign of the flight (with or without spaces, any case formats are acceptable, e.g.AFL1482, nca 008X);\n* `reg`, then this field should be Aircraft tail-number (with or without spaces or dashes, any case formats are acceptable, e.g.PH-BXO, DeMhJ);\n* `icao24`, then this field should be Aircraft ICAO 24-bit Mode-S address specified in hexadecimal format (e.g. 484161, 483EFD).",
            "required": true,
            "schema": {
              "maxLength": 10,
              "type": "string"
            }
          },
          {
            "name": "dateLocal",
            "in": "path",
            "description": "Local date of departure or arrival (in format: YYYY-MM-DD, e.g.: 2019-08-29). Maximum/minimum allowable date is determined by the current data coverage limitations and your pricing plan.",
            "required": true,
            "schema": {
              "pattern": "\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2})?",
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "dateLocalRole",
            "in": "query",
            "description": "* If set to `Both` (default, recommended for best results) then the dateLocal parameter shall be considered as both departure and arrival date. If a flight departs OR arrives on that date (in the local timezone of the origin or destination, respectively), it will be returned.\n* If set to `Departure` then the dateLocal parameter shall be considered as departure date only. Only the flights departing on that date (in the local timezone of origin) will be returned.\n* If set to `Arrival` then the dateLocal parameter shall be considered as arrival date only. Only the flights arriving on that date (in the local timezone of destination) will be returned.",
            "schema": {
              "$ref": "#/components/schemas/FlightDirection"
            }
          },
          {
            "name": "withAircraftImage",
            "in": "query",
            "description": "Should include aircraft image (default: false).\n\nAircraft images are being searched in external sources by certain criteria without any manual intervention. \nTherefore, false matches may be returned. Only images with licenses approved for commercial use are returned. \nPlease be advised that you may be required to mention author attribution before using the image.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "withLocation",
            "in": "query",
            "description": "Should include real-time positional data, e.g.: location, speed, altitude, etc., if available (default: false).",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "withFlightPlan",
            "in": "query",
            "description": "Should include the flight plan filed with the ATC for the flight (default: false).\n\n* NOTE 1: Generally availabe to flights departing from, arriving to or crossing the mainland U.S. airspace.\n* NOTE 2: Only available on Basic and Ultra, Ultra-2 and Mega pricing plans.\n* NOTE 3: If set to true and the flight plan is found for one or more flights returned, **the request will be billed as 2 requests** against your API quota (except on Mega plan).",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FlightContract"
                  }
                }
              },
              "application/xml": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FlightContract"
                  }
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 2",
            "position": "before",
            "color": "#aab6f8"
          }
        ]
      }
    },
    "/flights/{searchBy}/{searchParam}/{dateFromLocal}/{dateToLocal}": {
      "get": {
        "tags": [
          "Flight API"
        ],
        "summary": "Flight History and Schedule (range of days) / TIER 3",
        "description": "**What is the history or schedule of a specific flight within a specific range of dates in past or in future?**\n\nThis endpoint is the similar to the `Flight status` endpoint. \nThe only difference is that instead of returning the flight data on a single date, it returns the data over a range of dates, thus\nallowing to get insights on the flight history or schedule within the specified range.\n\nAll limitations and considerations applicable to `Flight status` endpoint are applicable to this endpoint as well.",
        "operationId": "GetFlightHistory_FlightHistory",
        "parameters": [
          {
            "name": "searchBy",
            "in": "path",
            "description": "Criteria to search flight by",
            "schema": {
              "$ref": "#/components/schemas/FlightSearchByEnum"
            }
          },
          {
            "name": "searchParam",
            "in": "path",
            "description": "Value of the search criteria. If `searchBy` is: \n* `number`, then this field shoud be Flight number (with or without spaces, IATA or ICAO, any case formats are acceptable, e.g. KL1395, Klm 1395)\n* `callsign`, then this field should be ATC call-sign of the flight (with or without spaces, any case formats are acceptable, e.g.AFL1482, nca 008X);\n* `reg`, then this field should be Aircraft tail-number (with or without spaces or dashes, any case formats are acceptable, e.g.PH-BXO, DeMhJ);\n* `icao24`, then this field should be Aircraft ICAO 24-bit Mode-S address specified in hexadecimal format (e.g. 484161, 483EFD).",
            "required": true,
            "schema": {
              "maxLength": 10,
              "type": "string"
            }
          },
          {
            "name": "dateFromLocal",
            "in": "path",
            "description": "Beginning of the range of local dates of departure or arrival (in format: YYYY-MM-DD, e.g.: 2019-08-29). Maximum/minimum allowable value is determined by the current data coverage limitations and your pricing plan.",
            "required": true,
            "schema": {
              "pattern": "\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2})?",
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "dateToLocal",
            "in": "path",
            "description": "End of the range of local dates of departure or arrival (in format: YYYY-MM-DD, e.g.: 2019-08-29). Maximum/minimum allowable value is determined by the current data coverage limitations and your pricing plan. This date must be bigger than the dateFromLocal. The maximum difference between this date and dateFromLocal is limited and is determined by your pricing plan (ranging from 7 to 30 days as per moment of writing).",
            "required": true,
            "schema": {
              "pattern": "\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2})?",
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "dateLocalRole",
            "in": "query",
            "description": "* If set to `Both` (default, recommended for best results) then the dateFromLocal and dateToLocal parameters shall be considered as both departure and arrival dates. If a flight departs OR arrives on dates within the specified range (in the local timezone of the origin or destination, respectively), it will be returned.\n* If set to `Departure` then the dateFromLocal and dateToLocal  parameters shall be considered as departure dates only. Only the flights departing on dates within the specified rang(in the local timezone of origin) will be returned.\n* If set to `Arrival` then the dateFromLocal and dateToLocal  parameters shall be considered as arrival dates only. Only the flights arriving on dates within the specified rangd (in the local timezone of destination) will be returned.",
            "schema": {
              "$ref": "#/components/schemas/FlightDirection"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FlightContract"
                  }
                }
              },
              "application/xml": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FlightContract"
                  }
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 3",
            "position": "before",
            "color": "#ffb694"
          }
        ]
      }
    },
    "/flights/{searchBy}/{searchParam}/dates": {
      "get": {
        "tags": [
          "Flight API"
        ],
        "summary": "Flight departure dates / TIER 2",
        "description": "**On which days the flight operates?** or **What is the flight schedule?**\n\nFlight can be searched by:\n* flight number it's being operated under; or\n* ATC-callsign it's being operated under; or\n* tail-number of the aircraft it's being operated by; or\n* Mode-S 24-bit ICAO Transponder address of the aircraft it's being operated by.\n\n*Returns:* Array of local departure dates in (YYYY-MM-DD) format for flights operated under speified call-sign and within the time range specified.",
        "operationId": "GetFlightDates_FlightDatesAll",
        "parameters": [
          {
            "name": "searchBy",
            "in": "path",
            "description": "Criteria to search flight by",
            "schema": {
              "$ref": "#/components/schemas/FlightSearchByEnum"
            }
          },
          {
            "name": "searchParam",
            "in": "path",
            "description": "Value of the search criteria. If **searchBy** is: \n* `number`, then this field shoud be Flight number (with or without spaces, IATA or ICAO, any case formats are acceptable, e.g. KL1395, Klm 1395)\n* `callsign`, then this field should be ATC call-sign of the flight (with or without spaces, any case formats are acceptable, e.g.AFL1482, nca 008X);\n* `reg`: then this field should be Aircraft tail-number (with or without spaces or dashes, any case formats are acceptable, e.g.PH-BXO, DeMhJ);\n* `icao24`, then this field should be Aircraft ICAO 24-bit Mode-S address specified in hexadecimal format (e.g. 484161, 483EFD).",
            "required": true,
            "schema": {
              "maxLength": 10,
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "application/xml": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 2",
            "position": "before",
            "color": "#aab6f8"
          }
        ]
      }
    },
    "/flights/{searchBy}/{searchParam}/dates/{fromLocal}/{toLocal}": {
      "get": {
        "tags": [
          "Flight API"
        ],
        "summary": "Flight departure dates / TIER 2",
        "description": "**On which days the flight operates?** or **What is the flight schedule?**\n\nFlight can be searched by:\n* flight number it's being operated under; or\n* ATC-callsign it's being operated under; or\n* tail-number of the aircraft it's being operated by; or\n* Mode-S 24-bit ICAO Transponder address of the aircraft it's being operated by.\n\n*Returns:* Array of local departure dates in (YYYY-MM-DD) format for flights operated under speified call-sign and within the time range specified.",
        "operationId": "GetFlightDates_FlightDatesInRange",
        "parameters": [
          {
            "name": "searchBy",
            "in": "path",
            "description": "Criteria to search flight by",
            "schema": {
              "$ref": "#/components/schemas/FlightSearchByEnum"
            }
          },
          {
            "name": "searchParam",
            "in": "path",
            "description": "Value of the search criteria. If **searchBy** is: \n* `number`, then this field shoud be Flight number (with or without spaces, IATA or ICAO, any case formats are acceptable, e.g. KL1395, Klm 1395)\n* `callsign`, then this field should be ATC call-sign of the flight (with or without spaces, any case formats are acceptable, e.g.AFL1482, nca 008X);\n* `reg`: then this field should be Aircraft tail-number (with or without spaces or dashes, any case formats are acceptable, e.g.PH-BXO, DeMhJ);\n* `icao24`, then this field should be Aircraft ICAO 24-bit Mode-S address specified in hexadecimal format (e.g. 484161, 483EFD).",
            "required": true,
            "schema": {
              "maxLength": 10,
              "type": "string"
            }
          },
          {
            "name": "fromLocal",
            "in": "path",
            "description": "Beginning of the search range (local time, format: YYYY-MM-DD)",
            "required": true,
            "schema": {
              "pattern": "\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2})?",
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toLocal",
            "in": "path",
            "description": "End of the search range (local time, format: YYYY-MM-DD)",
            "required": true,
            "schema": {
              "pattern": "\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2})?",
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "application/xml": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 2",
            "position": "before",
            "color": "#aab6f8"
          }
        ]
      }
    },
    "/flights/airports/{codeType}/{code}/{fromLocal}/{toLocal}": {
      "get": {
        "tags": [
          "Flight API"
        ],
        "summary": "FIDS (airport departures and arrivals) - by local time range / TIER 2",
        "description": "**What are current departures or arrivals at the airport?** or **What is the flight schedule at the airport?** or **What is flight history at the airport?**\n\nFlights may contain live updates with corresponding information related to the actual progress of the flight \n(including actual/estimated arrival/departure times). In this case this endpoint serves as a FIDS endpoint. \nPresense of live updates is subject to data coverage: not all airports have this coverage in our system.\n\nOtherwise flight information will be limited to scheduled only and will not be updated real-time. Much more airports\nhave this type of coverage. To check if airport is tracked and on which level, use */health/services/airports/{icao}/feeds* endpoint. \nYou can also use */health/services/feeds/{service}/airports* to get the list of supported airports for this\nor that layer of coverage. To learn more about the data coverage, refer to *https://www.aerodatabox.com/data-coverage*.\n\n*Returns*: the list of arriving and/or departing flights scheduled and/or planned and/or commenced within a specified \ntime range for a specified airport.",
        "operationId": "GetAirportFlights",
        "parameters": [
          {
            "name": "codeType",
            "in": "path",
            "description": "Type of code to search airport by (`iata` or `icao`)",
            "schema": {
              "$ref": "#/components/schemas/AirportCodesByEnum"
            }
          },
          {
            "name": "code",
            "in": "path",
            "description": "If `codeType` is:\n* `icao`, then this field must be a 4-character ICAO-code of the airport (e.g.: EHAM, KLAX, UUEE, etc.);\n* `iata`, then this field must be a 3-character IATA-code of the airport (e.g.: AMS, SFO, LAX, etc.).\n\nFull, stripped and any case formats are acceptable.",
            "required": true,
            "schema": {
              "maxLength": 4,
              "minLength": 3,
              "type": "string"
            }
          },
          {
            "name": "fromLocal",
            "in": "path",
            "description": "Beginning of the search range (local time, format: YYYY-MM-DDTHH:mm)",
            "required": true,
            "schema": {
              "pattern": "\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2})?",
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toLocal",
            "in": "path",
            "description": "End of the search range (local time, format: YYYY-MM-DDTHH:mm). Must be more than beginning of the search range by no more than 12 hours.",
            "required": true,
            "schema": {
              "pattern": "\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2})?",
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "description": "Direction of flights: Arrival, Departure or Both (default)",
            "schema": {
              "$ref": "#/components/schemas/FlightDirection"
            }
          },
          {
            "name": "withLeg",
            "in": "query",
            "description": "If set to true, the result will include movement information from airport opposite in this flight leg (airport of origin for arriving flight or airport of destination for departing flight).\nIn this case, Movement property will be replaced with Departure and Arrival properties for each flight.\nDefault: false.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "withCancelled",
            "in": "query",
            "description": "If set to true, result will include cancelled, divered, likely cancelled (CanceledUncertain) flights.\nDefault: true.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "withCodeshared",
            "in": "query",
            "description": "If set to true, the result will include flights with all code-shared statuses.\nOtherwise, code-sharing flights will be exclued. For airports, where no information about code-share statuses\nof flights are supplied (all flights are CodeshareStatus=Unknown), complex filtering will be applied \nto determine which flights are likely to be operational (caution: false results are possible).",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "withCargo",
            "in": "query",
            "description": "If set to true, the result will include cargo flights (subject to availability).",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "withPrivate",
            "in": "query",
            "description": "If set to true, the result will include private flights (subject to availability).",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "withLocation",
            "in": "query",
            "description": "If set to true, each currently active flight within the result will be populated \nwith its present real-time location, altitude, speed and track (subject to availability).",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AirportFidsContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/AirportFidsContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 2",
            "position": "before",
            "color": "#aab6f8"
          }
        ]
      }
    },
    "/flights/airports/{codeType}/{code}": {
      "get": {
        "tags": [
          "Flight API"
        ],
        "summary": "FIDS (airport departures and arrivals) - by relative time / by current time / TIER 2",
        "description": "**What are current departures or arrivals at the airport?** or **What is the flight schedule at the airport?** or **What is flight history at the airport?**\n\nFlights may contain live updates with corresponding information related to the actual progress of the flight \n(including actual/estimated arrival/departure times). In this case this endpoint serves as a FIDS endpoint. \nPresense of live updates is subject to data coverage: not all airports have this coverage in our system.\n\nOtherwise flight information will be limited to scheduled only and will not be updated real-time. Much more airports\nhave this type of coverage. To check if airport is tracked and on which level, use */health/services/airports/{icao}/feeds* endpoint. \nYou can also use */health/services/feeds/{service}/airports* to get the list of supported airports for this\nor that layer of coverage. To learn more about the data coverage, refer to *https://www.aerodatabox.com/data-coverage*.\n\n*Returns*: the list of arriving and/or departing flights scheduled and/or planned and/or commenced within a time range specified \nrelatively to the current local time at the airport.",
        "operationId": "GetAirportFlightsRelative",
        "parameters": [
          {
            "name": "codeType",
            "in": "path",
            "description": "Type of code to search airport by (`iata` or `icao`)",
            "schema": {
              "$ref": "#/components/schemas/AirportCodesByEnum"
            }
          },
          {
            "name": "code",
            "in": "path",
            "description": "If `codeType` is:\n* `icao`, then this field must be a 4-character ICAO-code of the airport (e.g.: EHAM, KLAX, UUEE, etc.);\n* `iata`, then this field must be a 3-character IATA-code of the airport (e.g.: AMS, SFO, LAX, etc.).\n\nFull, stripped and any case formats are acceptable.",
            "required": true,
            "schema": {
              "maxLength": 4,
              "minLength": 3,
              "type": "string"
            }
          },
          {
            "name": "offsetMinutes",
            "in": "query",
            "description": "Beginning of the search range expressed in minutes relative to the current time at the airport (default: `-120`)",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": -120
            }
          },
          {
            "name": "durationMinutes",
            "in": "query",
            "description": "Length (duration) of the search range expressed in minutes (default: `720`)",
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 720
            }
          },
          {
            "name": "direction",
            "in": "query",
            "description": "Direction of flights: Arrival, Departure or Both (default)",
            "schema": {
              "$ref": "#/components/schemas/FlightDirection"
            }
          },
          {
            "name": "withLeg",
            "in": "query",
            "description": "If set to true, the result will include movement information from airport opposite in this flight leg (airport of origin for arriving flight or airport of destination for departing flight).\nIn this case, Movement property will be replaced with Departure and Arrival properties for each flight.\nDefault: false.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "withCancelled",
            "in": "query",
            "description": "If set to true, result will include cancelled, divered, likely cancelled (CanceledUncertain) flights.\nDefault: true.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "withCodeshared",
            "in": "query",
            "description": "If set to true, the result will include flights with all code-shared statuses.\nOtherwise, code-sharing flights will be exclued. For airports, where no information about code-share statuses\nof flights are supplied (all flights are CodeshareStatus=Unknown), complex filtering will be applied \nto determine which flights are likely to be operational (caution: false results are possible).",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "withCargo",
            "in": "query",
            "description": "If set to true, the result will include cargo flights (subject to availability).",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "withPrivate",
            "in": "query",
            "description": "If set to true, the result will include private flights (subject to availability).",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "withLocation",
            "in": "query",
            "description": "If set to true, each currently active flight within the result will be populated \nwith its present real-time location, altitude, speed and track (subject to availability).",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AirportFidsContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/AirportFidsContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 2",
            "position": "before",
            "color": "#aab6f8"
          }
        ]
      }
    },
    "/flights/search/term": {
      "get": {
        "tags": [
          "Flight API"
        ],
        "summary": "Search flight numbers by term / TIER 2",
        "description": "*Returns:* Distinct list of available flight numbers which start with the search query.",
        "operationId": "SearchFlightsByTerm",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "description": "Search query (min. 2 non whitespace characters length)",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of items to be returned (max. 100, defaut = 10)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StringFlightSearchItemContractSearchResultCollectionContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/StringFlightSearchItemContractSearchResultCollectionContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 2",
            "position": "before",
            "color": "#aab6f8"
          }
        ]
      }
    },
    "/health/services/feeds/{service}": {
      "get": {
        "tags": [
          "Healthcheck API"
        ],
        "summary": "General status of data feed services / FREE TIER",
        "description": "**Which is the general health of the data feed service?**\n \n*Returns:* Status of the service in general, regardless of the airports",
        "operationId": "GetFeedServiceStatus",
        "parameters": [
          {
            "name": "service",
            "in": "path",
            "description": "Data feed service name",
            "schema": {
              "$ref": "#/components/schemas/FeedServiceEnum"
            }
          },
          {
            "name": "withHttpCode",
            "in": "query",
            "description": "If true, reflect status of the service in the HTTP code of the response (if the service is down, HTTP code will be 503).",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeedServiceStatusContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/FeedServiceStatusContract"
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeedServiceStatusContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/FeedServiceStatusContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "FREE TIER",
            "position": "before",
            "color": "#ccc"
          }
        ]
      }
    },
    "/health/services/airports/{icao}/feeds": {
      "get": {
        "tags": [
          "Healthcheck API"
        ],
        "summary": "Data feed services status by ICAO code / FREE TIER",
        "description": "**What is the status of data updates for the airport?**\n\nAt the moment airports having both ICAO and IATA code are present in database only.\n\n*Returns:* Current status of airport data feed services (live flight updates, flight schedules, etc.) for requested airport.",
        "operationId": "GetAirportFeedStatus",
        "parameters": [
          {
            "name": "icao",
            "in": "path",
            "description": "4-digit ICAO-code of the airport (e.g.: EHAM, KLAX, UUEE, etc.). Full, stripped and any case formats are acceptable.",
            "required": true,
            "schema": {
              "maxLength": 4,
              "minLength": 4,
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AirportFeedServiceStatusContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/AirportFeedServiceStatusContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "FREE TIER",
            "position": "before",
            "color": "#ccc"
          }
        ]
      }
    },
    "/health/services/feeds/{service}/airports": {
      "get": {
        "tags": [
          "Healthcheck API"
        ],
        "summary": "Airports supporting data feed service / FREE TIER",
        "description": "**Which airports support flight schedules?** or **Which airports support live flight updates?**\n\n At the moment airports having both ICAO and IATA code are present in database only.\n \n*Returns:* Collection ICAO codes of airports supporting specified airport data feed service.",
        "operationId": "GetFeedAirports",
        "parameters": [
          {
            "name": "service",
            "in": "path",
            "description": "Airport data feed service name",
            "schema": {
              "$ref": "#/components/schemas/FeedServiceEnum"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StringCollectionContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/StringCollectionContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "FREE TIER",
            "position": "before",
            "color": "#ccc"
          }
        ]
      }
    },
    "/industry/faa-ladd/{id}/status": {
      "get": {
        "tags": [
          "Industry API"
        ],
        "summary": "FAA LADD Aircraft Status / TIER 3",
        "description": "*Returns:* The **current** status of the specified aircraft in the Limiting Aircraft Displayed program\nof the Federal Aviation Administration of the U.S. Department of Transportation (FAA LADD). \nThe industry list of blocked aircraft is synchrornized weekly with the FAA. \nMore information about FAA LADD: https://www.faa.gov/pilots/ladd\n\n**DISCLAIMER.** This endpoint is designed to provide easy access to verification against the FAA LADD industry list.\nEven though it is based on the official data distributed weekly by the FAA, this is **NOT the official source\nof the FAA LADD data**. For the official sources, always contact the FAA directly.",
        "operationId": "GetFaaLaddAircraftStatus",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Callsign or aircraft tail number",
            "required": true,
            "schema": {
              "maxLength": 15,
              "minLength": 2,
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FaaLaddAircraftStatusContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/FaaLaddAircraftStatusContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 3",
            "position": "before",
            "color": "#ffb694"
          }
        ]
      }
    },
    "/airports/{codeType}/{code}/time/local": {
      "get": {
        "tags": [
          "Miscellaneous API"
        ],
        "summary": "Current local time at the airport / TIER 1",
        "description": "**What is the current local time at the airport?**\n\nAt the moment airports having both ICAO and IATA code are present in database only.\n\n*Returns:* Local time at the airport, if airport is found.",
        "operationId": "GetAirportLocalTime",
        "parameters": [
          {
            "name": "codeType",
            "in": "path",
            "description": "Type of code to search airport by (`iata` or `icao`)",
            "schema": {
              "$ref": "#/components/schemas/AirportCodesByEnum"
            }
          },
          {
            "name": "code",
            "in": "path",
            "description": "If `codeType` is:\n* `icao`, then this field must be a 4-character ICAO-code of the airport (e.g.: EHAM, KLAX, UUEE, etc.);\n* `iata`, then this field must be a 3-character IATA-code of the airport (e.g.: AMS, SFO, LAX, etc.).\n\nFull, stripped and any case formats are acceptable.",
            "required": true,
            "schema": {
              "maxLength": 4,
              "minLength": 3,
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AirportLocalTimeContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/AirportLocalTimeContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 1",
            "position": "before",
            "color": "#beffe6"
          }
        ]
      }
    },
    "/airports/{codeType}/{code}/time/solar": {
      "get": {
        "tags": [
          "Miscellaneous API"
        ],
        "summary": "Solar and day time at the airport / TIER 1",
        "description": "**What is the sun position in the sky now at a specific time at the airport?** or\n**When does the sun rise and set at the airport today or on the other day at the airport?** or\n**Is it dark now or is it day at the airport?**\n\nAt the moment airports having both ICAO and IATA code are present in database only.\n\n*Returns:* If airport is found, returns various solar-related information: sun position in the sky,\ndaytime (day, night, twilight: civil, nautical, astronomical, golden/blue hours), \nsunrise and sunset times, etc.",
        "operationId": "GetAirportSolarTime_SolarTimeCurrent",
        "parameters": [
          {
            "name": "codeType",
            "in": "path",
            "description": "Type of code to search airport by (`iata` or `icao`)",
            "schema": {
              "$ref": "#/components/schemas/AirportCodesByEnum"
            }
          },
          {
            "name": "code",
            "in": "path",
            "description": "If `codeType` is:\n* `icao`, then this field must be a 4-character ICAO-code of the airport (e.g.: EHAM, KLAX, UUEE, etc.);\n* `iata`, then this field must be a 3-character IATA-code of the airport (e.g.: AMS, SFO, LAX, etc.).\n\nFull, stripped and any case formats are acceptable.",
            "required": true,
            "schema": {
              "maxLength": 4,
              "minLength": 3,
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SolarStateContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/SolarStateContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 1",
            "position": "before",
            "color": "#beffe6"
          }
        ]
      }
    },
    "/airports/{codeType}/{code}/time/solar/{dateLocal}": {
      "get": {
        "tags": [
          "Miscellaneous API"
        ],
        "summary": "Solar and day time at the airport / TIER 1",
        "description": "**What is the sun position in the sky now at a specific time at the airport?** or\n**When does the sun rise and set at the airport today or on the other day at the airport?** or\n**Is it dark now or is it day at the airport?**\n\nAt the moment airports having both ICAO and IATA code are present in database only.\n\n*Returns:* If airport is found, returns various solar-related information: sun position in the sky,\ndaytime (day, night, twilight: civil, nautical, astronomical, golden/blue hours), \nsunrise and sunset times, etc.",
        "operationId": "GetAirportSolarTime_SolarTimeSpecificDate",
        "parameters": [
          {
            "name": "codeType",
            "in": "path",
            "description": "Type of code to search airport by (`iata` or `icao`)",
            "schema": {
              "$ref": "#/components/schemas/AirportCodesByEnum"
            }
          },
          {
            "name": "code",
            "in": "path",
            "description": "If `codeType` is:\n* `icao`, then this field must be a 4-character ICAO-code of the airport (e.g.: EHAM, KLAX, UUEE, etc.);\n* `iata`, then this field must be a 3-character IATA-code of the airport (e.g.: AMS, SFO, LAX, etc.).\n\nFull, stripped and any case formats are acceptable.",
            "required": true,
            "schema": {
              "maxLength": 4,
              "minLength": 3,
              "type": "string"
            }
          },
          {
            "name": "dateLocal",
            "in": "path",
            "description": "The moment of time which solar data is request for (local time, format: YYYY-MM-DDTHH:mm). \nDefault - current time.",
            "required": true,
            "schema": {
              "pattern": "\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2})?",
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SolarStateContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/SolarStateContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 1",
            "position": "before",
            "color": "#beffe6"
          }
        ]
      }
    },
    "/airports/{codeType}/{codeFrom}/distance-time/{codeTo}": {
      "get": {
        "tags": [
          "Miscellaneous API"
        ],
        "summary": "Distance and flight time between airports / TIER 2",
        "description": "**What is the great circle distance between airports?** \n**What is approximate flight time between airports?**\n** What is the flight time between airports based on history of flights and/or aircraft type?** (machine-learning based)\n\nUse `flightTimeModel` = <a href=\"#model-ModelFlightTimeEnum\">ML01</a> to get more accurate results based on historical performance of flights on a specific route \nand aircraft type.\n\n*Returns:* Distance and approximate flight time between airports, if both airports found.",
        "operationId": "GetAirportDistanceTime",
        "parameters": [
          {
            "name": "codeType",
            "in": "path",
            "description": "Type of code to search airport by (`iata` or `icao`)",
            "schema": {
              "$ref": "#/components/schemas/AirportCodesByEnum"
            }
          },
          {
            "name": "codeFrom",
            "in": "path",
            "description": "If `codeType` is:\n* `icao`, then this field must be a 4-character ICAO-code of the origin airport (e.g.: EHAM, KLAX, UUEE, etc.);\n* `iata`, then this field must be a 3-character IATA-code of the origin  airport (e.g.: AMS, SFO, LAX, etc.).\n\nFull, stripped and any case formats are acceptable.",
            "required": true,
            "schema": {
              "maxLength": 4,
              "minLength": 3,
              "type": "string"
            }
          },
          {
            "name": "codeTo",
            "in": "path",
            "description": "If `codeType` is:\n* `icao`, then this field must be a 4-character ICAO-code of the destination airport (e.g.: EHAM, KLAX, UUEE, etc.);\n* `iata`, then this field must be a 3-character IATA-code of the destination  airport (e.g.: AMS, SFO, LAX, etc.);\n* `local`, then the format of this field is subject to specific standards of relevant national or local airport codification systems.\n\nFull, stripped and any case formats are acceptable.",
            "required": true,
            "schema": {
              "maxLength": 4,
              "minLength": 3,
              "type": "string"
            }
          },
          {
            "name": "aircraftName",
            "in": "query",
            "description": "Aircraft type name (free text). \nIf specified, the aircraft type will be attempted to be taken into account to provide more accurate result.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "flightTimeModel",
            "in": "query",
            "description": "Model of calculation of the flight time. Default is <a href=\"#model-ModelFlightTimeEnum\"></a>\nMore advanced model(s) is available, including machine learning-based models.\nSee <a href=\"#model-ModelFlightTimeEnum\">ModelFlightTimeEnum</a> for details.",
            "schema": {
              "$ref": "#/components/schemas/ModelFlightTimeEnum"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AirportDistanceTimeContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/AirportDistanceTimeContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 2",
            "position": "before",
            "color": "#aab6f8"
          }
        ]
      }
    },
    "/airports/{codeType}/{code}/delays": {
      "get": {
        "tags": [
          "Statistical API"
        ],
        "summary": "Airport delays (current or historical moment) / TIER 3",
        "description": "**What is the current or historical average delay in the airport?** or **What is the delay index of the airport right now or at a moment in past?**\n\nPlease read more about airport delays on here: https://aerodatabox.com/api-airport-delays/\n\n*Returns*: Statistical delay information about delays (median delay, delay index, cancelled flights) of arrivals and departures for the requested airport, represented by:\n* a single `AirportDelayContract` item displaying the delay information based on flight movements within the 2 hours prior to the current moment, if no `dateLocal` is specified;\n* a single `AirportDelayContract` item displaying the delay information based on flight movements within the 2 hours prior to the moment requested in `dateLocal`, if `dateLocal` is specified;",
        "operationId": "GetAirportDelay_DelaysCurrent",
        "parameters": [
          {
            "name": "codeType",
            "in": "path",
            "description": "Type of code to search airport by (`iata` or `icao`)",
            "schema": {
              "$ref": "#/components/schemas/AirportCodesByEnum"
            }
          },
          {
            "name": "code",
            "in": "path",
            "description": "If `codeType` is:\n* `icao`, then this field must be a 4-character ICAO-code of the airport (e.g.: EHAM, KLAX, UUEE, etc.);\n* `iata`, then this field must be a 3-character IATA-code of the airport (e.g.: AMS, SFO, LAX, etc.).\n\nFull, stripped and any case formats are acceptable.",
            "required": true,
            "schema": {
              "maxLength": 4,
              "minLength": 3,
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AirportDelayContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/AirportDelayContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 3",
            "position": "before",
            "color": "#ffb694"
          }
        ]
      }
    },
    "/airports/{codeType}/{code}/delays/{dateLocal}": {
      "get": {
        "tags": [
          "Statistical API"
        ],
        "summary": "Airport delays (current or historical moment) / TIER 3",
        "description": "**What is the current or historical average delay in the airport?** or **What is the delay index of the airport right now or at a moment in past?**\n\nPlease read more about airport delays on here: https://aerodatabox.com/api-airport-delays/\n\n*Returns*: Statistical delay information about delays (median delay, delay index, cancelled flights) of arrivals and departures for the requested airport, represented by:\n* a single `AirportDelayContract` item displaying the delay information based on flight movements within the 2 hours prior to the current moment, if no `dateLocal` is specified;\n* a single `AirportDelayContract` item displaying the delay information based on flight movements within the 2 hours prior to the moment requested in `dateLocal`, if `dateLocal` is specified;",
        "operationId": "GetAirportDelay_DelaysHistorical",
        "parameters": [
          {
            "name": "codeType",
            "in": "path",
            "description": "Type of code to search airport by (`iata` or `icao`)",
            "schema": {
              "$ref": "#/components/schemas/AirportCodesByEnum"
            }
          },
          {
            "name": "code",
            "in": "path",
            "description": "If `codeType` is:\n* `icao`, then this field must be a 4-character ICAO-code of the airport (e.g.: EHAM, KLAX, UUEE, etc.);\n* `iata`, then this field must be a 3-character IATA-code of the airport (e.g.: AMS, SFO, LAX, etc.).\n\nFull, stripped and any case formats are acceptable.",
            "required": true,
            "schema": {
              "maxLength": 4,
              "minLength": 3,
              "type": "string"
            }
          },
          {
            "name": "dateLocal",
            "in": "path",
            "description": "The moment of time for / from which delay data is requested (local time, format: YYYY-MM-DDTHH:mm). \nDefault - current time.",
            "required": true,
            "schema": {
              "pattern": "\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2})?",
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AirportDelayContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/AirportDelayContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 3",
            "position": "before",
            "color": "#ffb694"
          }
        ]
      }
    },
    "/airports/{codeType}/{code}/delays/{dateFromLocal}/{dateToLocal}": {
      "get": {
        "tags": [
          "Statistical API"
        ],
        "summary": "Airport delays (historical period) / TIER 3",
        "description": "**What were the delays within a specific period of time?** or **How the delays changed  within a specific period of time?**\n\nPlease read more about airport delays on here: https://aerodatabox.com/api-airport-delays/\n\n*Returns*: Statistical delay information about delays (median delay, delay index, cancelled flights) of arrivals and departures for the requested airport, represented by a collection of `AiportDelayContract` items displaying the delay information at multiple moments within the period between `dateLocal` and `dateToLocal`.",
        "operationId": "GetAirportDelays",
        "parameters": [
          {
            "name": "codeType",
            "in": "path",
            "description": "Type of code to search airport by (`iata` or `icao`)",
            "schema": {
              "$ref": "#/components/schemas/AirportCodesByEnum"
            }
          },
          {
            "name": "code",
            "in": "path",
            "description": "If `codeType` is:\n* `icao`, then this field must be a 4-character ICAO-code of the airport (e.g.: EHAM, KLAX, UUEE, etc.);\n* `iata`, then this field must be a 3-character IATA-code of the airport (e.g.: AMS, SFO, LAX, etc.).\n\nFull, stripped and any case formats are acceptable.",
            "required": true,
            "schema": {
              "maxLength": 4,
              "minLength": 3,
              "type": "string"
            }
          },
          {
            "name": "dateFromLocal",
            "in": "path",
            "description": "The beginning of the period of time for which delay data is requested (local time, format: YYYY-MM-DDTHH:mm).",
            "required": true,
            "schema": {
              "pattern": "\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2})?",
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "dateToLocal",
            "in": "path",
            "description": "The end of the period of time for which delay data is requested (local time, format: YYYY-MM-DDTHH:mm).",
            "required": true,
            "schema": {
              "pattern": "\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2})?",
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AirportDelayContract"
                  }
                }
              },
              "application/xml": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AirportDelayContract"
                  }
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 3",
            "position": "before",
            "color": "#ffb694"
          }
        ]
      }
    },
    "/airports/{codeType}/{code}/stats/routes/daily": {
      "get": {
        "tags": [
          "Statistical API"
        ],
        "summary": "Airport routes and daily flight destinations / TIER 3",
        "description": "**What are the most popular routes from an airport?** or **Where I can fly from an airport?** or \n**How many daily flights to different destinations from an airport?**\n\nThe data will only be available for airports which have at least schedules information available. \nIf the airport is also covered with live or ADS-B coverage, the quality will improve greatly as it will\nbe based on real data rather than on static scheduled data. To check if an airport is tracked and on which level, \nuse `/health/services/airports/{icao}/feeds` endpoint. You can also use `/health/services/feeds/{service}/airports` to get \nthe list of covered airports. \n\nAt the moment airports having both ICAO and IATA code and flight schedules are present available only.\n\n*Returns:* List of routes and daily flights amount departing from an airport.",
        "operationId": "GetRouteDailyStatistics_RoutesDailyCurrent",
        "parameters": [
          {
            "name": "codeType",
            "in": "path",
            "description": "Type of code to search airport by (`iata` or `icao`)",
            "schema": {
              "$ref": "#/components/schemas/AirportCodesByEnum"
            }
          },
          {
            "name": "code",
            "in": "path",
            "description": "If `codeType` is:\n* `icao`, then this field must be a 4-character ICAO-code of the airport (e.g.: EHAM, KLAX, UUEE, etc.);\n* `iata`, then this field must be a 3-character IATA-code of the airport (e.g.: AMS, SFO, LAX, etc.).\n\nFull, stripped and any case formats are acceptable.",
            "required": true,
            "schema": {
              "maxLength": 4,
              "minLength": 3,
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DailyRouteStatContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/DailyRouteStatContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 3",
            "position": "before",
            "color": "#ffb694"
          }
        ]
      }
    },
    "/airports/{codeType}/{code}/stats/routes/daily/{dateLocal}": {
      "get": {
        "tags": [
          "Statistical API"
        ],
        "summary": "Airport routes and daily flight destinations / TIER 3",
        "description": "**What are the most popular routes from an airport?** or **Where I can fly from an airport?** or \n**How many daily flights to different destinations from an airport?**\n\nThe data will only be available for airports which have at least schedules information available. \nIf the airport is also covered with live or ADS-B coverage, the quality will improve greatly as it will\nbe based on real data rather than on static scheduled data. To check if an airport is tracked and on which level, \nuse `/health/services/airports/{icao}/feeds` endpoint. You can also use `/health/services/feeds/{service}/airports` to get \nthe list of covered airports. \n\nAt the moment airports having both ICAO and IATA code and flight schedules are present available only.\n\n*Returns:* List of routes and daily flights amount departing from an airport.",
        "operationId": "GetRouteDailyStatistics_RoutesDailAtSpecificDate",
        "parameters": [
          {
            "name": "codeType",
            "in": "path",
            "description": "Type of code to search airport by (`iata` or `icao`)",
            "schema": {
              "$ref": "#/components/schemas/AirportCodesByEnum"
            }
          },
          {
            "name": "code",
            "in": "path",
            "description": "If `codeType` is:\n* `icao`, then this field must be a 4-character ICAO-code of the airport (e.g.: EHAM, KLAX, UUEE, etc.);\n* `iata`, then this field must be a 3-character IATA-code of the airport (e.g.: AMS, SFO, LAX, etc.).\n\nFull, stripped and any case formats are acceptable.",
            "required": true,
            "schema": {
              "maxLength": 4,
              "minLength": 3,
              "type": "string"
            }
          },
          {
            "name": "dateLocal",
            "in": "path",
            "description": "Local date at the airport (default = null).\nIf specified, returns statistics based on 7 days prior to the date specified.\nOtherwise, returns statistics based on 7 days prior to the current local date at the airport.",
            "required": true,
            "schema": {
              "pattern": "\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2})?",
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DailyRouteStatContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/DailyRouteStatContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 3",
            "position": "before",
            "color": "#ffb694"
          }
        ]
      }
    },
    "/airports/delays": {
      "get": {
        "tags": [
          "Statistical API"
        ],
        "summary": "Global delays (current or historical moment) / TIER 3",
        "description": "**What is the current or historical delay situation in all airports?** or **What is the delay index of all airports globally right now or at a moment in past?**\n\nPlease read more about airport delays on here: https://aerodatabox.com/api-airport-delays/\n\n*Returns*: Statistical delay information about delays (median delay, delay index, cancelled flights) of arrivals and departures for all known airports, represented by a collection of items sorted by \nthe average of arrival and departure index, descending order (from worst to best). Only qualifying and recent enough delay statistics records are returned.",
        "operationId": "GetGlobalDelays_GlobalDelaysCurent",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AirportDelayContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/AirportDelayContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 3",
            "position": "before",
            "color": "#ffb694"
          }
        ]
      }
    },
    "/airports/delays/{dateUtc}": {
      "get": {
        "tags": [
          "Statistical API"
        ],
        "summary": "Global delays (current or historical moment) / TIER 3",
        "description": "**What is the current or historical delay situation in all airports?** or **What is the delay index of all airports globally right now or at a moment in past?**\n\nPlease read more about airport delays on here: https://aerodatabox.com/api-airport-delays/\n\n*Returns*: Statistical delay information about delays (median delay, delay index, cancelled flights) of arrivals and departures for all known airports, represented by a collection of items sorted by \nthe average of arrival and departure index, descending order (from worst to best). Only qualifying and recent enough delay statistics records are returned.",
        "operationId": "GetGlobalDelays_GlobalDelaysAtSpecificDate",
        "parameters": [
          {
            "name": "dateUtc",
            "in": "path",
            "description": "The moment of time for / from which delay data is requested (UTC time, format: YYYY-MM-DDTHH:mm).\nDefault - current time.",
            "required": true,
            "schema": {
              "pattern": "\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2})?",
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AirportDelayContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/AirportDelayContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 3",
            "position": "before",
            "color": "#ffb694"
          }
        ]
      }
    },
    "/flights/{number}/delays": {
      "get": {
        "tags": [
          "Statistical API"
        ],
        "summary": "Flight delay statistics by flight number / TIER 3",
        "description": "**By how much the flight is delayed in average?**\n\nInformation is only available for flights which were tracked with live updates at least at origin or at destination within the last 90 days.\n\n*Returns:* delay statistics for the flight with specified number.",
        "operationId": "GetFlightDelays",
        "parameters": [
          {
            "name": "number",
            "in": "path",
            "description": "Flight number (with or without spaces, IATA or ICAO, any case formats are acceptable, e.g. KL1395, Klm 1395)",
            "required": true,
            "schema": {
              "maxLength": 8,
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "451": {
            "description": "Unavailable For Legal Reasons",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorContract"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlightLegDelayContract"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/FlightLegDelayContract"
                }
              }
            }
          }
        },
        "x-badges": [
          {
            "name": "TIER 3",
            "position": "before",
            "color": "#ffb694"
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "AircraftContract": {
        "required": [
          "active",
          "id",
          "isFreighter",
          "numRegistrations",
          "reg",
          "verified"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Unique ID of the aircraft record in our database",
            "format": "int64"
          },
          "reg": {
            "minLength": 1,
            "type": "string",
            "description": "Tail-number of the aircraft"
          },
          "active": {
            "type": "boolean",
            "description": "Indicator if aircraft is operational under this registration"
          },
          "serial": {
            "type": "string",
            "description": "Serial number",
            "nullable": true
          },
          "hexIcao": {
            "type": "string",
            "description": "ICAO 24 bit Mode-S hexadecimal transponder address",
            "nullable": true
          },
          "airlineName": {
            "type": "string",
            "description": "Name of the airline operating the aircraft",
            "nullable": true
          },
          "iataType": {
            "type": "string",
            "description": "IATA-type of the aircraft",
            "nullable": true
          },
          "iataCodeShort": {
            "type": "string",
            "description": "Short variant of IATA-code of the aircraft",
            "nullable": true
          },
          "icaoCode": {
            "type": "string",
            "description": "ICAO-code of the aircraft",
            "nullable": true
          },
          "model": {
            "type": "string",
            "description": "Model of the aircraft",
            "nullable": true
          },
          "modelCode": {
            "type": "string",
            "description": "Model code of the aircraft",
            "nullable": true
          },
          "numSeats": {
            "type": "integer",
            "description": "Number of passenger seats",
            "format": "int32",
            "nullable": true
          },
          "rolloutDate": {
            "type": "string",
            "description": "Date of roll-out (UTC)",
            "format": "date-time",
            "nullable": true
          },
          "firstFlightDate": {
            "type": "string",
            "description": "First flight date",
            "format": "date-time",
            "nullable": true
          },
          "deliveryDate": {
            "type": "string",
            "description": "Date of delivery to the owner",
            "format": "date-time",
            "nullable": true
          },
          "registrationDate": {
            "type": "string",
            "description": "Date of assigning current registration",
            "format": "date-time",
            "nullable": true
          },
          "typeName": {
            "type": "string",
            "description": "Type name",
            "nullable": true
          },
          "numEngines": {
            "type": "integer",
            "description": "Number of engines",
            "format": "int32",
            "nullable": true
          },
          "engineType": {
            "$ref": "#/components/schemas/EngineType"
          },
          "isFreighter": {
            "type": "boolean",
            "description": "Marker if aircraft is cargo or not"
          },
          "productionLine": {
            "type": "string",
            "description": "Production line",
            "nullable": true
          },
          "ageYears": {
            "type": "number",
            "description": "Age of the aircraft in year",
            "format": "float",
            "nullable": true
          },
          "verified": {
            "type": "boolean"
          },
          "image": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ResourceContract"
              }
            ],
            "description": "Image of the aircraft (if provided by the endpoint)"
          },
          "numRegistrations": {
            "type": "integer",
            "description": "An aircraft may have a history of past registrations with other airlines or operators.\nThis field represents a total number of registration records known in our database.",
            "format": "int32"
          },
          "registrations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AircraftRegistrationContract"
            },
            "description": "A history of all registrations with other airlines or operators (if provided by the endpoint).",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Single aircraft data"
      },
      "AircraftContractPagedCollectionContract": {
        "required": [
          "count",
          "hasNextPage",
          "items",
          "pageOffset",
          "pageSize",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "totalCount": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "description": "The total number of items across all pages",
            "format": "int32"
          },
          "pageOffset": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "description": "The offset of the current page of the collection \n(number of items skipped before this page)",
            "format": "int32"
          },
          "pageSize": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of items on the current page of the collection\n(`Count` cannot be more than this value)",
            "format": "int32"
          },
          "hasNextPage": {
            "type": "boolean",
            "description": "This value is true when collection has more pages",
            "readOnly": true
          },
          "count": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "description": "The number of items in the collection",
            "format": "int32",
            "readOnly": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AircraftContract"
            },
            "description": "The collection of items"
          }
        },
        "additionalProperties": false
      },
      "AircraftRegistrationContract": {
        "required": [
          "active",
          "reg"
        ],
        "type": "object",
        "properties": {
          "reg": {
            "minLength": 1,
            "type": "string",
            "description": "Tail-number of the aircraft"
          },
          "active": {
            "type": "boolean",
            "description": "Indicator if aircraft is operational under this registration"
          },
          "hexIcao": {
            "type": "string",
            "description": "ICAO 24 bit Mode-S hexadecimal transponder address",
            "nullable": true
          },
          "airlineName": {
            "type": "string",
            "description": "Name of the airline operating the aircraft",
            "nullable": true
          },
          "registrationDate": {
            "type": "string",
            "description": "Date of assigning current registration",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Aircraft registration data"
      },
      "AircraftSearchByEnum": {
        "enum": [
          "Id",
          "Reg",
          "Icao24"
        ],
        "type": "string",
        "description": "Criteria to search aircraft by<p>Possible values:</p>\n<ul>\n<li><b>0 - Id</b>: ID of the aircraft (as stored in this API)</li>\n<li><b>1 - Reg</b>: Search by aircraft tail-number</li>\n<li><b>2 - Icao24</b>: Search by 24-bit ICAO Mode-S Transponder code</li>\n</ul>\n"
      },
      "AirportCodesByEnum": {
        "enum": [
          "Icao",
          "Iata"
        ],
        "type": "string",
        "description": "Search by airport code type<p>Possible values:</p>\n<ul>\n<li><b>0 - Icao</b>: ICAO-code</li>\n<li><b>1 - Iata</b>: IATA-code</li>\n</ul>\n"
      },
      "AirportContract": {
        "required": [
          "continent",
          "country",
          "elevation",
          "fullName",
          "location",
          "timeZone",
          "urls"
        ],
        "type": "object",
        "properties": {
          "icao": {
            "type": "string",
            "description": "ICAO code of the airport",
            "nullable": true
          },
          "iata": {
            "type": "string",
            "description": "IATA code of the airport",
            "nullable": true
          },
          "localCode": {
            "type": "string",
            "description": "Code of the airport within the local or national coding system",
            "nullable": true
          },
          "shortName": {
            "type": "string",
            "description": "Shortened name of the airport",
            "nullable": true
          },
          "fullName": {
            "minLength": 1,
            "type": "string",
            "description": "Full name of the airport (derived from own airport name and municipality name)"
          },
          "municipalityName": {
            "type": "string",
            "description": "Name of the municipality this airport belongs to",
            "nullable": true
          },
          "location": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GeoCoordinatesContract"
              }
            ],
            "description": "Location of the airport"
          },
          "elevation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Distance"
              }
            ],
            "description": "Elevation of the airport"
          },
          "country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CountryContract"
              }
            ],
            "description": "Country airport belongs to"
          },
          "continent": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ContinentContract"
              }
            ],
            "description": "Continent airport belongs to"
          },
          "timeZone": {
            "minLength": 1,
            "type": "string",
            "description": "Time zone of the airport in Olson format (e.g. \"Europe/Amsterdam\")"
          },
          "urls": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AirportUrlsContract"
              }
            ],
            "description": "Links and URLs related to airport"
          },
          "runways": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RunwayContract"
            },
            "description": "List of runway information, if requested",
            "nullable": true
          },
          "currentTime": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AirportLocalTimeContract"
              }
            ],
            "description": "Current time information, if requested"
          }
        },
        "additionalProperties": false,
        "description": "Single airport data"
      },
      "AirportDelayContract": {
        "required": [
          "airportIcao",
          "arrivalsDelayInformation",
          "departuresDelayInformation",
          "from",
          "to"
        ],
        "type": "object",
        "properties": {
          "airportIcao": {
            "minLength": 1,
            "type": "string",
            "description": "Airport ICAO code"
          },
          "from": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTimeContract"
              }
            ],
            "description": "The beginning of the time range within which flght delay information is calculated"
          },
          "to": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTimeContract"
              }
            ],
            "description": "The end of the time range within which flght delay information is calculated"
          },
          "departuresDelayInformation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FlightBatchDelayContract"
              }
            ],
            "description": "Delay information about departures of the airport withn a time range"
          },
          "arrivalsDelayInformation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FlightBatchDelayContract"
              }
            ],
            "description": "Delay information about arrivals of the airport withn a time range"
          }
        },
        "additionalProperties": false
      },
      "AirportDistanceTimeContract": {
        "required": [
          "approxFlightTime",
          "from",
          "greatCircleDistance",
          "to"
        ],
        "type": "object",
        "properties": {
          "from": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ListingAirportContract"
              }
            ],
            "description": "Airport information"
          },
          "to": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ListingAirportContract"
              }
            ],
            "description": "Airport information"
          },
          "greatCircleDistance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Distance"
              }
            ],
            "description": "Great circle distance measured directly between origin and destination"
          },
          "approxFlightTime": {
            "type": "string",
            "description": "Approximate flight time based on re-calculation of great circle distance\nagainst statistical duration average of multiple flights covered similar\ndistance before.",
            "format": "date-span"
          }
        },
        "additionalProperties": false,
        "description": "Contract containing information on distance and approximate flight time\nbetween specified airports"
      },
      "AirportFeedServiceStatusContract": {
        "required": [
          "adsbUpdatesFeed",
          "flightSchedulesFeed",
          "generalAvailability",
          "liveFlightUpdatesFeed"
        ],
        "type": "object",
        "properties": {
          "flightSchedulesFeed": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FeedServiceStatusContract"
              }
            ],
            "description": "Status of flight schedules data feed for this airport. This includes: * flight number * airline * planned (scheduled) time of departure/arrival * destination/origin This *may* include: * planned aircraft type * code-share status (rare)"
          },
          "liveFlightUpdatesFeed": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FeedServiceStatusContract"
              }
            ],
            "description": "Status of actual live flight updates for this airport. Updates include: * revised scheduled time of departure/arrival * actual/estimated time of departure/arrival * actual/estimated status Updates *may* include: * revised aircraft type * code-share status * terminal * gate * check-in desk * baggage claim * aircraft registration (rare) * if flight is cargo marker (rare) * ATC call-sign (rare) * actual/estimated runway time (rare)"
          },
          "adsbUpdatesFeed": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FeedServiceStatusContract"
              }
            ],
            "description": "Status of ADS-B updates data feed for this airport. Updates include: * ATC call-sign * aircraft registration * aircraft 24-bit ICAO Mode-S address * revised aircraft type Updates *may* include: * actual/estimated runway of take-off/landing (based on the last known trajectory) * actual/estimated time of take-off/landing (based on the last known trajectory) * revised actual/estimated time of departure/arrival (based on the last known trajectory)"
          },
          "generalAvailability": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FlightDataGeneralAvailabilityContract"
              }
            ],
            "description": "General information about available flight data"
          }
        },
        "additionalProperties": false,
        "description": "Airport data feed services status.\nRead https://aerodatabox.com/data-coverage for context."
      },
      "AirportFidsContract": {
        "type": "object",
        "properties": {
          "departures": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AirportFlightContract"
            },
            "description": "Departing flights",
            "nullable": true
          },
          "arrivals": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AirportFlightContract"
            },
            "description": "Arriving flights",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Airport schedule contract"
      },
      "AirportFlightContract": {
        "required": [
          "codeshareStatus",
          "isCargo",
          "number",
          "status"
        ],
        "type": "object",
        "properties": {
          "movement": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FlightAirportMovementContract"
              }
            ],
            "description": "Only set if neither Departure nor Arrival is set. Flight information relevant applicable to current airport: airport of destination for arriving flight or origin for departing flight. Airport sub-property, however, stands for \"opposite\" airport in the route: airport of destination for departing flight or origin for arriving flight."
          },
          "departure": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FlightAirportMovementContract"
              }
            ],
            "description": "Only set if Movement is not set. Flight information relevant to airport of origin. Airport sub-property stands for airport of origin as well unless it's equal to current requested airport. Otherwise, not set."
          },
          "arrival": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FlightAirportMovementContract"
              }
            ],
            "description": "Only set if Movement is not set. Flight information relevant to airport of destination. Airport sub-property stands for airport of destination as well unless it's equal to current requested airport. Otherwise, not set."
          },
          "number": {
            "minLength": 1,
            "type": "string",
            "description": "Flight Number"
          },
          "callSign": {
            "type": "string",
            "description": "ATC call-sign of the flight",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/FlightStatus"
          },
          "codeshareStatus": {
            "$ref": "#/components/schemas/CodeshareStatus"
          },
          "isCargo": {
            "type": "boolean",
            "description": "Is cargo flight"
          },
          "aircraft": {
            "$ref": "#/components/schemas/FlightAircraftContract"
          },
          "airline": {
            "$ref": "#/components/schemas/FlightAirlineContract"
          },
          "location": {
            "$ref": "#/components/schemas/FlightLocationContract"
          }
        },
        "additionalProperties": false,
        "description": "Flight data contract represented in airport schedule"
      },
      "AirportLocalTimeContract": {
        "required": [
          "time",
          "timeZoneId"
        ],
        "type": "object",
        "properties": {
          "time": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTimeContract"
              }
            ],
            "description": "Current time at the airport"
          },
          "timeZoneId": {
            "minLength": 1,
            "type": "string",
            "description": "Timezone ID of the airport (Olson format)"
          }
        },
        "additionalProperties": false,
        "description": "Information about the local time at an airport"
      },
      "AirportUrlsContract": {
        "type": "object",
        "properties": {
          "webSite": {
            "type": "string",
            "description": "Main web-site of the airport",
            "nullable": true
          },
          "wikipedia": {
            "type": "string",
            "description": "Wikipedia page of the airport",
            "nullable": true
          },
          "twitter": {
            "type": "string",
            "description": "Twitter feed of the airport",
            "nullable": true
          },
          "liveAtc": {
            "type": "string",
            "description": "LiveAtc page of the airport",
            "nullable": true
          },
          "flightRadar": {
            "type": "string",
            "description": "FlightRadar page of the airport",
            "nullable": true
          },
          "googleMaps": {
            "type": "string",
            "description": "Google Maps URL of the airport",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Airport URLs contract"
      },
      "Angle": {
        "required": [
          "deg",
          "rad"
        ],
        "type": "object",
        "properties": {
          "deg": {
            "maximum": 180,
            "minimum": -180,
            "type": "number",
            "description": "Angle in degrees (between `-180` and `180`)",
            "format": "double"
          },
          "rad": {
            "maximum": 3.141592653589793,
            "minimum": -3.141592653589793,
            "type": "number",
            "description": "Angle in radians (between `-Pi` and `Pi`)",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Azimuth": {
        "required": [
          "deg",
          "rad"
        ],
        "type": "object",
        "properties": {
          "deg": {
            "maximum": 360,
            "minimum": 0,
            "type": "number",
            "description": "Angle in degrees (between `0` and `360`)",
            "format": "double"
          },
          "rad": {
            "maximum": 6.283185307179586,
            "minimum": 0,
            "type": "number",
            "description": "Angle in radians (`0` and `2 * Pi`)",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "CodeshareStatus": {
        "enum": [
          "Unknown",
          "IsOperator",
          "IsCodeshared"
        ],
        "type": "string",
        "description": "Flight code-share status<p>Possible values:</p>\n<ul>\n<li><b>0 - Unknown</b>: Code-sharing information is unavailable for this flight. Flight might be operated both by airline owning the flight number as well as by another airliner.</li>\n<li><b>1 - IsOperator</b>: Flight is operated by an airline owning the flight number (the same code)</li>\n<li><b>2 - IsCodeshared</b>: Flight is code-shared (operated by an airline other than airline owning the flight number)</li>\n</ul>\n"
      },
      "ContinentContract": {
        "required": [
          "code"
        ],
        "type": "object",
        "properties": {
          "code": {
            "minLength": 1,
            "type": "string",
            "description": "Code"
          },
          "name": {
            "type": "string",
            "description": "Name",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Continent data"
      },
      "CountryContract": {
        "required": [
          "code"
        ],
        "type": "object",
        "properties": {
          "code": {
            "minLength": 1,
            "type": "string",
            "description": "Code"
          },
          "name": {
            "type": "string",
            "description": "Name",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Country data"
      },
      "CreateWebHookSubscription": {
        "required": [
          "url"
        ],
        "type": "object",
        "properties": {
          "url": {
            "minLength": 1,
            "type": "string",
            "description": "Destination HTTP-endpoint where notifications will be sent to. Requirements:\n* must be a valid public HTTP(S) URL not requiring additional authorization;\n* must use standard or alternative HTTP or HTTPS ports (80, 443, 8008, 8080) or any dynamic port greater or equal to 49152;\n* must be able to accept HTTP POST request with JSON-formatted body (application/json);\n* must respond with one of successful HTTP status codes (2XX) within 10 seconds;\n* the endpoint owner must be aware of and consent to receiving notifications at it.\n\nIf endpoint is unavailable, responds with error status code or does not respond within timeout,\nnotification delivery retry may be attempted according to subscription settings."
          },
          "maxDeliveryRetries": {
            "maximum": 2,
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of times a delivery attempt is retried after initial delivery attempt failure.\n\nCurrent default value is:\n\n\t* `2` for the old, lifetime-based web-hook subscriptions (will be phased out after the 4th of April, 2026);\n\t* `0` for the new, credit-based web-hook subscriptions (will be the default value for any web-hook subscription after the 4th of April, 2026).",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Command to create web-hook subscription"
      },
      "DailyRouteStatContract": {
        "required": [
          "routes"
        ],
        "type": "object",
        "properties": {
          "routes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DailyRouteStatRecordContract"
            }
          }
        },
        "additionalProperties": false,
        "description": "Route daily statistics of the airport"
      },
      "DailyRouteStatRecordContract": {
        "required": [
          "averageDailyFlights",
          "destination",
          "operators"
        ],
        "type": "object",
        "properties": {
          "destination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ListingAirportContract"
              }
            ],
            "description": "Destination airport information"
          },
          "averageDailyFlights": {
            "type": "number",
            "description": "Daily average of flights per destination",
            "format": "float"
          },
          "operators": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlightAirlineContract"
            },
            "description": "Airlines operating on the route"
          }
        },
        "additionalProperties": false,
        "description": "Statistical record of route daily statistics"
      },
      "DateTimeContract": {
        "required": [
          "local",
          "utc"
        ],
        "type": "object",
        "properties": {
          "utc": {
            "type": "string",
            "description": "UTC-time",
            "format": "date-time"
          },
          "local": {
            "type": "string",
            "description": "Local time",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Descriptor date-time represented in both UTC and local timezones"
      },
      "DayTime": {
        "enum": [
          "Night",
          "TwilightAstronomical",
          "TwilightNautical",
          "TwilightCivil",
          "Day",
          "BlueHour",
          "GoldenHour"
        ],
        "type": "string",
        "description": "Daytime states<p>Possible values:</p>\n<ul>\n<li><b>0 - Night</b></li>\n<li><b>1 - TwilightAstronomical</b></li>\n<li><b>2 - TwilightNautical</b></li>\n<li><b>3 - TwilightCivil</b></li>\n<li><b>4 - Day</b></li>\n<li><b>5 - BlueHour</b></li>\n<li><b>6 - GoldenHour</b></li>\n</ul>\n"
      },
      "DelayBracketContract": {
        "required": [
          "num"
        ],
        "type": "object",
        "properties": {
          "delayedFrom": {
            "type": "string",
            "description": "The beginning of the delay range (format: [-]hh:mm:ss).\nE.g. in the expresssion \"delayed from 30 to 60 minutes\" stands for \"from 30 minutes\".\nValue can be negative (therefore, means early occurence).\n\nMust be preset if \"DelayedTo\" is not specified.",
            "format": "date-span",
            "nullable": true
          },
          "delayedTo": {
            "type": "string",
            "description": "The end of the delay range (format: [-]hh:mm:ss).\nE.g. in the expresssion \"delayed from 30 to 60 minutes\" stands for \"to 60 minutes\".\nValue can be negative (therefore, means early occurence).\n\nMust be preset if \"DelayedFrom\" is not specified.",
            "format": "date-span",
            "nullable": true
          },
          "num": {
            "type": "integer",
            "description": "Count of records subject to a specified delay range",
            "format": "int32"
          },
          "percentage": {
            "type": "number",
            "description": "Percentage of records subject to a specified delay range.\n\nOnly available when this delay bracket is provided as a part\nof a statistical information of a bigger context and the \"total\"\ncount of records is known.",
            "format": "float",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Delay bracket contract describing how many records are subject to a specific delay range"
      },
      "Distance": {
        "required": [
          "feet",
          "km",
          "meter",
          "mile",
          "nm"
        ],
        "type": "object",
        "properties": {
          "meter": {
            "type": "number",
            "description": "Distance in meters",
            "format": "double"
          },
          "km": {
            "type": "number",
            "description": "Distance in kilometers",
            "format": "double"
          },
          "mile": {
            "type": "number",
            "description": "Distance in statute miles",
            "format": "double"
          },
          "nm": {
            "type": "number",
            "description": "Distance in nautical miles",
            "format": "double"
          },
          "feet": {
            "type": "number",
            "description": "Distance in feet",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "DistanceFlightPlanUnitContract": {
        "type": "object",
        "properties": {
          "requested": {
            "$ref": "#/components/schemas/Distance"
          },
          "assigned": {
            "$ref": "#/components/schemas/Distance"
          }
        },
        "additionalProperties": false,
        "description": "Contract describing unit (altitude, airspeed, etc.) which can be assigned and / or requested\nin the context of the flight plan"
      },
      "EngineType": {
        "enum": [
          "Unknown",
          "Jet",
          "Turboprop",
          "Piston"
        ],
        "type": "string",
        "description": "<p>Possible values:</p>\n<ul>\n<li><b>0 - Unknown</b></li>\n<li><b>1 - Jet</b></li>\n<li><b>2 - Turboprop</b></li>\n<li><b>3 - Piston</b></li>\n</ul>\n"
      },
      "ErrorContract": {
        "required": [
          "message"
        ],
        "type": "object",
        "properties": {
          "message": {
            "minLength": 1,
            "type": "string",
            "description": "Error message"
          }
        },
        "additionalProperties": false,
        "description": "Error response"
      },
      "FaaLaddAircraftStatusContract": {
        "required": [
          "id",
          "isBlocked"
        ],
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AviationCode"
              }
            ],
            "description": "ID of the aircraft / flight checked (callsign or aircraft tail number). Trimmed, without hyphens."
          },
          "isBlocked": {
            "type": "boolean",
            "description": "Current status of the aircraft / flight in the FAA LADD industry list."
          },
          "blockedSince": {
            "type": "string",
            "description": "For blocked aircraft only: the date when the aircraft / flight was blocked.\nWill not be included for blocked dates at or prior to September 15, 2024.",
            "format": "date-time",
            "nullable": true
          },
          "lastBlockedOn": {
            "type": "string",
            "description": "For unblocked aircraft only: the date when the aircraft / flight was last blocked.\nWill not be included for blocked dates at or prior to September 15, 2024 or \nfor the aircraft that were never blocked.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Status of the aircraft tail number or callsign in the FAA Limiting Aircraft Data Displayed (LADD) Program list.\nSee https://www.faa.gov/pilots/ladd for more details."
      },
      "FeedServiceEnum": {
        "enum": [
          "FlightSchedules",
          "FlightLiveUpdates",
          "AdsbUpdates"
        ],
        "type": "string",
        "description": "Airport feed service defininitions<p>Possible values:</p>\n<ul>\n<li><b>0 - FlightSchedules</b>: Flight schedules data feed for this airport (static schedules data without actual updates)</li>\n<li><b>1 - FlightLiveUpdates</b>: Actual flight status and time updates for this airport</li>\n<li><b>2 - AdsbUpdates</b>: Flight updates derived from ADS-B data for this airport: runway, actual/estimated time on the runway, call-sign, ModeS 24-bit ICAO code, aircraft registration</li>\n</ul>\n"
      },
      "FeedServiceStatus": {
        "enum": [
          "Down",
          "Degraded",
          "OKPartial",
          "OK",
          "Unknown",
          "Unavailable"
        ],
        "type": "string",
        "description": "Descriptor of feed service status<p>Possible values:</p>\n<ul>\n<li><b>0 - Down</b>: Service is provided, but is currently down</li>\n<li><b>1 - Degraded</b>: Service is up and running, but performance is degraded: delays and disruptions are likely</li>\n<li><b>2 - OKPartial</b>: Service is up and running normally, but updates vailable for not all or only few flights</li>\n<li><b>3 - OK</b>: Service is up and running normally</li>\n<li><b>-2 - Unknown</b>: Status of service is unknown</li>\n<li><b>-1 - Unavailable</b>: Service is not provided</li>\n</ul>\n"
      },
      "FeedServiceStatusContract": {
        "required": [
          "service",
          "status"
        ],
        "type": "object",
        "properties": {
          "service": {
            "$ref": "#/components/schemas/FeedServiceEnum"
          },
          "status": {
            "$ref": "#/components/schemas/FeedServiceStatus"
          },
          "minAvailableLocalDate": {
            "type": "string",
            "description": "Date of the oldest flight stored (based on scheduled local times)",
            "format": "date-time",
            "nullable": true,
            "deprecated": true
          },
          "maxAvailableLocalDate": {
            "type": "string",
            "description": "Date of the most recent flight stored (based on scheduled local times)",
            "format": "date-time",
            "nullable": true,
            "deprecated": true
          }
        },
        "additionalProperties": false,
        "description": "Feed service status contract.\nRead https://aerodatabox.com/data-coverage for context."
      },
      "FlightAircraftContract": {
        "type": "object",
        "properties": {
          "reg": {
            "type": "string",
            "description": "Tail-number of the aircraft",
            "nullable": true
          },
          "modeS": {
            "type": "string",
            "description": "ICAO 24 bit Mode-S hexadecimal transponder address",
            "nullable": true
          },
          "model": {
            "type": "string",
            "description": "Aircraft name and model",
            "nullable": true
          },
          "image": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ResourceContract"
              }
            ],
            "description": "Aircraft photo. Either actual (possible if aircraft registration is provided) or approximate based on airline name and model combination. Image data with medium-sized direct image URL and licence approved for commercial use is returned."
          }
        },
        "additionalProperties": false,
        "description": "Flight's aircraft reference contract"
      },
      "FlightAirlineContract": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Airline name"
          },
          "iata": {
            "type": "string",
            "description": "IATA code of the airline",
            "nullable": true
          },
          "icao": {
            "type": "string",
            "description": "ICAO code of the airline",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Flight's airline reference conract"
      },
      "FlightAirportMovementContract": {
        "required": [
          "airport",
          "quality"
        ],
        "type": "object",
        "properties": {
          "airport": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ListingAirportContract"
              }
            ],
            "description": "Airport information"
          },
          "scheduledTime": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTimeContract"
              }
            ],
            "description": "Scheduled time of arrival or departure of the flight"
          },
          "revisedTime": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTimeContract"
              }
            ],
            "description": "Actual /estimated time of arrival or departure the flight. If `RunwayTime` is specified and not equal to this field, this field stands for the time of departure/arrival to the gate. Otherwise, it may either be time at the gate or on the runway."
          },
          "predictedTime": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTimeContract"
              }
            ],
            "description": "Predicted time based on historical data (experimental). May significantly differ from `RevisedTime`. Only available for non-complete or unknown-status flights arriving, departing within a week and only via Flight Status endpoint. For arriving flights: Predicted time of arrival based on departure time. Not available if departure times are unavailable. For departing flights: Predicted time of departure based on arrival time. Only available if departure times are unavailable."
          },
          "runwayTime": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTimeContract"
              }
            ],
            "description": "Actual / estimated time on the runway: landing time for arriving flight; take-off time for the departing flight, if known."
          },
          "terminal": {
            "type": "string",
            "description": "Terminal of the flight",
            "nullable": true
          },
          "checkInDesk": {
            "type": "string",
            "description": "Check-in desk(s) for the flight (only for departing flights)",
            "nullable": true
          },
          "gate": {
            "type": "string",
            "description": "Gate of (de)boarding for the flight",
            "nullable": true
          },
          "baggageBelt": {
            "type": "string",
            "description": "Baggage belt(s) for the flight (only for arriving flights)",
            "nullable": true
          },
          "runway": {
            "type": "string",
            "description": "Runway of landing (for arriving flights) or take-off (for departing flights), if known.",
            "nullable": true
          },
          "quality": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlightAirportMovementQualityEnum"
            },
            "description": "Array of quality characteristics of the data. Check this to know which information\nyou can expect within this contract (basic, live and/or approximate data)."
          }
        },
        "additionalProperties": false,
        "description": "Flight arrival or departure information"
      },
      "FlightAirportMovementQualityEnum": {
        "enum": [
          "Basic",
          "Live",
          "Approximate"
        ],
        "type": "string",
        "description": "Quality characteristics of the information provided within flight FlightAirportMovementContract<p>Possible values:</p>\n<ul>\n<li><b>0 - Basic</b></li>\n<li><b>1 - Live</b></li>\n<li><b>2 - Approximate</b></li>\n</ul>\n"
      },
      "FlightBatchDelayContract": {
        "required": [
          "numCancelled",
          "numQualifiedTotal",
          "numTotal"
        ],
        "type": "object",
        "properties": {
          "numTotal": {
            "type": "integer",
            "description": "Total number of flights in the the batch (including cancelled)",
            "format": "int32"
          },
          "numQualifiedTotal": {
            "type": "integer",
            "description": "Total number of flights in the batch, which were used to to calculate the\ndelay information (including cancelled). Should equal to or less than `NumTotal`.\n\nThe closer the value of this property to the value of `NumTotal`, the higher the\nreliability of delay information",
            "format": "int32"
          },
          "numCancelled": {
            "type": "integer",
            "description": "Total amount of flights in the batch",
            "format": "int32"
          },
          "medianDelay": {
            "type": "string",
            "description": "Median delay of flights in the batch (format: [-]hh:mm:ss).\nValue can be negative (therefore, means early occurence).",
            "format": "date-span",
            "nullable": true
          },
          "delayIndex": {
            "type": "number",
            "description": "Normalized value on scale from 0.0 to 5.0 which corresponds with current amount of delays and cancellations in a given batch of flights (the less - the better).",
            "format": "float",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Delay information about a batch of flights"
      },
      "FlightContract": {
        "required": [
          "arrival",
          "codeshareStatus",
          "departure",
          "isCargo",
          "lastUpdatedUtc",
          "number",
          "status"
        ],
        "type": "object",
        "properties": {
          "greatCircleDistance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Distance"
              }
            ],
            "description": "Great circle distance measured directly between origin and destination of the flight (if both are known)"
          },
          "departure": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FlightAirportMovementContract"
              }
            ],
            "description": "Departure information"
          },
          "arrival": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FlightAirportMovementContract"
              }
            ],
            "description": "Arrival information"
          },
          "flightPlan": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FlightPlanContract"
              }
            ],
            "description": "Flight plan for the flight as filed with the ATC provider. NOTE: General availability is currently limited to flights departing from, arriving to or crossing the mainland U.S. airspace."
          },
          "lastUpdatedUtc": {
            "type": "string",
            "description": "Time (UTC) of the latest update of flight information (excluding Location)",
            "format": "date-time"
          },
          "number": {
            "minLength": 1,
            "type": "string",
            "description": "Flight Number"
          },
          "callSign": {
            "type": "string",
            "description": "ATC call-sign of the flight",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/FlightStatus"
          },
          "codeshareStatus": {
            "$ref": "#/components/schemas/CodeshareStatus"
          },
          "isCargo": {
            "type": "boolean",
            "description": "Is cargo flight"
          },
          "aircraft": {
            "$ref": "#/components/schemas/FlightAircraftContract"
          },
          "airline": {
            "$ref": "#/components/schemas/FlightAirlineContract"
          },
          "location": {
            "$ref": "#/components/schemas/FlightLocationContract"
          }
        },
        "additionalProperties": false,
        "description": "Individiual flight contract"
      },
      "FlightDataGeneralAvailabilityContract": {
        "type": "object",
        "properties": {
          "minAvailableLocalDate": {
            "type": "string",
            "description": "Date of the oldest flight stored (based on scheduled local times)\nIf not specified, no flight data available",
            "format": "date-time",
            "nullable": true
          },
          "maxAvailableLocalDate": {
            "type": "string",
            "description": "Date of the most recent flight stored (based on scheduled local times)\nIf not specified, no flight data available",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FlightDelayContract": {
        "required": [
          "airportIcao",
          "class",
          "delayPercentiles",
          "fromUtc",
          "medianDelay",
          "numConsideredFlights",
          "numFlightsDelayedBrackets",
          "toUtc"
        ],
        "type": "object",
        "properties": {
          "airportIcao": {
            "minLength": 1,
            "type": "string",
            "description": "ICAO code of the airport at which statistics is observed"
          },
          "class": {
            "$ref": "#/components/schemas/StatisticClass"
          },
          "scheduledHourUtc": {
            "type": "integer",
            "description": "Hour on which flight is scheduled (represented in UTC).\n\nIf provided, it separates the statistics for the same flight departing/arriving at different time of day\non different days within the observed period.",
            "format": "int32",
            "nullable": true
          },
          "medianDelay": {
            "type": "string",
            "description": "Median historic delay of the flight (format: [-]hh:mm:ss).\nValue can be negative (therefore, means early occurence).",
            "format": "date-span"
          },
          "delayPercentiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PercentileBracketContract"
            },
            "description": "Distribution of historic delays of the flight in percentiles from 5 percentile to 95 percentile in steps of 5 percentile, \nallowing for a more detailed analysis of delay patterns beyond simple averages or medians."
          },
          "numConsideredFlights": {
            "type": "integer",
            "description": "The number of flight movements taken into account to calculate this\nstatistics.",
            "format": "int32"
          },
          "numFlightsDelayedBrackets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DelayBracketContract"
            },
            "description": "Brackets containing information more detailed information about\nhow many flights were delayed/early per specific delay range brackets\n(e.g. late from 15 to 30 minutes, from 30 to 60, etc.)"
          },
          "fromUtc": {
            "type": "string",
            "description": "The beginning of the time range within which flght delay information is calculated (represented in UTC time)",
            "format": "date-time"
          },
          "toUtc": {
            "type": "string",
            "description": "The end of the time range within which flght delay information is calculated (represented in UTC time)",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Delay statistics for a flight movement"
      },
      "FlightDirection": {
        "enum": [
          "Arrival",
          "Departure",
          "Both"
        ],
        "type": "string",
        "description": "Direction of flight<p>Possible values:</p>\n<ul>\n<li><b>1 - Arrival</b></li>\n<li><b>2 - Departure</b></li>\n<li><b>3 - Both</b></li>\n</ul>\n"
      },
      "FlightLegDelayContract": {
        "required": [
          "number"
        ],
        "type": "object",
        "properties": {
          "number": {
            "minLength": 1,
            "type": "string",
            "description": "Flight number"
          },
          "origins": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlightDelayContract"
            },
            "description": "Delay statistics of flight on departure at origins",
            "nullable": true
          },
          "destinations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlightDelayContract"
            },
            "description": "Delay statistics of flight on arrival at destinations",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Delay statistics of a flight leg"
      },
      "FlightLocationContract": {
        "required": [
          "altitude",
          "groundSpeed",
          "lat",
          "lon",
          "pressure",
          "pressureAltitude",
          "reportedAtUtc",
          "trueTrack"
        ],
        "type": "object",
        "properties": {
          "pressureAltitude": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Distance"
              }
            ],
            "description": "Pressure altitude adjusted to ISA"
          },
          "altitude": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Distance"
              }
            ],
            "description": "Altitude adjusted to pressure setting (QNH) Gives approximately the altitude above mean sea level (MSL)"
          },
          "pressure": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pressure"
              }
            ],
            "description": "Pressure setting (QNH) used to calculate altitude from pressure altitude"
          },
          "groundSpeed": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Speed"
              }
            ],
            "description": "Ground speed"
          },
          "trueTrack": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Azimuth"
              }
            ],
            "description": "True track"
          },
          "vsiFpm": {
            "type": "integer",
            "description": "Vertical speed, in feet per minute\nNot set if unknown or zero.",
            "format": "int32",
            "nullable": true
          },
          "reportedAtUtc": {
            "type": "string",
            "description": "Time (UTC) of when this positional data was reported",
            "format": "date-time"
          },
          "lat": {
            "maximum": 90,
            "minimum": -90,
            "type": "number",
            "description": "Latitude, in degrees",
            "format": "float"
          },
          "lon": {
            "maximum": 180,
            "minimum": -180,
            "type": "number",
            "description": "Longitude, in degrees",
            "format": "float"
          }
        },
        "additionalProperties": false,
        "description": "Positional information about flight: location, altitude, speed and track"
      },
      "FlightNotificationContract": {
        "required": [
          "flights",
          "subscription"
        ],
        "type": "object",
        "properties": {
          "flights": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlightNotificationItemContract"
            },
            "description": "Modified/created flight notification"
          },
          "subscription": {
            "$ref": "#/components/schemas/SubscriptionContract"
          },
          "balance": {
            "$ref": "#/components/schemas/SubscriptionBalanceContract"
          }
        },
        "additionalProperties": false,
        "description": "Flight notification contract"
      },
      "FlightNotificationItemContract": {
        "required": [
          "arrival",
          "codeshareStatus",
          "departure",
          "isCargo",
          "lastUpdatedUtc",
          "number",
          "status"
        ],
        "type": "object",
        "properties": {
          "notificationSummary": {
            "type": "string",
            "description": "Human-readable summary of the flight status update",
            "nullable": true
          },
          "notificationRemark": {
            "type": "string",
            "description": "Human-readable remark to the flight status update",
            "nullable": true
          },
          "greatCircleDistance": {
            "$ref": "#/components/schemas/Distance"
          },
          "departure": {
            "$ref": "#/components/schemas/FlightAirportMovementContract"
          },
          "arrival": {
            "$ref": "#/components/schemas/FlightAirportMovementContract"
          },
          "flightPlan": {
            "$ref": "#/components/schemas/FlightPlanContract"
          },
          "lastUpdatedUtc": {
            "type": "string",
            "description": "Time (UTC) of the latest update of flight information (excluding Location)",
            "format": "date-time"
          },
          "number": {
            "minLength": 1,
            "type": "string",
            "description": "Flight Number"
          },
          "callSign": {
            "type": "string",
            "description": "ATC call-sign of the flight",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/FlightStatus"
          },
          "codeshareStatus": {
            "$ref": "#/components/schemas/CodeshareStatus"
          },
          "isCargo": {
            "type": "boolean",
            "description": "Is cargo flight"
          },
          "aircraft": {
            "$ref": "#/components/schemas/FlightAircraftContract"
          },
          "airline": {
            "$ref": "#/components/schemas/FlightAirlineContract"
          },
          "location": {
            "$ref": "#/components/schemas/FlightLocationContract"
          }
        },
        "additionalProperties": false,
        "description": "Flight notification message contract"
      },
      "FlightPlanContract": {
        "required": [
          "lastUpdatedUtc",
          "route"
        ],
        "type": "object",
        "properties": {
          "flightRules": {
            "$ref": "#/components/schemas/FlightRules"
          },
          "flightType": {
            "$ref": "#/components/schemas/FlightType"
          },
          "revisionNo": {
            "type": "integer",
            "description": "No. of revision of the flight plan",
            "format": "int32",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/FlightPlanStatus"
          },
          "route": {
            "minLength": 1,
            "type": "string",
            "description": "Route information for the flight as filed in the flight plan"
          },
          "altitude": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DistanceFlightPlanUnitContract"
              }
            ],
            "description": "Altitudes of the flight as filed in the flight plan and/or assigned by the ATC"
          },
          "airspeed": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SpeedFlightPlanUnitContract"
              }
            ],
            "description": "Airspeed of the flight as filed in the flight plan and/or assigned by the ATC"
          },
          "lastUpdatedUtc": {
            "type": "string",
            "description": "Time (UTC) of the latest known update to the flight plan",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Flight plan contract"
      },
      "FlightPlanStatus": {
        "enum": [
          "Proposed",
          "Active",
          "Dropped",
          "Cancelled",
          "Completed"
        ],
        "type": "string"
      },
      "FlightRules": {
        "enum": [
          "IFR",
          "VFR"
        ],
        "type": "string"
      },
      "FlightSearchByEnum": {
        "enum": [
          "Number",
          "Reg",
          "CallSign",
          "Icao24"
        ],
        "type": "string",
        "description": "Criteria to search flight by<p>Possible values:</p>\n<ul>\n<li><b>0 - Number</b>: Search by flight number</li>\n<li><b>1 - Reg</b>: Search by aircraft registration</li>\n<li><b>2 - CallSign</b>: Search by ATC call-sign</li>\n<li><b>3 - Icao24</b>: Search by 24-bit ICAO Mode-S Transponder code</li>\n</ul>\n"
      },
      "FlightSearchItemContract": {
        "required": [
          "number"
        ],
        "type": "object",
        "properties": {
          "number": {
            "minLength": 1,
            "type": "string",
            "description": "Found flight number."
          }
        },
        "additionalProperties": false,
        "description": "Flight record found in the search result."
      },
      "FlightStatus": {
        "enum": [
          "Unknown",
          "Expected",
          "EnRoute",
          "CheckIn",
          "Boarding",
          "GateClosed",
          "Departed",
          "Delayed",
          "Approaching",
          "Arrived",
          "Canceled",
          "Diverted",
          "CanceledUncertain"
        ],
        "type": "string",
        "description": "Flight progress status<p>Possible values:</p>\n<ul>\n<li><b>0 - Unknown</b>: Status is not available for this flight</li>\n<li><b>1 - Expected</b>: Expected</li>\n<li><b>2 - EnRoute</b>: En route</li>\n<li><b>3 - CheckIn</b>: Check-in is open</li>\n<li><b>4 - Boarding</b>: Boarding in progress / Last call</li>\n<li><b>5 - GateClosed</b>: Gate closed</li>\n<li><b>6 - Departed</b>: Departed</li>\n<li><b>7 - Delayed</b>: Delayed</li>\n<li><b>8 - Approaching</b>: On approach to destination</li>\n<li><b>9 - Arrived</b>: Arrived</li>\n<li><b>10 - Canceled</b>: Cancelled</li>\n<li><b>11 - Diverted</b>: Diverted to another destination</li>\n<li><b>12 - CanceledUncertain</b>: Status of the flight is uncertain, may be cancelled</li>\n</ul>\n"
      },
      "FlightType": {
        "enum": [
          "Other",
          "General",
          "Scheduled",
          "NonScheduled",
          "Military"
        ],
        "type": "string"
      },
      "GeoCoordinatesContract": {
        "required": [
          "lat",
          "lon"
        ],
        "type": "object",
        "properties": {
          "lat": {
            "maximum": 90,
            "minimum": -90,
            "type": "number",
            "description": "Latitude, in degrees",
            "format": "float"
          },
          "lon": {
            "maximum": 180,
            "minimum": -180,
            "type": "number",
            "description": "Longitude, in degrees",
            "format": "float"
          }
        },
        "additionalProperties": false,
        "description": "Geographical coordinates data"
      },
      "GeoCoordinatesContractListingAirportContractSearchResultCollectionContract": {
        "required": [
          "count",
          "items",
          "searchBy"
        ],
        "type": "object",
        "properties": {
          "searchBy": {
            "$ref": "#/components/schemas/GeoCoordinatesContract"
          },
          "count": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "description": "The number of items in the collection",
            "format": "int32",
            "readOnly": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingAirportContract"
            },
            "description": "The collection of items"
          }
        },
        "additionalProperties": false
      },
      "LicenseType": {
        "enum": [
          "AllRightsReserved",
          "AttributionNoncommercialShareAlikeCC",
          "AttributionNoncommercialCC",
          "AttributionNoncommercialNoDerivativesCC",
          "AttributionCC",
          "AttributionShareAlikeCC",
          "AttributionNoDerivativesCC",
          "NoKnownCopyrightRestrictions",
          "UnitedStatesGovernmentWork",
          "PublicDomainDedicationCC0",
          "PublicDomainMark"
        ],
        "type": "string",
        "description": "<p>Possible values:</p>\n<ul>\n<li><b>0 - AllRightsReserved</b>: All Rights Reserved.</li>\n<li><b>1 - AttributionNoncommercialShareAlikeCC</b>: Creative Commons: Attribution Non-Commercial, Share-alike License.</li>\n<li><b>2 - AttributionNoncommercialCC</b>: Creative Commons: Attribution Non-Commercial License.</li>\n<li><b>3 - AttributionNoncommercialNoDerivativesCC</b>: Creative Commons: Attribution Non-Commercial, No Derivatives License.</li>\n<li><b>4 - AttributionCC</b>: Creative Commons: Attribution License.</li>\n<li><b>5 - AttributionShareAlikeCC</b>: Creative Commons: Attribution Share-alike License.</li>\n<li><b>6 - AttributionNoDerivativesCC</b>: Creative Commons: Attribution No Derivatives License.</li>\n<li><b>7 - NoKnownCopyrightRestrictions</b>: No Known Copyright Resitrctions (Flickr Commons).</li>\n<li><b>8 - UnitedStatesGovernmentWork</b>: United States Government Work</li>\n<li><b>9 - PublicDomainDedicationCC0</b>: Public Domain Dedication, CC0</li>\n<li><b>10 - PublicDomainMark</b>: Public Domain Mark</li>\n</ul>\n"
      },
      "ListingAirportContract": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "icao": {
            "type": "string",
            "description": "ICAO code of the airport",
            "nullable": true
          },
          "iata": {
            "type": "string",
            "description": "IATA code of the airport",
            "nullable": true
          },
          "localCode": {
            "type": "string",
            "description": "Code of the airport within the local or national codification system",
            "nullable": true
          },
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Name of the airport"
          },
          "shortName": {
            "type": "string",
            "description": "Shortened name of the airport",
            "nullable": true
          },
          "municipalityName": {
            "type": "string",
            "description": "Name of the municipality this airport belongs to",
            "nullable": true
          },
          "location": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GeoCoordinatesContract"
              }
            ],
            "description": "Location of the airport"
          },
          "countryCode": {
            "type": "string",
            "description": "Two-letter country code of the airport",
            "nullable": true
          },
          "timeZone": {
            "type": "string",
            "description": "Time zone of the airport in Olson format (e.g. \"Europe/Amsterdam\")",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Flight's airport reference contract"
      },
      "ModelFlightTimeEnum": {
        "enum": [
          "Standard",
          "ML01"
        ],
        "type": "string",
        "description": "Models of calculating the flight time.<p>Possible values:</p>\n<ul>\n<li><b>0 - Standard</b>: Standard model of calculation which takes into account the great circle distance and the average speed of all aircraft typically operating on those distances.</li>\n<li><b>1 - ML01</b>: Experimental machine learning (ML) model, which attempts to provide more accurate prediction of the flight time by taking into account the history of flights on specified route and aircraft type within the recent year. This may come in handy in case when on certain routes flights take significant detours due to extended airspace closures dictated by war conflicts, sanction regulations, etc. This can result in significantly increased flight times comparing to regular estimations. Or, some routes generally experience longer delays than other routes of the same distance. This model attempts to take such factors into account and reflect it in the prediction. If a model cannot be applied due to lack of historical and/or aircraft data or prediction is too off set, it automatically fallbacks to `Standard`.</li>\n</ul>\n"
      },
      "PercentileBracketContract": {
        "required": [
          "delay",
          "percentile"
        ],
        "type": "object",
        "properties": {
          "percentile": {
            "maximum": 95,
            "minimum": 5,
            "type": "integer",
            "description": "Percentile of the distribution",
            "format": "int32"
          },
          "delay": {
            "type": "string",
            "description": "Delay of the flight for the specific percentile (format: [-]hh:mm:ss).",
            "format": "date-span"
          }
        },
        "additionalProperties": false,
        "description": "Percentile bracket contract describing the flight delay for a specific percentile of the distribution"
      },
      "Pressure": {
        "required": [
          "hPa",
          "inHg",
          "mmHg"
        ],
        "type": "object",
        "properties": {
          "hPa": {
            "type": "number",
            "description": "Pressure in hectopascals",
            "format": "double"
          },
          "inHg": {
            "type": "number",
            "description": "Pressure in inches mercury",
            "format": "double"
          },
          "mmHg": {
            "type": "number",
            "description": "Pressure in millimeters mercury",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "ResourceContract": {
        "required": [
          "license",
          "url"
        ],
        "type": "object",
        "properties": {
          "url": {
            "minLength": 1,
            "type": "string",
            "description": "URL of the resource"
          },
          "webUrl": {
            "type": "string",
            "description": "URL of web-page containing the resource",
            "nullable": true
          },
          "author": {
            "type": "string",
            "description": "Author name of the resource",
            "nullable": true
          },
          "title": {
            "type": "string",
            "description": "Title of the resource",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Description of the resource",
            "nullable": true
          },
          "license": {
            "$ref": "#/components/schemas/LicenseType"
          },
          "htmlAttributions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Attributions maintaining copyright, ownership and other legal information adjusted for displaying\nas HTML. Each element represent one line.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Single media resource data"
      },
      "RunwayContract": {
        "required": [
          "isClosed",
          "name",
          "surface",
          "trueHdg"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Name of the runway. E.g.: 27L, 06, 36C, etc."
          },
          "trueHdg": {
            "type": "number",
            "description": "True heading of the runway in degrees",
            "format": "double"
          },
          "length": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Distance"
              }
            ],
            "description": "Length of the runway"
          },
          "width": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Distance"
              }
            ],
            "description": "Width of the runway"
          },
          "isClosed": {
            "type": "boolean",
            "description": "Marker, if runway is closed"
          },
          "location": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GeoCoordinatesContract"
              }
            ],
            "description": "Coordinates of intersection of the threshold and centerline"
          },
          "surface": {
            "$ref": "#/components/schemas/SurfaceType"
          },
          "displacedThreshold": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Distance"
              }
            ],
            "description": "The distance to the displaced threshold"
          },
          "hasLighting": {
            "type": "boolean",
            "description": "Does runway has lights",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Single runway data"
      },
      "SolarStateContract": {
        "required": [
          "dayTime",
          "location",
          "sunAzimuth",
          "sunElevation"
        ],
        "type": "object",
        "properties": {
          "location": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GeoCoordinatesContract"
              }
            ],
            "description": "Location where solar information is calculated"
          },
          "sunElevation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Angle"
              }
            ],
            "description": "Elevation of the Sun"
          },
          "sunAzimuth": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Azimuth"
              }
            ],
            "description": "Azimuth of the Sun"
          },
          "dayTime": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DayTime"
            },
            "description": "Daytime states"
          },
          "dawnAstronomical": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTimeContract"
              }
            ],
            "description": "The time of the astronomical dawn (the Sun rises above 18 degrees below the horizon). May be absent during polar day / night."
          },
          "dawnNautical": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTimeContract"
              }
            ],
            "description": "The time of the nautical dawn (the Sun rises above 12 degrees below the horizon). May be absent during polar day / night."
          },
          "dawnCivil": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTimeContract"
              }
            ],
            "description": "The time of the civil dawn (the Sun rises above 6 degrees below the horizon). May be absent during polar day / night."
          },
          "sunrise": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTimeContract"
              }
            ],
            "description": "Time of the sunrise. May be absent during polar day / night."
          },
          "noonTrue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTimeContract"
              }
            ],
            "description": "The time of the true solar noon. May be absent during polar day / night."
          },
          "sunset": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTimeContract"
              }
            ],
            "description": "Time of the sunset. May be absent during polar day / night."
          },
          "duskCivil": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTimeContract"
              }
            ],
            "description": "The time of the civil dawn (the Sun sets below 6 degrees below the horizon). May be absent during polar day / night."
          },
          "duskNautical": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTimeContract"
              }
            ],
            "description": "The time of the nautical dawn (the Sun sets below 12 degrees below the horizon). May be absent during polar day / night."
          },
          "duskAstronomical": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTimeContract"
              }
            ],
            "description": "The time of the astronomical dawn (the Sun sets below 18 degrees below the horizon). May be absent during polar day / night."
          }
        },
        "additionalProperties": false,
        "description": "Solar information at the moment"
      },
      "Speed": {
        "required": [
          "kmPerHour",
          "kt",
          "meterPerSecond",
          "miPerHour"
        ],
        "type": "object",
        "properties": {
          "kt": {
            "type": "number",
            "description": "Speed in knots",
            "format": "double"
          },
          "kmPerHour": {
            "type": "number",
            "description": "Speed in km per hour",
            "format": "double"
          },
          "miPerHour": {
            "type": "number",
            "description": "Speed in miles per hour",
            "format": "double"
          },
          "meterPerSecond": {
            "type": "number",
            "description": "Speed in meters per second",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "SpeedFlightPlanUnitContract": {
        "type": "object",
        "properties": {
          "requested": {
            "$ref": "#/components/schemas/Speed"
          },
          "assigned": {
            "$ref": "#/components/schemas/Speed"
          }
        },
        "additionalProperties": false,
        "description": "Contract describing unit (altitude, airspeed, etc.) which can be assigned and / or requested\nin the context of the flight plan"
      },
      "StatisticClass": {
        "enum": [
          "Flight",
          "FlightAndHour"
        ],
        "type": "string",
        "description": "<p>Possible values:</p>\n<ul>\n<li><b>0 - Flight</b></li>\n<li><b>1 - FlightAndHour</b></li>\n</ul>\n"
      },
      "StringAircraftContractSearchResultCollectionContract": {
        "required": [
          "count",
          "items",
          "searchBy"
        ],
        "type": "object",
        "properties": {
          "searchBy": {
            "minLength": 1,
            "type": "string",
            "description": "Search parameter used to find the result. \nPlease note, it may be different from the actual input provided!"
          },
          "count": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "description": "The number of items in the collection",
            "format": "int32",
            "readOnly": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AircraftContract"
            },
            "description": "The collection of items"
          }
        },
        "additionalProperties": false
      },
      "StringCollectionContract": {
        "required": [
          "count",
          "items"
        ],
        "type": "object",
        "properties": {
          "count": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "description": "The number of items in the collection",
            "format": "int32",
            "readOnly": true
          },
          "items": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The collection of items"
          }
        },
        "additionalProperties": false
      },
      "StringFlightSearchItemContractSearchResultCollectionContract": {
        "required": [
          "count",
          "items",
          "searchBy"
        ],
        "type": "object",
        "properties": {
          "searchBy": {
            "minLength": 1,
            "type": "string",
            "description": "Search parameter used to find the result. \nPlease note, it may be different from the actual input provided!"
          },
          "count": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "description": "The number of items in the collection",
            "format": "int32",
            "readOnly": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FlightSearchItemContract"
            },
            "description": "The collection of items"
          }
        },
        "additionalProperties": false
      },
      "StringListingAirportContractSearchResultCollectionContract": {
        "required": [
          "count",
          "items",
          "searchBy"
        ],
        "type": "object",
        "properties": {
          "searchBy": {
            "minLength": 1,
            "type": "string",
            "description": "Search parameter used to find the result. \nPlease note, it may be different from the actual input provided!"
          },
          "count": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "description": "The number of items in the collection",
            "format": "int32",
            "readOnly": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingAirportContract"
            },
            "description": "The collection of items"
          }
        },
        "additionalProperties": false
      },
      "SubscriberContract": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "minLength": 1,
            "type": "string",
            "description": "Type of subscriber. Completemented by SubscriberId."
          },
          "id": {
            "minLength": 1,
            "type": "string",
            "description": "ID"
          }
        },
        "additionalProperties": false,
        "description": "Describes subscriber (consumer of the subscription)"
      },
      "SubscriptionBalanceContract": {
        "required": [
          "creditsRemaining",
          "lastDeductedUtc",
          "lastRefilledUtc"
        ],
        "type": "object",
        "properties": {
          "creditsRemaining": {
            "type": "integer",
            "description": "Alert credits remaining for the account.",
            "format": "int64"
          },
          "lastRefilledUtc": {
            "type": "string",
            "description": "The datetime when the balance was last re-filled, in UTC.",
            "format": "date-time"
          },
          "lastDeductedUtc": {
            "type": "string",
            "description": "The datetime when the balance was last deducated, in UTC.\nDeduction typically occurs when an alert notification was dispatched\nfor one of the alert subscriptions associated with the user account.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Represents the balance for all alert subscriptions associated with the user acount, including remaining credits and timestamps\nfor the most recent refill and deduction operations."
      },
      "SubscriptionBillingType": {
        "enum": [
          "LifetimeBased",
          "CreditBased"
        ],
        "type": "string",
        "description": "Flight alert subscription billing type<p>Possible values:</p>\n<ul>\n<li><b>0 - LifetimeBased</b>: Subscription billed upon creation based on the life-time with set expiration date-time (BEING DEPRECATED)</li>\n<li><b>1 - CreditBased</b>: Subscription with no expiration date, billed based on the amount of notifications sent</li>\n</ul>\n"
      },
      "SubscriptionContract": {
        "required": [
          "createdOnUtc",
          "id",
          "isActive",
          "subject",
          "subscriber"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier of a subscription. \nUse this ID to control the subscription in future (e.g. update or delete).",
            "format": "uuid"
          },
          "isActive": {
            "type": "boolean",
            "description": "Specifies if the subscription is active"
          },
          "billingType": {
            "$ref": "#/components/schemas/SubscriptionBillingType"
          },
          "activateBeforeUtc": {
            "type": "string",
            "description": "Time (UTC) before which subscription must be activated (may be applicable to \nsome non-active newly created subscriptions)",
            "format": "date-time",
            "nullable": true
          },
          "expiresOnUtc": {
            "type": "string",
            "description": "Time (UTC) when subscription expires and will be removed.\n\nIf not specified, subscription never expires.",
            "format": "date-time",
            "nullable": true
          },
          "createdOnUtc": {
            "type": "string",
            "description": "Time (UTC) when subscription was created",
            "format": "date-time"
          },
          "subject": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SubscriptionSubjectContract"
              }
            ],
            "description": "Subscription subject (e.g. flight: such subscription will notify its consumer about flight updates)."
          },
          "subscriber": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SubscriberContract"
              }
            ],
            "description": "Subscription consumer: where notifications will be sent (e.g. web-hook with a URL)"
          },
          "notices": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Additional messages",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Describes subscription"
      },
      "SubscriptionSubjectContract": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/SubscriptionSubjectType"
          },
          "id": {
            "type": "string",
            "description": "Subject ID of a subscription. Complements SubjectType.\n\nE.g. SubjectType = \"FlightNumber\" and SubjectId = \"DL 47\" means that this\nsubscription is for all updates of flight with number DL47.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Describes subscription subject"
      },
      "SubscriptionSubjectType": {
        "enum": [
          "FlightByNumber",
          "FlightByAirportIcao"
        ],
        "type": "string",
        "description": "<p>Possible values:</p>\n<ul>\n<li><b>0 - FlightByNumber</b></li>\n<li><b>1 - FlightByAirportIcao</b></li>\n</ul>\n"
      },
      "SubscriptionsBalanceRefillRequestContract": {
        "required": [
          "credits"
        ],
        "type": "object",
        "properties": {
          "credits": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "Number of credits to add to the notification subscription balance.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Represents a contract for refilling flight alert credits on a subscription."
      },
      "SurfaceType": {
        "enum": [
          "Unknown",
          "Asphalt",
          "Concrete",
          "Grass",
          "Dirt",
          "Gravel",
          "DryLakebed",
          "Water",
          "Snow"
        ],
        "type": "string",
        "description": "<p>Possible values:</p>\n<ul>\n<li><b>0 - Unknown</b></li>\n<li><b>1 - Asphalt</b></li>\n<li><b>2 - Concrete</b></li>\n<li><b>3 - Grass</b></li>\n<li><b>4 - Dirt</b></li>\n<li><b>5 - Gravel</b></li>\n<li><b>6 - DryLakebed</b></li>\n<li><b>7 - Water</b></li>\n<li><b>8 - Snow</b></li>\n</ul>\n"
      }
    },
    "securitySchemes": {
      "X-RapidAPI-Key": {
        "type": "apiKey",
        "description": "RapidAPI Key. You can get your key by signing up at RapidAPI: https://rapid.aerodatabox.com/pricing",
        "name": "X-RapidAPI-Key",
        "in": "header"
      },
      "X-RapidAPI-Host": {
        "type": "apiKey",
        "description": "Host of the RapidAPI gateway. Must be always set to `aerodatabox.p.rapidapi.com`",
        "name": "X-RapidAPI-Host",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "X-RapidAPI-Key": [ ],
      "X-RapidAPI-Host": [ ]
    }
  ],
  "tags": [
    {
      "name": "Aircraft API"
    },
    {
      "name": "Airport API"
    },
    {
      "name": "Flight Alert API"
    },
    {
      "name": "Flight API"
    },
    {
      "name": "Healthcheck API"
    },
    {
      "name": "Industry API"
    },
    {
      "name": "Miscellaneous API"
    },
    {
      "name": "Statistical API"
    }
  ]
}