Broadcast control

Update broadcast identity and control a live playday through Public API v2.

Broadcast routes use an installed Application OAuth token with broadcast:read or broadcast:manage. They do not use the signed-in developer control credential.

Read the current revision

Start with the event's broadcast or playday resource. Keep the response ETag for the next write.

curl https://strave.gg/api/v2/events/event_01K4ZK/playdays/playday_01K4ZM \
  --header "Authorization: Bearer $STRAVE_ACCESS_TOKEN" \
  --include

The item response contains the same positive integer in data.revision that appears in the strong ETag, for example ETag: "7".

Replace the rundown

PUT replaces the ordered match list. Every match must belong to the selected event.

curl --request PUT \
  https://strave.gg/api/v2/events/event_01K4ZK/playdays/playday_01K4ZM/rundown \
  --header "Authorization: Bearer $STRAVE_ACCESS_TOKEN" \
  --header 'If-Match: "7"' \
  --header "Content-Type: application/json" \
  --data '{
    "matchIds": ["match_01K4ZN", "match_01K4ZP"]
  }'

The same replace semantics apply to /staff. /live-match accepts { "matchId": null } to clear the live match. /overlay-score accepts non-negative integer scoreA and scoreB values. Overlay scores affect only the broadcast presentation; report an official result through the match-result routes.

Activate or deactivate a playday

Actions require both If-Match and Idempotency-Key:

curl --request POST \
  https://strave.gg/api/v2/events/event_01K4ZK/playdays/playday_01K4ZM/activate \
  --header "Authorization: Bearer $STRAVE_ACCESS_TOKEN" \
  --header 'If-Match: "8"' \
  --header "Idempotency-Key: activate-playday-01K4ZM-v1" \
  --header "Content-Type: application/json" \
  --data '{}'

Use /deactivate with the same headers to stop the live playday. Repeating the same action with the same key and body returns the stored result and sets Idempotency-Replayed: true.

Broadcast identity

PATCH /events/{eventId}/broadcast changes only fields present in the body. Send null for eventNameOverride or overlayMeta to clear it.

{
	"eventNameOverride": "Major Final",
	"colors": {
		"primaryColor": "#7C3AED",
		"backgroundColor": "#09090B"
	},
	"overlayMeta": {
		"mode": "custom",
		"customLabel": "Up next",
		"customValue": "{teamA} vs {teamB}"
	}
}

Successful writes return the affected resourceId, its new revision, and updated. Subscribe to the broadcast and playday webhook types returned by GET /event-types when another system needs to react to these changes.