Ingest — OwnTracks
OwnTracks publishes a JSON payload over HTTPS POST in its native schema. Our endpoint accepts the standard format with no modifications.
Endpoint
POST https://app.whereistereza.com/o/{your-org-slug}/api/t/owntracks/{token}
Content-Type: application/json
The {token} is generated when you add the source in the admin.
Payload
{
"_type": "location",
"tid": "iP",
"tst": 1714032000,
"lat": 42.7551,
"lon": -1.6402,
"alt": 430,
"vel": 4,
"cog": 85,
"acc": 8,
"batt": 72,
"BSSID": "...",
"SSID": "...",
"conn": "w"
}
| Field | Type | Required | Notes |
|---|---|---|---|
| _type | string | yes | Always "location" for tracking points |
| tid | string | yes | Tracker ID (your device label, e.g. "iP") |
| tst | int | yes | Unix timestamp in seconds |
| lat | float | yes | WGS84 latitude |
| lon | float | yes | WGS84 longitude |
| alt | int | no | Altitude in metres above sea level |
| vel | int | no | Speed in km/h |
| cog | int | no | Course over ground in degrees (0–360) |
| acc | int | no | Horizontal accuracy in metres |
| batt | int | no | Battery percentage 0–100 |
Other OwnTracks message types (waypoint, transition) are accepted
but ignored — they're not used in the live map.
Example
curl -X POST \
https://app.whereistereza.com/o/yourname/api/t/owntracks/abc123secret \
-H "Content-Type: application/json" \
-d '{
"_type":"location",
"tid":"iP",
"tst":1714032000,
"lat":42.7551,
"lon":-1.6402,
"alt":430,
"acc":8
}'
Response:
{ "status": "ok" }
Errors
400 Bad Request— payload missing required fields.401 Unauthorized— token doesn't match any source.429 Too Many Requests— over rate limit (60/min per token).
Notes
- Points are de-duplicated by (tid, tst) — re-sending the same message is a no-op.
- Altitude is optional; missing altitudes get smoothed from neighbours during analytics computation.
Need help? Contact support · Where Is Tereza?