Ingest — Overland
Overland publishes a GeoJSON-style FeatureCollection over HTTPS POST.
Endpoint
POST https://app.whereistereza.com/o/{your-org-slug}/api/t/overland?token={token}
Content-Type: application/json
Payload
{
"locations": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-1.6402, 42.7551]
},
"properties": {
"timestamp": "2026-04-25T08:00:00Z",
"altitude": 430,
"speed": 1.4,
"horizontal_accuracy": 8,
"vertical_accuracy": 3,
"battery_state": "unplugged",
"battery_level": 0.72,
"wifi": "..."
}
}
]
}
The locations array can contain one or many features; Overland
batches them up to 100 per POST when buffered.
| Property | Type | Required | Notes |
|---|---|---|---|
| timestamp | string | yes | ISO 8601 |
| altitude | float | no | Metres above sea level |
| speed | float | no | Metres per second |
| horizontal_accuracy | float | no | Metres |
| battery_level | float | no | 0–1 |
coordinates is [longitude, latitude] per the GeoJSON spec — note
the order.
Example
curl -X POST \
"https://app.whereistereza.com/o/yourname/api/t/overland?token=abc123secret" \
-H "Content-Type: application/json" \
-d '{
"locations": [{
"type": "Feature",
"geometry": { "type": "Point", "coordinates": [-1.6402, 42.7551] },
"properties": { "timestamp": "2026-04-25T08:00:00Z", "altitude": 430 }
}]
}'
Response:
{ "result": "ok" }
(Overland clients expect {"result":"ok"} rather than {"status":"ok"};
we return whichever matches the source.)
Errors
400 Bad Request— invalid GeoJSON or missing timestamp.401 Unauthorized— token mismatch.429 Too Many Requests— over rate limit.
Need help? Contact support · Where Is Tereza?