Skip to main content
Queries the live score and phase (phase) for a single match by match_id, for clients to poll for the latest score. This endpoint provides only the “result” (score, current minute, phase) and no specific events (goalscorers, yellow cards, corners, etc.); use Live Match Stats when you need event-by-event data. Typically used for lightweight scenarios like a score bar or floating score widget that only care about “what’s the current score and what minute is it”; to determine whether a match has finished, always use phase == "finished" rather than guessing from status (this endpoint does not send a status field).

Endpoint

Parameters

How to discover “not started / in progress” matches:
  1. /matches/window (recommended): e.g. from_days=0&to_days=0 to fetch the full day’s fixtures, then interpret the status form: not started = HH:MM / Not Started / TBA / empty string, in progress = plain numeric minute / HT; the resulting match_id can be used directly with this endpoint.
  2. /odds/live without a match_id: returns the set of matches currently live (in progress) with active odds.

Response fields (data: array)

Localization note: when lang is a non-default language, home/away/league (team names/league name) are not yet localized by lang; phase_label and other *_label tags work as normal, and the original phase code value is unchanged. Not every value has localized text; when there is no corresponding text this field is omitted, so clients must handle that gracefully.
This endpoint only sends score information and does not include the source status code (status) field; use phase consistently to determine the match phase/whether it has finished. For event-level status (goals/corners/VAR, etc., with English codes), use the 15 Match Events endpoint.

Enum reference

phase enum (4 values)

Request example

Response example

HTTP 200, final score 3-1 including extra time

Error example

Missing match_id → HTTP 400, error.code INVALID_PARAMS