Fixtures

Point by point

GET/v2/fixtures/{id}/pointsPro + Business

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).

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

id
pathrequired
our numeric id (positive integer)

Response

data
Points

Every /v2 call can also answer the common errors.

Try it →
$ curl -H "Authorization: Bearer sk_live_…" \
    "https://api.sportsapi.app/v2/fixtures/{id}/points"
Example
{ "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 }, … ] }, … ] }, … ] } }