Skip to main content
All entity IDs in AnySport carry a semantic prefix:

Match IDs are consistent across all endpoints

Match IDs use the as_ prefix consistently across every endpoint. The same match uses the same match_id across the fixtures list, match details, lineups, live score, match events, live odds, and pre-match odds — and this is identical between the HTTP endpoints and WebSocket pushes. This means a typical integration flow can be very simple:
1

Query fixtures to get the match_id

Call /matches (filtered by date, league, or team) to get the match_id of the target match from the results.
2

Use the same match_id directly to fetch live data

Pass the match_id obtained above as-is to /livescore, /matches/{match_id}/situation, and /odds/live — no conversion needed.
3

Or subscribe to WebSocket pushes

The same match_id can also be placed directly into the data.match_id field of a WebSocket subscription request, enabling targeted push updates for a single match.
There’s no need to maintain a “fixtures ID → live data ID” mapping table, which is a common pain point with many similar data services — AnySport avoids this problem by design.
Example (2026 World Cup, Argentina vs Switzerland): matches, livescore, situation, and odds/live all use as_3b37c382f39a4235aa93705f053b2da4.
Note: the pre-match feed and the live (in-play) feed are still two separate physical data streams, and the league naming differs between them (e.g. pre-match uses World: World Championship - Play Offs, while live uses World Cup 2026). However, the match_id is consistent, so this does not affect your ability to correlate the two datasets by match_id.