DEVELOPERS

Build on Runic.

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
}

What the API gives you

Positions

Latest position and historic tracks for any device, with speed and heading.

Trips

Structured start, stop, distance and duration instead of raw points.

Assets & groups

Create, rename and organise assets programmatically.

Geofences

Define zones and receive entry and exit events.

Webhooks

Signed HTTPS callbacks with retry and replay.

Sandbox

A full test environment with simulated devices before you go live.

Events you can subscribe to

Every event is delivered as a signed JSON payload, with automatic retries for 24 hours.

Libraries and tooling

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.