{
  "meta": {
    "source": "https://flycodes.net/data/changelog",
    "version": "1.1",
    "updatedAt": "2026-07-03",
    "license": "https://flycodes.net/data#license",
    "attribution": "Data from OurAirports and OpenFlights, compiled by FlyCodes (flycodes.net)."
  },
  "versions": [
    {
      "version": "1.1",
      "date": "2026-08-05",
      "summary": "Codeshare listings separated from operating carriers.",
      "counts": {
        "airports": 8803,
        "airlines": 1108,
        "routePages": 6000
      },
      "changes": [
        "Route records now carry two carrier lists: the airlines that operate the pair and the airlines that only sell it as a codeshare. Column 7 of the OpenFlights route file marks the difference, and 14,597 of its 67,663 rows are codeshares.",
        "Because those rows cluster on the busiest pairs, every airline page used to show roughly the same ten routes. Airline pages now list only the pairs the carrier is recorded as operating.",
        "The set of route pages and their ranking are unchanged: a pair that is only sold as a codeshare is still a real nonstop, so it keeps its page.",
        "Route pages that no airline operates now say so explicitly instead of listing the codeshare sellers as if they flew it."
      ]
    },
    {
      "version": "1.0",
      "date": "2026-07-03",
      "summary": "First public dataset build.",
      "counts": {
        "airports": 8803,
        "airlines": 1108,
        "routePages": 6000
      },
      "changes": [
        "Airports, runways and countries taken from the OurAirports public-domain export.",
        "Airlines and routes taken from the OpenFlights export.",
        "Connection counts and ranks computed per airport and per airline from the nonstop route entries.",
        "Published as static JSON per record, two bulk files, and a keyless API."
      ]
    }
  ]
}