GET /matches/{id}/result returns frozen snapshots captured at half-time and full-time for a match. These are permanent records — unlike the live endpoint, they don’t change after the match ends. Calling this endpoint requires the final_scores scope.
Endpoint
GET /api/matches/{match_id}/result
What it returns
The response contains two fields, each holding a live snapshot object frozen at the moment it was captured:
| Field | Type | Description |
|---|
half_time | object | null | Snapshot captured at half-time. Does not include an events array — the full event timeline lives in full_time. null if not captured. |
full_time | object | null | Snapshot captured at full-time. Includes the complete events timeline. null if the match hasn’t finished yet. |
The snapshot status field reflects the moment of capture: "ht" for half-time and "ft" for full-time.
A 404 is returned only when neither snapshot exists — for example, when a match hasn’t finished and no half-time snapshot was captured either. If at least one snapshot is available, you’ll get a 200 response with the other field set to null.
Fetch a result
curl "https://api.sportrixdata.com/api/matches/41282/result" \
-H "X-API-Key: $KEY"
Example response:
{
"half_time": {
"v": 1,
"status": "ht",
"home": "FC Arlanda",
"away": "IFK Stocksund",
"score": { "home": 0, "away": 0 },
"clock": { "minute": 45, "second": 0, "period": "HT", "running": false, "added": 0 },
"stats": { "corners": { "home": 2, "away": 1 } }
},
"full_time": {
"v": 1,
"status": "ft",
"home": "FC Arlanda",
"away": "IFK Stocksund",
"score": { "home": 1, "away": 0 },
"clock": { "minute": 90, "second": 0, "period": "FT", "running": false, "added": 0 },
"stats": { "corners": { "home": 2, "away": 3 } },
"events": [
{ "minute": "60", "type": "goal", "team": "home", "label": "Goal FC Arlanda" }
]
}
}
Key fields explained
status — "ht" on the half-time snapshot, "ft" on the full-time snapshot. These are lowercase and distinct from the catalog status values (NOT_STARTED, STARTED, FINISHED).
clock — Shows the time at which the snapshot was frozen. The half-time snapshot has minute: 45, period: "HT", and running: false. The full-time snapshot has minute: 90, period: "FT", and running: false.
score — The final score at that point in the match. The half_time score is the score at the break; the full_time score is the final result.
events — The event timeline is only present in full_time. The half_time object omits it to avoid duplication. Iterate full_time.events to get the complete match incident log: goals, cards, corners, substitutions, and more. Each entry has a minute, type, team, label, and optionally a score string showing the scoreline at that moment.
Handling null fields
| Scenario | half_time | full_time |
|---|
| Match completed normally | Snapshot object | Snapshot object |
| Half-time captured, match not yet finished | Snapshot object | null |
| Neither snapshot captured yet | — | — (returns 404) |
To build a seamless transition from live to final, combine this endpoint with the WebSocket stream or REST polling. While the match is in play, track updates via /live or the WebSocket. Once the catalog status for the match changes to FINISHED, call /result to retrieve the permanent frozen snapshots.