Why is the players field empty in MatchTimeline?
In the Data Feed, although the Match message schema includes a players field, player lineups are often unpopulated or empty in pre-match MatchTimeline snapshots before an event begins. This happens because final player rosters, stand-ins, or recent transfers are frequently unconfirmed until the match is about to start or goes live.To reliably determine who is playing at each stage of a match, you should use the following approach:
- For pre-match / upcoming matches:
- Call the
TeamProfileunary endpoint using the team's URN. - Read the
current_map_roster_by_sport(orplayers) field to view the team's expected roster on file. - For live matches:
- Connect to the
LiveDataFeedstream. - Active map states deliver exact, real-time player identifiers and nicknames for that specific map (e.g.
CS2PlayerMapStateorDota2PlayerInfoState).
Always prioritize players received via the LiveDataFeed stream over pre-match TeamProfile rosters. Stand-ins or last-minute player substitutions are only guaranteed to be reflected once the live data stream begins.