GET /api/v1/matches/{matchId}
GET /api/v1/matches/{matchId}/score
GET /api/v1/matches/{matchId}/timelineDEVELOPERS
One canonical event. Every downstream surface.
Build against stable match, score and timeline resources; resume live streams after disconnects; verify every webhook before accepting it.
GET /api/v1/matches/{matchId}/stream
Last-Event-ID: 42
Accept: text/event-streamLiveStreamBlog-Event: score.changed
LiveStreamBlog-Timestamp: 1786060800
LiveStreamBlog-Signature: v1=…Retry safely
Client idempotency keys and expected aggregate versions prevent duplicate or silently conflicting writes.
Reconnect exactly
SSE event IDs and durable replay let readers continue without polling or losing accepted events.
Trust deliberately
Tenant-scoped bearer credentials, explicit scopes and HMAC verification keep public output keys separate from editorial power.