Licenses
A license represents your organization’s subscription to the Chrono platform. It carries a human-readable display name, a machine-readable license key, and an optional expiry timestamp. IfexpiresAt is null, the license never expires; otherwise Chrono will reject requests from it after that instant.
GET /api/v1/licenses/{id} — example response
A license is considered active when
enabled is true and either expiresAt is null or it has not yet passed. Chrono checks both conditions on every authenticated request.Rigs
A rig is a physical or virtual timing computer that submits lap data to Chrono. Each rig is bound to exactly one license and is identified by ahardwareId — a string your timing software derives from the machine (MAC address, motherboard serial, or a stable UUID you generate). Two rigs on the same license must have different hardwareId values.
POST /api/v1/rigs — example response
Registering a rig
To register a new rig,POST /api/v1/rigs with a JSON body containing the hardwareId and the licenseFile signed token. Chrono validates the license, creates the rig record, and returns a response that includes both the rig details and a freshly issued API key token. Store that token immediately — the raw token is only returned once.
POST /api/v1/rigs — registration response envelope
API Keys
API keys are scoped credentials issued per license. They are what you actually send in theX-API-Key header on every request. Each key carries a role that determines what operations it can perform:
R — Read only
Can fetch events, laps, participants, and results. Cannot write any data.
CR — Create + Read
Can submit laps and create participants. Assigned automatically to newly registered rigs.
CRUD — Full data access
Can create, read, update, and delete all resources within the license.
ADMIN — License management
Can manage other API keys and perform license-level operations.
Only the
keyPrefix is returned in list and detail responses. The full token is only available in the response to POST /api/v1/api-keys at creation time. Use keyPrefix in your logs to identify which key made a request without exposing credentials.