Contract
LSP names org, track, car, session, telemetry events, and onboard stage. Subscribe to a circuit in your organization. Many cars publish. Your product receives those cars as events.
LapsHub Live
The named contract for LapsHub Live. Organization → track → car → session. Live telemetry plus low-latency onboard. Live API is how you build on it. Hosted Pit Wall is the optional first-party UI on this same protocol.
Org-scoped · Design partners · Specs before runtime
LapsHub Streaming Protocol is the language of the racetrack stream. Not a new binary format. Teams, streamers, and integrators speak LSP; Live API adds sessions, stream access, and meters on top.
Organization
└── Track (subscribe: all org cars on this circuit)
└── Car
└── Session
├── Telemetry events
└── Stage (onboard) → publish / watch access
LSP names org, track, car, session, telemetry events, and onboard stage. Subscribe to a circuit in your organization. Many cars publish. Your product receives those cars as events.
Kafka or raw IoT move bytes. They do not name which org, track, car, or session is live, or when onboard should open. That mapping is LSP.
What you buy to build: session control, stream access, and usage meters. You own the pit wall, overlay, series app, or stream.
Optional first-party UI on the same protocol. Prefer a turnkey screen? Same Live backend, hosted pit wall path.
Connect your telemetry source over MQTT. Open a session in GraphQL, mint short-lived credentials, then publish JSON envelopes from your device, logger, or bridge.
Call createLiveSession with your org carId and trackId. One live session per car on circuit.
Call createTelemetryCredentials with role: PUBLISH. Live API returns endpoint, clientId, topicPublish, and expiresAt.
Your device connects to mqtts://live-mqtt.lapshub.com:8883 over TLS and publishes telemetry envelopes to topicPublish. Batch up to 50 points per message.
LapsHub device, RaceBox via your bridge, CAN/GPS loggers, or any stack that can run an MQTT client and emit JSON.
JSON over MQTT, application/json. Required envelope fields: v, orgId, trackId, carId, and points[] with at least ts. Optional per point: lat, lon, speedMps, headingDeg, lap, and named channels scalars (rpm, throttle, and so on).
Your organization's cars on your circuits. Not a tap into public LapsHub driver-app traffic.
mutation {
createLiveSession(input: { carId: "car_42", trackId: "track_ra" }) {
id
status
}
}
mutation {
createTelemetryCredentials(
sessionId: "sess_1"
input: { role: PUBLISH, ttlSeconds: 3600 }
) {
endpoint
clientId
topicPublish
expiresAt
}
}
{
"endpoint": "mqtts://live-mqtt.lapshub.com:8883",
"clientId": "lh_org_1_car_42_sess_1",
"topicPublish": "live/org_1/track_ra/car_42/telemetry",
"expiresAt": "2026-08-17T19:00:00.000Z"
}
Planned broker: mqtts://live-mqtt.lapshub.com:8883 (Preview, not live). Credentials are short-lived: refresh before expiry. HTTPS batch ingest is a secondary escape hatch when a device cannot run MQTT. Prefer MQTT for high-Hz GPS and CAN channels. Full schema: asyncapi-telemetry-v1.yaml.
Subscribe to a circuit in your org. Cars you publish send events onto that track stream in real time. Mint subscribe credentials with role: SUBSCRIBE or BOTH on createTelemetryCredentials.
Subscribe (your org, one circuit):
live/{orgId}/{trackId}/+/telemetry
Publish (one car):
live/{orgId}/{trackId}/{carId}/telemetry
Live API issues short-lived publish and subscribe access. Batch HTTPS remains a secondary escape hatch when a stream client is not available.
One envelope, one or more points. Schema version v: 1. Full field list for design partners: asyncapi-telemetry-v1.yaml.
{
"v": 1,
"orgId": "org_1",
"trackId": "track_ra",
"carId": "car_42",
"sessionId": "sess_1",
"points": [
{
"ts": "2026-08-17T18:00:00.000Z",
"lat": 43.798,
"lon": -87.992,
"speedMps": 42.1,
"headingDeg": 187.2,
"lap": 3,
"channels": { "rpm": 6120, "throttle": 0.82 }
}
]
}
High-Hz car data rides MQTT, not the control API. Devices publish to a car topic; pit walls and overlays subscribe to the track wildcard. See device integration for the connect-and-publish flow.
Cars or loggers publish to live/{orgId}/{trackId}/{carId}/telemetry.
Pit walls, overlays, and stream stacks subscribe to live/{orgId}/{trackId}/+/telemetry and receive every org car on that circuit.
Do not push high-Hz GPS points through session APIs. Those calls open sessions and access. The stream carries the points.
Live API is how you open sessions, grant stream and watch access, and read usage. The protocol names what those calls mean. Wire-level shapes stay in design-partner review.
Open and close a live session for a car on a track in your org.
Short-lived publish, subscribe, and watch access. Open watch access only while someone is watching.
Meters report publish time, watch time, and accepted telemetry volume.
mutation {
createLiveSession(input: { carId: "car_42", trackId: "track_ra" }) {
id
status
}
}
Subscribe (your org, one circuit):
live/{orgId}/{trackId}/+/telemetry
Publish (one car):
live/{orgId}/{trackId}/{carId}/telemetry
GraphQL opens sessions and stages. MQTT carries live car data. WebRTC carries onboard. GraphQL is not the live GPS bus.
Low-latency onboard for your audience (sub-2-second target). Open a stage only while someone is watching, then feed YouTube, Twitch, TV, or in-venue screens from your own stack.
Start a stage for the car/session and send onboard from the camera.
Watch access is short-lived and billable. Open it only while someone is watching.
We run the live backend. You own how the event reaches YouTube, Twitch, TV, overlays, and in-house streams.
What we count for usage. Pilot pricing is set with design partners.
video.publisherParticipant-seconds while a publisher is connected.
video.subscriberParticipant-seconds while a viewer stays connected.
telemetry.messageCount of accepted telemetry events or batch items.
These contracts are for architecture review with design partners. Runtime endpoints are not generally available yet. Specs may change before launch.
Request design-partner access. Tell us about your product, stream, or pit wall and we will map sessions, telemetry, and onboard stages to your roadmap.
Design-partner program. Prefer a turnkey screen? Hosted Pit Wall. Looking for the driver app? Download Free.