API overview
Read layers, edit features, upload files and receive webhooks at https://api.orbgis.se/v1. The API uses your existing OrbGIS permissions and is included at no extra charge.
Make your first request#
Create a read key
In the portal, open Admin → Integrations, create an integration with the Viewer role, then create a key with the
readscope. Copy it when shown. See Authentication.List your layers
Run the command below on your own computer or server. Replace
YOUR_API_KEYwith your key. The response’scollectionsarray contains the layers the integration can see.
export ORBGIS_API_KEY="YOUR_API_KEY"
curl --fail-with-body \
-H "Authorization: Bearer $ORBGIS_API_KEY" \
"https://api.orbgis.se/v1/collections?limit=10"Copy a collection’s id, then request /v1/collections/{id}/items?limit=10 with the same header to read its features. A collection is a feature layer; its UUID differs from the dataset’s item id.
Choose a task#
| Task | Guide |
|---|---|
| Read GeoJSON, filter or page through a layer | Reading features |
| Create, update or delete features; replace a layer | Writing features |
| Upload a file, export a GeoPackage or check a job | Files and jobs |
| Receive signed change notifications | Webhooks |
| Render published layers on your website | Public maps |
| Connect a desktop GIS client | QGIS and GDAL |
Use the API reference for route parameters and response fields. Import the OpenAPI document into Postman, Insomnia or an SDK generator.
Access and errors#
- Send an integration key or user access token in the
Authorization: Bearer …header. Keep keys on your server. Published content can be read without a credential. - Errors use
application/problem+jsonwith a machine-readablecode. UseX-Request-Idto correlate requests with logs; the API echoes a valid id or supplies one. - A
429response includesRetry-After. ReadX-RateLimit-Limit,X-RateLimit-RemainingandX-RateLimit-Resetto track the current request allowance.
Limits#
| Limit | Default |
|---|---|
| Reads per key | 600 requests/minute |
| Writes per key | 60 requests/minute |
| Anonymous reads per network | 120 requests/minute |
| Requests per organization | 200 000/day |
| Concurrent database-heavy requests per organization | 4 |
Follow feature pages sequentially. On 429 too_many_concurrent, wait for Retry-After before retrying. Use an export for large downloads.
Versioning#
The version is in the path. Changes within /v1 are additive: new routes, optional parameters or response fields. Breaking changes require /v2; the old version remains available for at least twelve months, with Deprecation and Sunset headers announcing its end date.