Overview
The FIFA World Cup websocket streams canonical live game data for FIFA World Cup games covered by Predexon. This is a game-state feed, not a market discovery feed. It sends live score, status, period, clock, winner, and key game-event updates when available. Messages are normalized by Predexon and do not expose provider attribution.This channel is exclusively for FIFA World Cup game data. Use the sports discovery endpoints to discover tradable markets and outcomes; use this websocket to monitor the underlying live game state.
Endpoint
Subscribe
Subscribe to all FIFA World Cup games covered by Predexon:All Live Games Snapshot
When subscribing withpolymarket_event_ids: ["*"], the server sends an initial live_games_snapshot message containing the current live snapshot for all covered FIFA World Cup games.
If no covered FIFA World Cup games are live at subscription time, the server still sends the snapshot message with an empty games array. The connection remains open and future game_state and game_event messages are delivered when games become active.
After the initial snapshot, the websocket streams game_state updates as individual games change and game_event messages when key incidents are available.
Mock Live Testing
Usefilters.mock on the regular sports_fifa_world_cup channel when you want the same websocket method and message shape as production live data, but there are no live FIFA World Cup games available.
WSS mock mode is a single deterministic test stream. It is meant for websocket parser testing, score/status update handling, last_play, significant_events, and game_event handling. For multi-game display testing, use the REST endpoint with mock=live:
channel: "sports_fifa_world_cup" and emit the normal message sequence:
Mock messages include
mode: "mock" inside data so clients can clearly separate test data from live production updates.
Supported mock values:
The normal optional controls can be used with mock streams:
Example mock stream with only score-change event pushes:
last_play and significant_events
significant_events[] is the normalized key-incident list for the game. It can include goals, cards, substitutions, penalties, period changes, game-end events, and other supported incidents.
last_play is the latest notable play for display. When present, it maps to the most recent item in significant_events[].
last_play can be null when no notable incident has happened yet, or when the live data source has not supplied a latest notable play for that game at that time. This does not mean the field is under development.
Server Messages
ack
game_state
game_state is the core message type. It is sent on subscribe and whenever the current game state changes materially: score, status, period, clock, winner, or live/ended state.
score remains the match score and penalty_score carries the shootout score:
game_event
game_event is sent when Predexon has a normalized key incident for the game. Event availability can vary by game and data coverage.
If filters.event_types is supplied on the subscription, only matching game_event messages are pushed. game_state messages are still sent as full snapshots.
error
Message Types
Sequence
sequence is a numeric ordering value. For live game_state and game_event pushes, it is generated as a monotonic timestamp-like value and does not reset during normal service lifecycle.
live_games_snapshot.sequence is the sequence for the snapshot message itself. If individual games[] objects include a sequence, that value is the cached game’s last state sequence. Clients should use sequence for ordering or deduplication, not as a replay cursor. After reconnecting, treat the latest game_state or current snapshot as authoritative.
Period and Clock
For FIFA World Cup game state,period is a normalized soccer match phase.
clock is a display clock for elapsed match time. It counts upward, not downward. It is minute-level, not second-level, and is formatted as values such as 18', 45+3', 67', or 120+1'.
clock can be null during scheduled, half-time, full-time, waiting, penalty-shootout, canceled, postponed, abandoned, suspended, or interrupted states.
The websocket sends updates when the game state changes materially, for example score, status, period, clock, winner, or live/ended state changes. Push cadence is event-driven and seconds-level; it is not a minute-based polling feed.
The feed currently exposes the overall scheduled kickoff as scheduled_start. It does not expose separate first-half, second-half, extra-time, or penalty-shootout start timestamps. Clients should use period, status_text, clock, updated_at, and significant_events[] for phase display.
Game Event Vocabulary
game_event.event.type is a normalized vocabulary. Predexon emits these events only when the underlying game data is available and normalized.
Identifiers
Polymarket identifiers are returned as top-level fields so clients can reconcile the live game state with Polymarket event pages and venue-native market metadata.
Coverage
The channel is intended to provide live score, penalty shootout score, status, period, clock, winner, and game lifecycle updates for covered FIFA World Cup games. Key incidents are included when available and normalized by Predexon. Incident coverage may include goals, cards, substitutions, penalties, penalty shootout attempts, period changes, and game-end events, but availability can vary by game and live-data coverage.Replay Testing
Use the replay channel to test websocket integration before a live FIFA World Cup game is active. The replay channel emits the same game-state payload shape as the productionsports_fifa_world_cup channel, including live_games_snapshot, game_state, and game_event messages. Replay messages use the replay channel name and include mode: "replay" inside data.
Replay streams are accelerated for testing. Message order is preserved, but clients do not need to wait for real match time.
Available replay IDs:
Replay streams are for integration testing. Production FIFA live messages use real Polymarket identifiers. Historical replay streams may use replay-only identifiers so clients can test the websocket message shape without relying on a currently live FIFA game.
After subscribing, the server sends an
ack, then emits replay messages for the requested replay ID. Clients can use the replay stream to validate parsing, score updates, penalty shootout scores, status changes, last_play, significant_events, and individual game_event handling.
Replay messages use channel: "sports_fifa_world_cup_replay" and include mode: "replay" inside data so they cannot be confused with live production updates.
The replay includes:
For example, the Morocco vs. Norway replay progresses from
0-0 to 1-0, 1-1, and finally 1-1, with game-start, goals, yellow-card, substitution, half-time, second-half, and game-end events included.
Heartbeats and Reconnects
The gateway uses websocket ping/pong frames for connection liveness. Clients should respond to ping frames according to their websocket library’s normal behavior. If the connection drops, reconnect and resubscribe. Clients should treatgame_state as the latest full snapshot for a game.