Browser delivery contract
LiveRun a verified unlock session.
Reference the same-origin endpoints used by the LinkCode resolver to create sessions, post ordered playback signals and request verification.
1. Start after user intent
POST
/api/v1/unlock/sessionsLivePropertyTypeDescription
codestringrequiredThe normalized or human-entered LinkCode.
const session = await fetch("/api/v1/unlock/sessions", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({ code: "LAUNCH26" })
}).then((response) => response.json());2. Post ordered playback events
POST
/api/v1/unlock/sessions/{sessionId}/eventsLivePropertyTypeDescription
sessionTokenopaque stringrequiredShort-lived secret returned only to the active browser.
sequenceintegerrequiredStrictly increasing event number starting at 1.
eventTypeenumrequiredstarted, heartbeat, paused, resumed, stalled, fullscreen_exit, hidden, cancelled or completed.
clientPositionMsintegerrequiredPlayback position used as a consistency signal, not as authoritative time.
3. Verify and consume
POST
/api/v1/unlock/sessions/{sessionId}/completeLiveSuccessful verification returns an internal /u/{token} URL. The token expires after five minutes, is consumed once and performs the final server-side redirect.