# GET /v2/fixtures/{id}

Group: Fixtures

Full fixture: teams, score, status, match clock, league, season, round, venue, winner, the referee (with career cards per game), both managers (homeManager / awayManager), previousLegFixtureId (our id of the first leg or previous series game) and aggregateWinner (on a finished second leg, the side that went through) — plus sport extras: seeds (homeSeed / awaySeed), tennis serving (the side serving now) and surface (hard / clay / grass / carpet, indoor), cricket note, battingSide, toss (winner, bat / bowl), umpires and tvUmpire, MMA / boxing fightResult (method, round, and the time of a stoppage), fightDiscipline (boxing, kickboxing, muayThai, … when the source tags it) and fightCard (main card / prelims, order, weight class), attendance (spectators, when reported), matchFormat (darts best of sets / legs, esports best of games), baseball inningState (inning, top / bottom, count, outs, runners) and basketball timeouts (left per side).

Note: Every part of a score is in periods: football and futsal extra time as periods.extra1 / extra2, every other sport’s overtime as periods.overtime, baseball extra innings as period10, period11, …; current never counts a shoot-out (penalties does — in ice hockey current includes the one goal credited for a shoot-out win). status.description is our own label (“After penalties”, “After extra time”, “After overtime”, “Game 1”, …). A fixture whose coverage the source cancelled is status canceled with empty score sides. A match finished on penalties has the shoot-out winner as winner — on a second leg too, where the night’s result stays in normalTime; aggregateWinner says who went through on aggregate (null when the source does not settle a level aggregate; lists and WebSocket snapshots may carry null — read it here). referee, homeManager / awayManager, toss, umpires, tvUmpire, previousLegFixtureId, fightCard and attendance are filled here only: fixture lists, the live board and WebSocket snapshots carry them as null (surface also on the live tennis board). inningState and timeouts are set only while the match is in play (null otherwise) and arrive in WebSocket deltas (inningState whole, timeouts partial; null when play stops) — the source re-sends the baseball state about once a minute, so the count can lag. fightResult arrives in a WebSocket delta of its own, usually after the finishing one (the source publishes it ~20–60 s after the winner). Rugby periods fill while live: period1 at half-time, period2 = current − period1 during the second half. Esports periods: CS = 1 for each map won (0 otherwise), LoL = the side’s kills in game N. serving replaces firstToServe (same value, kept for now, deprecated).

## Parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `id` | path | yes | our numeric id (positive integer) |

## Response

- `data`: `Fixture`
- Objects: Fixture (https://sportsapi.app/markdown/en/reference.md#fixture)

## Request

cURL:

```bash
curl -H "Authorization: Bearer sk_live_…" \
    "https://api.sportsapi.app/v2/fixtures/{id}"
```

TypeScript:

```ts
const { data, meta } = await client.fixtures.get(id);
```

Python:

```python
res = client.fixtures.get(id)
```

Go:

```go
res, err := client.Fixtures.Get(ctx, id)
```

CLI:

```bash
$ sportsapi fixtures get <id>
```

## Example response

```json
{ "data": { "id": 201324, "sport": "football", "startTime": "2026-10-18T15:30:00.000Z",
    "status": { "type": "finished", "phase": "finished", "code": 120, "description": "After penalties",
                "period": null, "finish": "penalties" },
    "homeScore": { "current": 1, "penalties": 2,
                   "periods": { "period1": 0, "period2": 1, "extra1": 0, "extra2": 0 }, … },
    "awayScore": { "current": 1, "penalties": 4, … },
    "winner": "away", "clock": null,
    "round": { "number": 4, "name": "Round 4", "slug": "round-4", "prefix": null },
    "season": { "id": 200386, "name": "FA Cup 25/26", "year": "25/26", "startYear": 2025, "endYear": 2026 },
    "venue": { "id": 157902, "name": "St. Andrew's", "city": "Birmingham",
               "country": { "code": "EN", "name": "England" }, "capacity": 29409 },
    "referee": { "id": 51022, "name": "Michael Oliver", "slug": "michael-oliver", "country": { "code": "EN", "name": "England" },
                 "games": 612, "yellowCards": 2190, "redCards": 61, "yellowRedCards": 38,
                 "image": "https://cdn.sportsapi.app/v2/referees/51022/photo" },
    "homeManager": { "id": 912070, "name": "Chris Davies", "slug": "chris-davies", "shortName": "C. Davies", "image": "https://cdn.sportsapi.app/v2/managers/912070/photo" },
    "awayManager": { "id": 794942, "name": "Mikel Arteta", "slug": "mikel-arteta", "shortName": "M. Arteta", "image": null },
    "previousLegFixtureId": null, "aggregateWinner": null, "surface": null, "toss": null, "umpires": null, "tvUmpire": null, "fightCard": null, … } }

// Second leg: "previousLegFixtureId": 582371, "aggregateWinner": "home"   (homeScore.aggregated 2, awayScore.aggregated 2, penalties 5-3)
// Tennis: "serving": "home", "surface": { "type": "hard", "indoor": true, "name": "Hardcourt indoor" }
// Cricket: "toss": { "winner": "away", "decision": "bowl" }, "umpires": ["Chris Gaffaney", "Richard Illingworth"], "tvUmpire": "Joel Wilson"
// MMA: "fightCard": { "section": "mainCard", "order": 12, "weightClass": "light" }
// Basketball (in play): "attendance": 19156, "timeouts": { "homeRemaining": 3, "awayRemaining": 5, "perTeam": 7 }
// Baseball (in play): "inningState": { "inning": 7, "half": "bottom", "battingSide": "home", "balls": 2, "strikes": 1, "outs": 1,
//                                     "bases": { "first": true, "second": false, "third": true } }
// Darts: "matchFormat": { "bestOfSets": 5, "bestOfLegs": 5, "bestOfGames": null }   (a legs match: bestOfSets 1, bestOfLegs 7)
// Esports: "matchFormat": { "bestOfSets": null, "bestOfLegs": null, "bestOfGames": 3 }
```

---

Base URL: https://api.sportsapi.app. Send your API key as `Authorization: Bearer <key>` on every /v2 request; keys are created in the dashboard (https://sportsapi.app/dashboard).
HTML: https://sportsapi.app/docs/fixtures/get · All docs: https://sportsapi.app/markdown/en/docs.md
