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 carry lineAccess: "restricted": the line, price and profit fields are null, 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

GET/v1/history/games

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

ParameterTypeRequiredDescription
leaguestringYesnfl, nba, nhl, mlb or ncaa_football
seasonstringNoSeason label, such as '2024-25' (MLB: '2025')
teamstringNoTeam ID; that team's games, home or away
fromstringNoFirst ET date, YYYY-MM-DD, inclusive
tostringNoLast ET date, YYYY-MM-DD, inclusive
limitintegerNoDefault 50, max 200
cursorstringNometa.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

GET/v1/trends/systems/:systemId/bets

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

ParameterTypeRequiredDescription
systemIdstringYesPublished system ID
seasonstringNoSeason label, such as '2024-25'
limitintegerNoDefault 50, max 200
cursorstringNometa.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..." }
}