Skip to content
Updraft Docs
Türkçe

Regions · API reference

Flying regions and region profiles.

GET /v1/regions

Public flying regions with simplified boundaries

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

Responses

StatusDescriptionContent
200GeoJSON FeatureCollection ordered by slug; ETag and Cache-Control headersapplication/geo+json → RegionCollection
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
422Validation Errorapplication/json → HTTPValidationError
429code: rate_limited, quota_exceeded (Retry-After seconds)
Headers: Retry-After — Seconds until the exhausted window resets
application/json → ErrorBody

GET /v1/regions/{region}/profile

Profile of a public flying region

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

Parameters

NameInTypeDescription
region requiredpathstringRegion id (uuid, lowercase) or slug (regions.slug), e.g. fethiye-oludeniz
0–64 chars · ^[a-z0-9]+(-[a-z0-9]+)*$

Responses

StatusDescriptionContent
200Region profile; ETag and Cache-Control headersapplication/json → RegionProfileResponse
304If-None-Match matched the current ETag; no body
401code: auth_missing, auth_invalid, auth_revokedapplication/json → ErrorBody
403code: auth_scopeapplication/json → ErrorBody
404code: region_not_foundapplication/json → ErrorBody
422code: request_invalidapplication/json → ErrorBody
429code: rate_limited, quota_exceeded (Retry-After seconds)
Headers: Retry-After — Seconds until the exhausted window resets
application/json → ErrorBody

GET /v1/regions/{region}/incidents

Known incidents and precautions of a public flying region

Entered by the region's moderators. Not in-flight information: use it for planning and briefing. No person, no day, no ranking.

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

Parameters

NameInTypeDescription
region requiredpathstringRegion id (uuid, lowercase) or slug (regions.slug)
0–64 chars · ^[a-z0-9]+(-[a-z0-9]+)*$

Responses

StatusDescriptionContent
200Incidents; ETag and Cache-Control headersapplication/json → RegionIncidentsResponse
304If-None-Match matched the current ETag; no body
401code: auth_missing, auth_invalid, auth_revokedapplication/json → ErrorBody
403code: auth_scopeapplication/json → ErrorBody
404code: region_not_foundapplication/json → ErrorBody
422code: request_invalidapplication/json → ErrorBody
429code: rate_limited, quota_exceeded (Retry-After seconds)
Headers: Retry-After — Seconds until the exhausted window resets
application/json → ErrorBody