Region packs · API reference
PMTiles files per region for offline use.
GET /v1/packs/{region}
Current offline pack of a region, with download URLs
Authentication: X-Api-Key header; required scope: scope table.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
region required | path | string | Region slug (regions.slug), e.g. fethiye-babadag0–64 chars · ^[a-z0-9]+(?:-[a-z0-9]+)*$ |
Responses
| Status | Description | Content |
|---|---|---|
200 | Pack description; Cache-Control: private, no-store | application/json → PackInfo |
401 | code: auth_missing, auth_invalid, auth_revoked | application/json → ErrorBody |
403 | code: auth_scope | application/json → ErrorBody |
404 | code: pack_not_found | application/json → ErrorBody |
422 | code: request_invalid | application/json → ErrorBody |
429 | code: rate_limited, quota_exceeded (Retry-After seconds)Headers: Retry-After — Seconds until the exhausted window resets | application/json → ErrorBody |
503 | code: pack_download_unavailable | application/json → ErrorBody |
GET /v1/packs/{region}/{pack_version}/{file}
Download one pack file through a signed URL (no API key)
Authentication: No key needed.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
region required | path | string | Region slug (regions.slug), e.g. fethiye-babadag0–64 chars · ^[a-z0-9]+(?:-[a-z0-9]+)*$ |
pack_version required | path | string | YYYYMMDD[-n]^\d{8}(?:-(?:[2-9]|[1-9]\d+))?$ |
file required | path | string | {kind}.pmtiles^(?:base|contours|terrain|hillshade|power)\.pmtiles$ |
expires required | query | integer | Unix seconds, from the signed URL |
signature required | query | string | From the signed URL0–64 chars |
Responses
| Status | Description | Content |
|---|---|---|
200 | The PMTiles file; Range requests answer 206 | application/vnd.pmtiles → string (binary) |
307 | Object store presigned URL (S3 stores) | |
403 | code: pack_url_invalid, pack_url_expired | application/json → ErrorBody |
404 | code: pack_not_found | application/json → ErrorBody |
422 | code: request_invalid | application/json → ErrorBody |
503 | code: pack_download_unavailable | application/json → ErrorBody |