# GET /v2/fixtures/{id}/points

Group: Fixtures

The match point by point. Tennis: sets → games (server, winner, set score) → points. Volleyball, table tennis, badminton: sets → rallies with the running score. Cricket: innings → overs → balls (outcome, runs, extras, wicket and dismissal, batter, bowler, score after the ball). Baseball: at-bats (inning, top / bottom, batting side, batter, pitcher, the home win probability before and after). Darts: sets → legs (start score, who threw first, winner, checkout) → visits (score of the visit, both sides’ remaining, checkout).

Plans: Pro + Business only (other plans get 403 endpoint_not_in_plan).

Note: format says which list is filled (sets for tennis and rally sports, innings for cricket, atBats for baseball, darts for darts — the others are empty). Darts visits carry no individual darts (the source has none); a legs match is one set. Baseball at-bats come with the source’s own home win probability (0–100, not our model) and no outcome (the source gives none). Other sports, and a match without point-by-point yet: 200 with format null and empty lists. Rally sports list the rallies the source recorded — lower tiers can miss some (the running score shows the gap). Tennis points carry the score after the point (homeScore / awayScore: "15", "A"; null on the appended game-winning point), description (ace, doubleFault) and homeType / awayType (won, breakPoint, setPoint, miniBreak, none); a match tie-break is the deciding set’s only game, counted to 10. Refreshed about every 30 seconds while the match is live.

## Parameters

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

## Response

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

## Request

cURL:

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

TypeScript:

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

Python:

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

Go:

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

CLI:

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

## Example response

```json
{ "data": { "format": "cricket", "sets": [],
    "innings": [ { "inning": "inning2", "battingSide": "away", "overs": [ …,
      { "number": 49, "balls": [ { "sequence": 314, "ball": 1, "outcome": "wicket", "runs": 0, "totalRuns": 0,
          "wicket": true, "dismissal": "bowled", "batter": { "id": 886956, "name": "Asitha Fernando", … },
          "bowler": { "id": 975942, "name": "Haris Rauf", … }, "fielder": null,
          "dismissedBatter": { "id": 886956, … }, "scoreRuns": 268, "scoreWickets": 10 } ] } ] } ] } }

{ "data": { "format": "tennis", "innings": [],
    "sets": [ { "period": "period1", "homeScore": 6, "awayScore": 4, "points": [],
      "games": [ { "number": 1, "server": "home", "winner": "home", "homeGames": 1, "awayGames": 0,
                   "points": [ { "homeScore": "15", "awayScore": "0", "winner": "home", "description": "ace",
                                 "homeType": "won", "awayType": "none" }, … ] }, … ] }, … ], "atBats": [] } }

{ "data": { "format": "baseball", "sets": [], "innings": [],
    "atBats": [ { "inning": 1, "half": "top", "battingSide": "away",
      "batter": { "id": 912, "name": "Yandy Díaz", "slug": "diaz-yandy", "shortName": "Y. Díaz", "image": "https://cdn.sportsapi.app/v2/players/912/photo" },
      "pitcher": { "id": 913, "name": "Shawn Armstrong", "slug": "armstrong-shawn", "shortName": "S. Armstrong", "image": null },
      "homeWinProbabilityBefore": 49, "homeWinProbabilityAfter": 50.8, "at": "2026-10-17T00:10:04.000Z" }, … ] } }

{ "data": { "format": "darts", "sets": [], "innings": [], "atBats": [],
    "darts": [ { "number": 1, "winner": "home", "homeSets": 1, "awaySets": 0,
      "legs": [ { "number": 1, "startScore": 501, "throwingFirst": "away", "winner": "home", "homeLegs": 1, "awayLegs": 0, "checkout": 6,
                  "visits": [ { "side": "away", "scored": 100, "homeRemaining": 501, "awayRemaining": 401, "checkout": false },
                              { "side": "home", "scored": 112, "homeRemaining": 389, "awayRemaining": 401, "checkout": false }, … ] }, … ] }, … ] } }
```

---

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/points · All docs: https://sportsapi.app/markdown/en/docs.md
