Ingest laps
Push batches of up to 1,000 laps into an event, optionally scoped to a session. Drivers are matched by user ID or transponder.
…/timing-api/v1/events/{eventId}/laps Send completed laps from any timing source. Provide user_id directly, or a transponder_id and Outlap resolves the driver from the event’s transponder roster. Laps that can’t be matched are still stored against the transponder, so you can assign them in Race Control afterwards.
There are two equivalent forms. Use the session form to attach laps to a specific session; lap numbers restart each session.
POST /v1/events/{eventId}/laps
POST /v1/events/{eventId}/sessions/{sessionId}/lapsRequires a key with the timing:write scope. See Authentication.
Path parameters
-
eventIdstring requiredThe event’s ID. It must belong to the club that owns the key. -
sessionIdstring optionalSession form only. Attaches every lap in the request to that session.
Body
-
lapsarray requiredBetween 1 and 1,000 lap objects.
Lap object
-
lap_numberinteger requiredZero or greater. -
lap_time_msinteger requiredLap time in milliseconds. Greater than 0 and no more than 24 hours. -
s1_msinteger optionalSector split.s2_ms,s3_msands4_mswork the same way. -
speed_trap_kphnumber optionalSpeed through the trap, in km/h. -
is_validboolean default:trueSetfalsefor laps that shouldn’t count, for example cut or off-track laps. -
invalid_reasonstring optionalFree text such as"cut T7". Shown to organisers. -
transponder_idstring optionalUsed to resolve the driver whenuser_idis absent. -
user_idstring optionalThe Outlap driver’s user ID. Overrides any transponder lookup. -
recorded_atstring optionalISO 8601 timestamp. Defaults to the time of the request.
Response
Returns the number of laps stored.
-
insertedintegerRows created.
Duplicates
This endpoint doesn’t de-duplicate: posting the same lap twice creates two rows. Retry only when you didn’t receive a response, and dedupe on your side, or mark the earlier lap invalid. For continuous feeds, use POST /stream, which ignores redelivered laps (per transponder, lap number and session).