The API version is in the path (/v1). A breaking change needs /v2; /v1 keeps working meanwhile.
Non-breaking changes: a new endpoint, a new optional parameter, a new response field, a new error code. Your client must ignore fields and codes it does not know.
The meaning of error code values, of the tiered count steps (min_pilots) and of the thermal parameters does not change within a version.
The stable names of tile sources (base, contours, thermals …) do not change; the content of the builds is refreshed.
The OpenAPI document is always current: openapi.json; the footer of this site shows which version it was generated from.
2026-11 · Client packages
@updraft/maps (npm) and updraft_maps (pub.dev): key header, error body, tile and style addresses, types generated from OpenAPI, MapLibre GL JS, flutter_map and maplibre_gl helpers; the quick starts use these packages (Authentication). The package version equals the API version.
2026-11 · v1.0 "Key" (in preparation)
API keys, scopes, rate limits and usage counters: per-key minute, day and month limits; 429 rate_limited / quota_exceeded, Retry-After, X-RateLimit-Limit, X-RateLimit-Window (Rate limits).
Keyed tile path: tile requests with an X-Api-Key header are checked against the tiles scope and counted; the path without a key stays limited per client address (Tiles and styles).
Free first year: no plans, invoices or payments; attribution required (Attribution).
Documentation site: quick starts (MapLibre GL JS, flutter_map, maplibre_gl), live example, reference generated from OpenAPI.
2026-11 · API 0.1
GET /v1/sites: approved take-off and landing sites (GeoJSON, cursor pagination, ETag).
POST /v1/flights: IGC upload (server to server, with the consent version).