Skip to main content

Base URL

All match endpoints use the pattern /api/match/{matchId}/...
Finding Match IDs: Use /api/live for current matches, /api/schedule/{date} for scheduled matches, or /api/search?q=team to find matches by team name. Match IDs are numeric (e.g., 14025056).

Core Match Data

Get Match Details

Returns full match details including scores, teams, venue, status, timestamps, and entity IDs for players, referees, and venues.
number
required
Numeric match ID. Discover via /api/live, /api/schedule/{date}, or /api/search.
Recorded 24 September 2026 from GET /v2/football/match/16434052 (lists trimmed to 2 items).

Get Lineups

Returns confirmed starting lineups for both teams, including formation, player positions, jersey numbers, and substitutes.
Availability: Only available once lineups are confirmed — typically 30–60 minutes before kick-off. Returns empty for matches further in the future.
Recorded 24 September 2026 from GET /v2/football/match/16434052/lineups (lists trimmed to 2 items).

Get Statistics

Returns match statistics: possession, shots (on/off target), passes, fouls, corners, offsides, and more. Broken down by period (1st half, 2nd half, total).
Availability: Available during live matches and after full-time. Not available for pre-match.
Premium-tier leagues return the full 40+ metric set (including expected goals). Verified examples: match 14288988 (Portugal Primeira Liga) and match 14053822 (Eredivisie).
Recorded 24 September 2026 from GET /v2/football/match/16434052/statistics (lists trimmed to 2 items).

Get Incidents

Returns all match events in chronological order: goals, cards (yellow/red), substitutions, VAR decisions, penalty shootout events.
Recorded 24 September 2026 from GET /v2/football/match/16434052/incidents (lists trimmed to 2 items).

Get Scores

Returns detailed score breakdown including period scores (1st half, 2nd half), extra time, penalty shootout results, and aggregate scores for two-legged ties.
Recorded 24 September 2026 from GET /v2/football/match/16434052/scores (lists trimmed to 2 items).

Get Referee

Returns referee details assigned to the match. Use the returned referee.id to call referee-specific endpoints.
Recorded 24 September 2026 from GET /v2/football/match/16434052/referee (lists trimmed to 2 items).

Get Venue

Returns venue information: name, city, country, capacity, and coordinates. Use the returned venue.id for venue-specific endpoints.
Recorded 24 September 2026 from GET /v2/football/match/16434052/venue (lists trimmed to 2 items).

Match Status Codes

Every match object includes a status.code field (numeric) and a status.description (text). Use the numeric code for programmatic logic.
Detecting regulation vs. overtime (Ronen’s question):
  • Regulation ended: status.code === 100 — the match finished in normal time (90 min + stoppage).
  • Extra time started: status.code === 40 or 41 — the match is now in overtime.
  • Extra time ended: status.code === 110 — final result was decided in extra time.
  • Penalties: status.code === 50 (in progress) or 120 (ended after penalties).
To detect the transition from regulation to overtime, poll the match and watch for status.code changing from 7 (2nd half) → 31 (halftime, brief break) → 40 (extra time 1st half). If it jumps from 7 → 100, regulation ended normally with no extra time.

Advanced Analytics

Shotmap

Returns shot map data with xG (expected goals) values for each shot, including coordinates, player, shot type (foot/header), and outcome (goal/saved/blocked/off-target). Each shot carries both xg (expected goals) and xgot (expected goals on target) on premium-tier competitions. Verified examples:
Availability: Available during live matches (updates in real-time) and after full-time. Not available pre-match. Lower-tier competitions may return shots without xG values.
Recorded 24 September 2026 from GET /v2/football/match/16434052/shotmap (lists trimmed to 2 items).

Momentum Graph

Returns match momentum/pressure graph data over time. Each data point represents the attacking pressure at a given minute.
Recorded 24 September 2026 from GET /v2/football/match/16434052/graph (lists trimmed to 2 items).

Average Positions

Returns average player positions on the pitch for both teams. Useful for tactical analysis and formation visualization.
Availability: Available during live matches and after full-time only.
Recorded 24 September 2026 from GET /v2/football/match/16434052/average-positions (lists trimmed to 2 items).

AI Insights

Returns AI-generated post-match analysis with key talking points, tactical observations, and performance summaries.
string
default:"en"
Language code for the analysis (e.g., en, es, de, fr, pt).
Availability: Post-match only (this is the ai-insights-postmatch variant internally). The pre-match/live ai-insights endpoint returns 403 Forbidden and is not usable. Not available for all matches — primarily top-tier competitions. Returns 404 for matches without AI analysis.
Recorded 24 September 2026 from GET /v2/football/match/16434052/ai-insights?lang=en (lists trimmed to 2 items).

Team Heatmap

Returns team heatmap data for the match, showing areas of the pitch where the team was most active.
number
required
Numeric team ID. Get from the match details response (homeTeam.id or awayTeam.id).
Recorded 24 September 2026 from GET /v2/football/match/16434052/heatmap/2561 (lists trimmed to 2 items).

Player-Specific

Best Players / MOTM

Returns the best-performing players from the match with ratings and key statistics.
Recorded 24 September 2026 from GET /v2/football/match/16434052/best-players (lists trimmed to 2 items).

Award Details

Returns official man-of-the-match award details.
Recorded 24 September 2026 from GET /v2/football/match/16434052/award (lists trimmed to 2 items).

All Player Statistics

Returns comprehensive statistics for all players in the match: passes, tackles, shots, dribbles, duels, and ratings.
Recorded 24 September 2026 from GET /v2/football/match/16434052/player-statistics (lists trimmed to 2 items).

Specific Player Statistics

Returns detailed statistics for a specific player in the match.
number
required
Numeric player ID. Get from lineups or match details.
Recorded 24 September 2026 from GET /v2/football/match/16434052/player/1048651/statistics (lists trimmed to 2 items).

Betting & Odds

Returns odds for the match from a specific provider.
string
default:"featured"
featured for main markets or all for all available markets.
number
default:"1"
Odds provider ID. Use /api/odds/providers/{countryCode} to list available providers.

All Odds

Returns odds from all available providers and markets.
Recorded 24 September 2026 from GET /v2/football/match/16434052/odds/all (lists trimmed to 2 items).

Pre-Match Odds

Returns pre-match odds snapshot. Available before kick-off.
Availability: Pre-match only. Returns 404 after the match has ended.
Recorded 24 September 2026 from GET /v2/football/match/16434052/odds/pre-match (lists trimmed to 2 items).

Live Odds

Returns live in-play odds that update during the match.
Availability: Live matches only. Returns 404 for pre-match or finished matches.
Recorded 24 September 2026 from GET /v2/football/match/16434052/odds/live (lists trimmed to 2 items).

Winning Odds

Returns the winning odds movement for the match.
Recorded 24 September 2026 from GET /v2/football/match/16434052/winning-odds (lists trimmed to 2 items).

Team Streaks

Returns recent streak data for both teams (e.g., “5 wins in a row”, “unbeaten in 10”).
Recorded 24 September 2026 from GET /v2/football/match/16434052/streaks (lists trimmed to 2 items).

Streaks with Odds

Returns streak data combined with relevant odds markets.
Recorded 24 September 2026 from GET /v2/football/match/16434052/streaks/odds (lists trimmed to 2 items).

Pre-Match Data

The following endpoints are pre-match only. They return 404 for live or finished matches.

Head to Head

Returns head-to-head history between the two teams: previous meetings, results, and statistics.
Recorded 24 September 2026 from GET /v2/football/match/16434052/h2h (lists trimmed to 2 items).

Pre-Game Form

Returns recent form for both teams going into the match (last 5–10 results).
Recorded 24 September 2026 from GET /v2/football/match/16434052/pregame-form (lists trimmed to 2 items).

Predicted Lineups

Returns AI-predicted lineups before the official lineups are announced.
Predicted lineups are replaced by confirmed lineups once available (typically 30–60 min before kick-off).
Recorded 24 September 2026 from GET /v2/football/match/16434052/predicted-lineups (lists trimmed to 2 items).

Media & Social

Highlights

Returns video highlight links for the match (when available).
Recorded 24 September 2026 from GET /v2/football/match/16434052/highlights (lists trimmed to 2 items).

Media

Returns media content associated with the match (photos, videos).
Recorded 24 September 2026 from GET /v2/football/match/16434052/media (lists trimmed to 2 items).

Media Summary

Returns a localized media summary of the match.
string
default:"GB"
Country code for localized content (e.g., GB, US, DE). Defaults to GB.
Recorded 24 September 2026 from GET /v2/football/match/16434052/media-summary?country=DE (lists trimmed to 2 items).

Tweets

Returns tweets related to the match from official team and league accounts.
Recorded 24 September 2026 from GET /v2/football/match/16434052/tweets (lists trimmed to 2 items).

Comments (text commentary)

Returns the minute-by-minute text commentary for the match (newest first). This is the V2 commentary endpoint.
There is no /api/match/{matchId}/commentary route on V2 — it always returns Upstream returned status 404. Use /comments.
Historic depth (Premier League, verified): commentary is present from 2021/22 onwards, patchy in 2020/21, and absent (404) for 2019/20 and earlier. A 404 on /comments means the match has no commentary. For V1, use /v1/football/game/{gameId}/playbyplay.
Recorded 24 September 2026 from GET /v2/football/match/16434052/comments (lists trimmed to 2 items).

Fan Votes

Returns fan voting results (e.g., player of the match polls).
Recorded 24 September 2026 from GET /v2/football/match/16434052/votes (lists trimmed to 2 items).

Other

Managers

Returns manager/head coach details for both teams. Use the returned manager.id for manager-specific endpoints.
Recorded 24 September 2026 from GET /v2/football/match/16434052/managers (lists trimmed to 2 items).

Penalties

Returns penalty shootout details: order, takers, outcomes, and scores after each kick.
Only available for matches that went to a penalty shootout.
No example: this endpoint returned HTTP 404 for our Bundesliga sample on 24 September 2026. It only returns data when the entity has it (for example knockout draws, penalties or media), so handle an empty or 404 response.

TV Channels

Returns data.countryChannels: a map of ISO 3166-1 alpha-2 country code to an array of numeric channel IDs broadcasting the match in that territory.
The response contains channel IDs only — no channel names, logos, or broadcast times, and there is no endpoint that resolves a channel ID to metadata. Channel IDs are opaque but stable: the same ID identifies one broadcaster entity everywhere it appears, so a single ID can be listed under many countries when that broadcaster holds multi-territory rights. Listings are refreshed over time, so IDs may be added to or removed from a match — cache them as timestamped observations rather than fixed per-match values.
Recorded 24 September 2026 from GET /v2/football/match/16434052/channels (lists trimmed to 2 items).

Jerseys

Returns home and away jersey details for both teams: colors, patterns, and goalkeeper kit.
Recorded 24 September 2026 from GET /v2/football/match/16434052/jerseys (lists trimmed to 2 items).

Fantasy

Returns fantasy-relevant data for the match: points, bonuses, and player ownership.
Recorded 24 September 2026 from GET /v2/football/match/16434052/fantasy (lists trimmed to 2 items).

Example Requests

Example responses

Real responses recorded on 24 September 2026 from the Bundesliga (tournament 35, season 97464), match SC Paderborn 07 3-1 TSG Hoffenheim (16434052). Long lists are shortened to the first items; field names and structure are unchanged.
Last modified on September 24, 2026