Skip to main content

Endpoint

Top-level — no sport prefix. One call returns every session you may watch, across all sports. Each session carries two orthogonal fields: league says which competition it is (a filter and a label — access is granted per session, not per league); sport says how to parse (which event vocabulary and state shape the feed speaks). sessionId is the {session} segment for WS /api/subscribe/{session} and GET /api/history/{session} directly — the feed URLs carry no sport.

Query parameters

League slugs

league values are deliberately terse abbreviations. The vocabulary grows as new leagues go live — each addition appears here, and every league always maps to exactly one sport value. Currently:

Authentication

A valid token is required — an ss_ API key or JWT, sent as a Bearer token or the ?token= query parameter, the same credential as /subscribe. There is no anonymous access — every request requires a valid token; a session being public waives the entitlement, not authentication. Entitlements decide what you see (identically for both statuses): See Authentication for token formats.

Error responses


Response

Ordering is newest-first within each status: status=open by publishedAt (most recently published first), status=closed by closedAt (most recently closed first). An entitled caller sees their granted sessions first, then the remaining public sessions, each block ordered the same way. Sessions move from status=open to status=closed when they close — a finished session stops streaming but stays discoverable here and readable via /history.