> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sportrix.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve Half-Time and Full-Time Results per Match

> Use GET /matches/{id}/result to fetch frozen half-time and full-time snapshots for completed matches, including score, stats, and event timeline.

`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](/guides/live-scores-rest) 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.

<Note>
  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`.
</Note>

## Fetch a result

```bash theme={null}
curl "https://api.sportrixdata.com/api/matches/41282/result" \
  -H "X-API-Key: $KEY"
```

**Example response:**

```json theme={null}
{
  "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`) |

<Tip>
  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.
</Tip>
