Skip to main content

The lifecycle driver

<sport_event_status> inside <odds_change> is the single driver of a match’s lifecycle — prematch → live → finished/removed. It rides on every live/prematch message. A <fixture_change> status attribute is informational only; the client must drive state off sport_event_status.

Football status set

Football needs lifecycle distinctions the CS2 base set ({0,1,4,5}) can’t express — a suspended match must not be dropped, a postponed one is rescheduled not removed, and ended (play over) is distinct from closed (settled). The full numeric set the football feed publishes: Build your status map from GET /v1/descriptions/{locale}/match_status — it enumerates exactly these codes, localized.

Message mapping

A match finish is an <odds_change> carrying <sport_event_status status="4"> — never a fixture_change. change_type=5 stays a pure coverage signal with no “finished” meaning, so a coverage tweak is never mistaken for a match ending.

Routing keys

Football messages use the same 8-section routing-key layout as every sport — only the sport section differs (1 = Soccer). See AMQP transport.
Last modified on June 20, 2026