Positions
Latest position and historic tracks for any device, with speed and heading.
DEVELOPERS
A REST API and webhooks over the same location data you see in the app. Read positions, subscribe to events, and put tracking inside the product you already run.
developers.runic.io · support@runic.io
Your first request
Authenticate with a bearer token, then read the latest position for a device.
curl https://api.runic.io/v1/assets/ast_8f21/position \
-H "Authorization: Bearer rk_live_..."
{
"asset_id": "ast_8f21",
"recorded_at": "2026-08-10T09:41:12Z",
"lat": 45.4642,
"lon": 9.1900,
"speed_kph": 54,
"heading": 118,
"ignition": true
}Latest position and historic tracks for any device, with speed and heading.
Structured start, stop, distance and duration instead of raw points.
Create, rename and organise assets programmatically.
Define zones and receive entry and exit events.
Signed HTTPS callbacks with retry and replay.
A full test environment with simulated devices before you go live.
Every event is delivered as a signed JSON payload, with automatic retries for 24 hours.
Official clients for JavaScript, Python and PHP, an OpenAPI schema, and a Postman collection.
asset.movedFires when a stationary asset starts moving.trip.completedFires when a trip ends, with distance and duration.geofence.enteredFires when an asset enters a defined zone.device.offlineFires when a device stops reporting.