History
Past finals with our consensus closing line and how each bet graded, and every bet behind a published system's record. Both lists are newest first and paged with a cursor: pass meta.nextCursor as cursor until it is null. Each call costs 4 credits.
Line licensing
- Lines from our own pregame capture (
moneyline_capture) go to every key. Our capture started in October 2026. - Lines from the historical import (
oddsapi_historical) go only to keys licensed for raw lines. For other keys those items carrylineAccess: "restricted": the line, price and profit fields arenull, and so are the spread-cover and over/under grades. Scores, winners, starters and moneyline results stay. lineAccess: "none"means the game has no close. Every price is the consensus average across books, never one book's price.
Past Games
/v1/history/gamesPast finals, one entry per game: teams, final score, first-half score (NFL, NBA), our consensus closing main line (spread, total and moneyline prices) with its source, grades (winner, the team that covered, over/under, push), the first half's line and grades (NFL, NBA, 2023-24 on), and MLB starting pitchers / NHL starting goalies where known. Served from our stored complete seasons. MLB responses carry Retrosheet's notice in meta.notice: pitchers' throwing hands for 2021-2025 come from Retrosheet. The example is what a key licensed for raw lines sees.
| Parameter | Type | Required | Description |
|---|---|---|---|
| league | string | Yes | nfl, nba, nhl, mlb or ncaa_football |
| season | string | No | Season label, such as '2024-25' (MLB: '2025') |
| team | string | No | Team ID; that team's games, home or away |
| from | string | No | First ET date, YYYY-MM-DD, inclusive |
| to | string | No | Last ET date, YYYY-MM-DD, inclusive |
| limit | integer | No | Default 50, max 200 |
| cursor | string | No | meta.nextCursor from the previous page |
Response
{
"success": true,
"data": [
{
"eventId": "nba-ev-305575",
"league": "nba",
"season": "2024-25",
"seasonType": "postseason",
"startTime": "2025-06-23T00:00:00.000Z",
"date": "2025-06-22",
"neutralSite": false,
"homeTeam": { "id": "nba-oklahoma-city-thunder", "name": "Oklahoma City Thunder", "abbreviation": "OKC" },
"awayTeam": { "id": "nba-indiana-pacers", "name": "Indiana Pacers", "abbreviation": "IND" },
"score": { "home": 103, "away": 91 },
"firstHalfScore": { "home": 47, "away": 48 },
"lineAccess": "full",
"close": {
"source": "oddsapi_historical",
"quality": "ok",
"minutesBeforeStart": 4.38,
"spread": { "home": { "point": -7, "price": -106.2 }, "away": { "point": 7, "price": -114 } },
"total": { "point": 215.5, "overPrice": -109.3, "underPrice": -109.8 },
"moneyline": { "home": -255.3, "away": 210.1 }
},
"grades": { "winner": "home", "spread": "home", "total": "under" },
"firstHalf": { "lineAccess": "full", "close": { ... }, "grades": { "winner": "away", "spread": "away", "total": "under" } }
}
],
"meta": { "count": 1, "limit": 50, "nextCursor": "eyJ0Ijoi...", "seasons": ["2024-25"], "seasonsLeftOut": [], "lineAccess": "all_sources", "restricted": 0 }
}
Published System Bets
/v1/trends/systems/:systemId/betsEvery bet behind a published system's record (systemId from a kind: system card on GET /v1/trends), computed by the same backtester at the consensus close each time the systems are published and every night with the current season's finals, so the count matches the card. The live picks graded since the system was published come with them, marked live: true. 404 for an unknown, inactive, removed or duplicate system; 503 (ERR_SYSTEM_BETS_PENDING) while its bets are still being computed. Restricted bets keep a moneyline's result, since the score decides it.
| Parameter | Type | Required | Description |
|---|---|---|---|
| systemId | string | Yes | Published system ID |
| season | string | No | Season label, such as '2024-25' |
| limit | integer | No | Default 50, max 200 |
| cursor | string | No | meta.nextCursor from the previous page |
Response
{
"success": true,
"data": [
{
"eventId": "nfl-ev-pittsburgh-steelers-houston-texans-2026-01-13-0115",
"date": "2026-01-12",
"season": "2025-26",
"homeTeam": { "id": "nfl-pittsburgh-steelers", "name": "Pittsburgh Steelers", "abbreviation": "PIT" },
"awayTeam": { "id": "nfl-houston-texans", "name": "Houston Texans", "abbreviation": "HOU" },
"market": "total_h1",
"period": "h1",
"side": "under",
"betTeamId": null,
"line": 19,
"price": -108.5,
"result": "W",
"profit": 0.9217,
"live": false,
"lineAccess": "full"
}
],
"meta": { "systemId": "nfl-003", "total": 166, "backtestBets": 166, "livePicks": 0, "computedAt": "2026-10-20T19:00:00.000Z", "lineAccess": "all_sources", "restricted": 0, "nextCursor": "eyJ0Ijoi..." }
}