Skip to main content
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:
FieldTypeDescription
half_timeobject | nullSnapshot captured at half-time. Does not include an events array — the full event timeline lives in full_time. null if not captured.
full_timeobject | nullSnapshot 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

Scenariohalf_timefull_time
Match completed normallySnapshot objectSnapshot object
Half-time captured, match not yet finishedSnapshot objectnull
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.