v1
OGC API - Features
Mapalyze implements OGC API - Features (Part 1 Core + Part 4 Transactions).
Base URL
https://<ref>.supabase.co/functions/v1/api-gateway/oapif
Authentication
Send API key in X-API-Key:
curl -H "X-API-Key: mk_live_..." \
"https://<ref>.supabase.co/functions/v1/api-gateway/oapif/collections"
Conformance
ogcapi-features-1/1.0/conf/coreogcapi-features-1/1.0/conf/geojsonogcapi-features-4/1.0/conf/create-replace-deleteogcapi-features-4/1.0/conf/update
Endpoints
Discovery
| Method | Path | Description |
|---|---|---|
| GET | /oapif/ |
Landing document |
| GET | /oapif/conformance |
Conformance declaration |
| GET | /oapif/api |
OpenAPI definition |
Collections (forms)
| Method | Path | Description |
|---|---|---|
| GET | /oapif/collections |
List form collections |
| GET | /oapif/collections/{formId} |
Collection metadata + schema |
Items (records)
| Method | Path | Scope | Description |
|---|---|---|---|
| GET | /oapif/collections/{formId}/items |
read | List records as GeoJSON FeatureCollection |
| GET | /oapif/collections/{formId}/items/{recordId} |
read | Single Feature |
| POST | /oapif/collections/{formId}/items |
write | Create Feature |
| PUT | /oapif/collections/{formId}/items/{recordId} |
write | Replace Feature |
| PATCH | /oapif/collections/{formId}/items/{recordId} |
write | Merge update Feature |
| DELETE | /oapif/collections/{formId}/items/{recordId} |
write | Soft-delete Feature |
Query parameters (GET items)
| Parameter | Type | Description |
|---|---|---|
limit |
int | Features per page (default 100, max 10000) |
offset |
int | Offset for pagination |
bbox |
string | minLng,minLat,maxLng,maxLat |
bbox-crs |
string | Supported: CRS84, urn:ogc:def:crs:OGC:1.3:CRS84, or full OGC CRS84 URL |
datetime |
string | ISO-8601 instant or interval (2026-01-01T00:00:00Z/..) |
project_id |
string | Filter by project |
f |
string | Output format: json or geojson |
Invalid f or unsupported bbox-crs returns 400 validation_error.
Pagination and metadata
Responses include deterministic paging links and counts:
{
"type": "FeatureCollection",
"timeStamp": "2026-02-20T09:30:12.121Z",
"numberMatched": 78,
"numberReturned": 10,
"features": [],
"links": [
{"href": "...?limit=10&offset=0", "rel": "self"},
{"href": "...?limit=10&offset=10", "rel": "next"}
]
}
The gateway preserves relevant query params (bbox, datetime, project_id, f, bbox-crs) in generated links.
Create a feature
curl -X POST \
-H "X-API-Key: mk_live_..." \
-H "Content-Type: application/json" \
"https://<ref>.supabase.co/functions/v1/api-gateway/oapif/collections/{formId}/items" \
-d '{
"type": "Feature",
"geometry": {"type": "Point", "coordinates": [-6.75, 37.57]},
"properties": {
"name": "New Point",
"project_id": "c328e46a-8fb9-41f1-a5f9-3dca9a894ab3"
}
}'
Notes:
- Geometry must be valid GeoJSON.
- Geometry payload is limited to 100KB.
- If
properties.project_idis provided, it must belong to the same organization. - System properties (
_mapalyze_*) in input are ignored.
CRS
Responses include:
Content-Crs: <http://www.opengis.net/def/crs/OGC/1.3/CRS84>
All coordinates are CRS84 (WGS84 lon/lat).
Rate limiting
OGC endpoints follow the same API key limits documented in Errors & Rate Limits.
Need help with the API? Contact our support team.