Skip to content
Updraft Docs
Türkçe

Take-offs and landings · API reference

Approved take-off and landing sites as GeoJSON.

GET /v1/sites

Approved takeoff and landing sites in a bounding box

Authentication: X-Api-Key header; required scope: scope table.

Parameters

NameInTypeDescription
bbox requiredquerystringwest,south,east,north in degrees (WGS 84); each side at most 20°, west < east (no antimeridian wrap)
0–200 chars · example "28.5,36.0,30.0,37.2"
kindquery"takeoff" | "landing" | nullOnly this kind; both when omitted
limitqueryintegerSites per page
1 ≤ x ≤ 500 · default 100
cursorquerystring | nullnext_cursor of the previous page
0–64 chars

Responses

StatusDescriptionContent
200GeoJSON FeatureCollection, ordered by id; ETag and Cache-Control headersapplication/geo+json → SiteCollection
304If-None-Match matched the current ETag; no body
401code: auth_missing, auth_invalid, auth_revokedapplication/geo+json → ErrorBody
403code: auth_scopeapplication/geo+json → ErrorBody
422code: request_invalid, bbox_invalid, bbox_too_large, cursor_invalidapplication/geo+json → ErrorBody
429code: rate_limited, quota_exceeded (Retry-After seconds)
Headers: Retry-After — Seconds until the exhausted window resets
application/json → ErrorBody

GET /v1/sites/{site_id}/suitability

Take-off suitability for a day from the wind forecast (pre-flight planning only)

Authentication: X-Api-Key header; required scope: scope table.

Parameters

NameInTypeDescription
site_id requiredpathstring (uuid)Take-off id (GET /v1/sites)
datequerystring (date) | nullLocal date (Europe/Istanbul), today to today + 4 days; default today
example "2026-11-06"

Responses

StatusDescriptionContent
200Slots of the local day; Cache-Control headerapplication/json → SuitabilityResponse
401code: auth_missing, auth_invalid, auth_revokedapplication/json → ErrorBody
403code: auth_scopeapplication/json → ErrorBody
404code: site_not_foundapplication/json → ErrorBody
422code: request_invalid, date_out_of_rangeapplication/json → ErrorBody
429code: rate_limited, quota_exceeded (Retry-After seconds)
Headers: Retry-After — Seconds until the exhausted window resets
application/json → ErrorBody