Outlap Docs
Open Outlap
Outlap Docs

Docs for the whole lap.

Guides for drivers and organisers, a REST API for live timing and track data, and step-by-step integrations for MyLaps, AxWare, RMonitor and your data logger.

curl -X POST https://fzfstcyowovukscxgdrh.supabase.co/functions/v1/timing-api/v1/events/$EVENT_ID/laps \
  -H "Authorization: Bearer $OUTLAP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "laps": [{
      "lap_number": 1,
      "lap_time_ms": 92345,
      "s1_ms": 28110, "s2_ms": 31900, "s3_ms": 32335,
      "transponder_id": "TR-4421"
    }]
  }'
const res = await fetch(
  `https://fzfstcyowovukscxgdrh.supabase.co/functions/v1/timing-api/v1/events/${process.env.EVENT_ID}/laps`,
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.OUTLAP_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      laps: [{ lap_number: 1, lap_time_ms: 92345, transponder_id: "TR-4421" }],
    }),
  },
);
console.log(await res.json()); // { inserted: 1 }
import os, requests

res = requests.post(
    f"https://fzfstcyowovukscxgdrh.supabase.co/functions/v1/timing-api/v1/events/{os.environ['EVENT_ID']}/laps",
    headers={"Authorization": f"Bearer {os.environ['OUTLAP_API_KEY']}"},
    json={"laps": [{"lap_number": 1, "lap_time_ms": 92345, "transponder_id": "TR-4421"}]},
)
print(res.json())  # {'inserted': 1}
Start here

Pick your lane

1,000
laps per request
5,000
RMonitor lines per packet
25 Hz
RaceBox GPS, over Bluetooth
120/min
writes per API key
Popular

Jump straight in

Integrations

Works with what you already have

Track systems feed the live board; drivers' loggers and phones fill in their own history.

All integrations →
esc
↑↓ to navigate ↵ to open esc to close