Conventions
Units, identifiers, timestamps, pagination and CORS: the rules that apply to every endpoint.
Time and units
| Thing | Format |
|---|---|
| Lap and sector times | Integer milliseconds: 92345 is 1:32.345. Fields end in _ms. |
| Timestamps | ISO 8601 in UTC, e.g. 2026-06-02T14:05:11Z. recorded_at defaults to the time of the request. |
| Dates | YYYY-MM-DD (event dates, from / to filters). |
| Money | Integer minor units (cents) with a lowercase ISO 4217 currency. Fields end in _minor. |
| Speed | Kilometres per hour (speed_trap_kph). |
To convert m:ss.SSS to milliseconds, use (minutes * 60 + seconds) * 1000 + millis. The RMonitor decoder also accepts 83.456 and 00:01:23.456.
Identifiers
IDs are opaque UUID strings. Event IDs appear in event URLs in the app and in the Connect timing screen of Race Control. Treat them as opaque; don’t parse them.
Request bodies
- Send
Content-Type: application/json. - Unknown fields are ignored, not rejected.
- Request size is bounded per endpoint: 1,000 laps, 5,000 RMonitor lines, 2,000 passings.
Collections
List endpoints return an object with a named array, not a bare array, so new fields can be added without breaking you:
{ "event_id": "…", "laps": [ ] }
There is no cursor pagination in v1. Instead, endpoints cap their result size: GET /laps returns up to 5,000 laps; GET /events takes a limit (default 50, max 200).
Nulls and missing fields
Optional values you didn’t supply come back as null, not omitted. Fields may be added to responses at any time; ignore ones you don’t recognise.
CORS
Every endpoint answers OPTIONS and sends Access-Control-Allow-Origin: *, with authorization, x-client-info, apikey, content-type allowed. That makes public endpoints callable from a browser. Never call authenticated endpoints from a browser, because that means shipping a key to your visitors.
Versioning
Paths carry a major version (/v1). Within a version we only make additive changes: new endpoints, new optional request fields, new response fields. Breaking changes would ship under a new major version path.