Historische Closing Odds
Rufen Sie die für alle Events an einem bestimmten Datum erfassten Closing Odds ab — den letzten Pre-Match-Preis jedes Sportsbooks, bevor ein Spiel live ging, mit Power-devigten No-Vig-Wahrscheinlichkeiten.
GET /api/v1/historical/odds/closingSharp-Tier oder höher erforderlich. Pro- und niedrigere Tiers erhalten einen 403 tier_restricted Fehler. Dieser Endpoint ist durch das closing_lines Feature gegated.
Phase-1-Datenfenster: Closing Lines werden in Echtzeit bei isLive false→true Übergängen erfasst. Valkey speichert 30 Tage an Daten. Die Anfrage eines Datums, das älter als 30 Tage ist, gibt ein leeres Ergebnis zurück.
Authentifizierung
Erfordert API key. Sharp-Tier oder höher erforderlich (closing_lines Feature).
Query-Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
date | string | Ja | Datum im Format YYYY-MM-DD (UTC). |
sport | string | Ja | Sport-Identifikator, z. B. basketball, football, ice_hockey. |
league | string | Ja | Liga-Identifikator, z. B. nba, nfl, nhl. |
Alle drei Parameter sind erforderlich. Die Antwort wird auf Events gefiltert, die exakt dem Sport und der Liga an diesem UTC-Datum entsprechen.
Datumsfenster
Der Sharp-Tier erlaubt einen Lookback von bis zu 30 Tagen. Die Anfrage eines Datums außerhalb Ihres Tier-Fensters gibt einen 403 tier_restricted Fehler mit der zulässigen Fenstergröße zurück.
Beispielanfragen
cURL
# NBA Closing Lines für den 10. April
curl -X GET "https://api.sharpapi.io/api/v1/historical/odds/closing?date=2026-04-10&sport=basketball&league=nba" \
-H "X-API-Key: YOUR_API_KEY"
# NFL Closing Lines
curl -X GET "https://api.sharpapi.io/api/v1/historical/odds/closing?date=2026-04-06&sport=football&league=nfl" \
-H "X-API-Key: YOUR_API_KEY"Antwort
Erfolg (200)
{
"success": true,
"data": {
"date": "2026-04-10",
"sport": "basketball",
"league": "nba",
"events": [
{
"event_id": "evt_nba_bos_mia_20260410",
"sport": "basketball",
"league": "nba",
"home_team": "Boston Celtics",
"away_team": "Miami Heat",
"event_start_time": "2026-04-10T18:00:00Z",
"first_captured_at": "2026-04-10T17:58:12.000000000Z",
"books": [
{
"book": "pinnacle",
"captured_at": "2026-04-10T17:58:12.000000000Z",
"lines": [
{
"market_type": "moneyline",
"selection": "Boston Celtics",
"selection_type": "home",
"line": null,
"odds_american": -145,
"odds_decimal": 1.690,
"implied_probability": 0.5920,
"no_vig_probability": 0.5813
},
{
"market_type": "moneyline",
"selection": "Miami Heat",
"selection_type": "away",
"line": null,
"odds_american": 125,
"odds_decimal": 2.250,
"implied_probability": 0.4444,
"no_vig_probability": 0.4187
},
{
"market_type": "point_spread",
"selection": "Boston Celtics",
"selection_type": "home",
"line": -3.5,
"odds_american": -110,
"odds_decimal": 1.909,
"implied_probability": 0.5238,
"no_vig_probability": 0.5000
}
]
},
{
"book": "draftkings",
"captured_at": "2026-04-10T17:57:44.000000000Z",
"lines": [
{
"market_type": "moneyline",
"selection": "Boston Celtics",
"selection_type": "home",
"line": null,
"odds_american": -140,
"odds_decimal": 1.714,
"implied_probability": 0.5833,
"no_vig_probability": 0.5730
},
{
"market_type": "moneyline",
"selection": "Miami Heat",
"selection_type": "away",
"line": null,
"odds_american": 118,
"odds_decimal": 2.180,
"implied_probability": 0.4587,
"no_vig_probability": 0.4270
}
]
}
]
}
],
"total_events": 5,
"total_lines": 48
},
"meta": {
"source": "valkey:closing_line",
"tier_window_days": 30,
"filters": {
"sport": "basketball",
"league": "nba",
"date": "2026-04-10"
},
"updated_at": "2026-04-17T20:00:00.000000000Z"
}
}Fehlerantworten
400 Validierungsfehler
{
"error": {
"code": "validation_error",
"message": "date parameter is required in YYYY-MM-DD format"
}
}403 Tier-Beschränkung (falscher Tier)
{
"error": {
"code": "tier_restricted",
"message": "The 'closing_lines' feature requires Sharp or higher.",
"required_tier": "sharp",
"docs": "https://docs.sharpapi.io/en/pricing"
}
}403 Tier-Beschränkung (Datum zu alt)
{
"error": {
"code": "tier_restricted",
"message": "Your sharp plan allows historical data up to 30 days back",
"tier": "sharp",
"docs": "https://sharpapi.io/pricing"
}
}Antwortfelder
data Objekt
| Feld | Typ | Beschreibung |
|---|---|---|
date | string | Das angefragte Datum (YYYY-MM-DD) |
sport | string | Angewandter Sport-Filter |
league | string | Angewandter Liga-Filter |
events | array | Closing-Line-Events, die dem Datum, Sport und der Liga entsprechen |
total_events | integer | Anzahl der Events in der Antwort |
total_lines | integer | Gesamtzahl der einzelnen Closing Lines über alle Events und Sportsbooks |
Event-Objekt
| Feld | Typ | Beschreibung |
|---|---|---|
event_id | string | Eindeutiger Event-Identifikator |
sport | string | Sport |
league | string | Liga |
home_team | string | Name des Heimteams |
away_team | string | Name des Auswärtsteams |
event_start_time | string | Geplante Startzeit im ISO-8601-Format |
first_captured_at | string | ISO-8601-Zeitstempel der ersten Closing-Line-Erfassung für dieses Event |
books | array | Closing-Line-Payloads pro Sportsbook |
Book-Objekt
| Feld | Typ | Beschreibung |
|---|---|---|
book | string | Sportsbook-Identifikator |
captured_at | string | ISO-8601-Zeitstempel, wann die Closing Line dieses Sportsbooks erfasst wurde |
lines | array | Array von Closing-Line-Einträgen für dieses Sportsbook |
Closing-Line-Eintrag
| Feld | Typ | Beschreibung |
|---|---|---|
market_type | string | Markttyp: moneyline, point_spread, total_points, etc. |
selection | string | Auswahlbezeichnung (Teamname, Over/Under, Spieler) |
selection_type | string | home, away, over, under, etc. |
line | number|null | Spread- oder Total-Wert (-3.5, 220.5). null für Moneylines. |
player_name | string | Spielername für Player Props (sonst weggelassen) |
stat_category | string | Statistiktyp für Player Props (sonst weggelassen) |
odds_american | integer | American Odds beim Schluss |
odds_decimal | number | Decimal Odds beim Schluss |
implied_probability | number | Rohe implizite Wahrscheinlichkeit (mit Vig) |
no_vig_probability | number|null | Power-devigte faire Wahrscheinlichkeit (0.0–1.0). Vorhanden für 2- und 3-Wege-Märkte; null für Single-Selection-Märkte. |
timestamp | string | ISO-8601-Zeitstempel des für die Erfassung verwendeten Odds-Datensatzes |
meta Objekt
| Feld | Typ | Beschreibung |
|---|---|---|
source | string | Immer "valkey:closing_line" (Phase-1-Backend) |
tier_window_days | integer | Maximale Lookback-Tage für Ihren Tier (Sharp = 30) |
updated_at | string | ISO-8601-Zeitstempel der Antwort |
Anwendungsfälle
CLV-Analyse: Vergleichen Sie no_vig_probability Werte über verschiedene Sportsbooks hinweg gegen Pinnacle. Ein Soft Book mit einer höheren no_vig_probability auf den Favoriten hat lockerer geschlossen — positiver CLV für Bettor, die diese Seite gespielt haben.
Line-Shopping-Audit: Rufen Sie Closing Lines über alle Sportsbooks hinweg ab, um zu verstehen, wo zum Schluss Value verfügbar war.
Modellkalibrierung: Verwenden Sie implied_probability und no_vig_probability als historische Ground Truth zur Kalibrierung Ihrer eigenen Wahrscheinlichkeitsmodelle.
Verwandte Endpoints
- Closing Line Value (CLV) — Aggregierte CLV%-Rollups gruppiert nach Sportsbook, Sport, Liga oder Tag
- Odds Snapshot — Aktuelle Echtzeit-Odds
- +EV-Möglichkeiten — Echtzeit-Wetten mit positivem Erwartungswert