Closing Line
Gibt den Closing-Line-Snapshot für ein Event zurück — die Pro-Buch-Quoten, die in dem Moment erfasst werden, in dem jeder Sportsbook das Event von Pre-Match auf Live umstellt. Der Endpoint ist die kanonische Quelle für die Closing-Line-Value-Analyse (CLV) bei Wetten, die vor dem Anpfiff platziert wurden.
GET /api/v1/odds/closingJeder Sportsbook wird unabhängig erfasst, sobald er ein bestimmtes Event zum ersten Mal auf is_live=true umstellt. Erfasste Snapshots verbleiben 48 Stunden nach Eventbeginn in Valkey. Außerhalb dieses Zeitfensters verwenden Sie /api/v1/historical/odds/closing (Enterprise, ClickHouse-gestützt).
Authentifizierung
Erfordert einen API-Schlüssel. Verfügbar für die Tarife Pro, Sharp und Enterprise (Feature closing_line).
Query-Parameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
event_id | string | erforderlich | Event-Identifikator. Gleiche IDs wie unter /api/v1/events. |
sportsbook | string | alle | Kommagetrennter Buchfilter (z. B. draftkings,fanduel). books= wird als Legacy-Alias akzeptiert. |
event_id ist erforderlich. Wird er weggelassen, wird 400 validation_error zurückgegeben. Ungültige Zeichen im Wert führen ebenfalls zu 400 validation_error.
Beispielanfragen
cURL
curl -X GET "https://api.sharpapi.io/api/v1/odds/closing?event_id=mlb_athletics_mariners_2026-04-22" \
-H "X-API-Key: YOUR_API_KEY"Antwort
{
"success": true,
"data": {
"event_id": "mlb_athletics_mariners_2026-04-22",
"sport": "baseball",
"league": "mlb",
"home_team": "Seattle Mariners",
"away_team": "Athletics",
"event_start_time": "2026-04-22T22:10:00Z",
"captured_at": "2026-04-22T22:09:58.412Z",
"books": {
"draftkings": [
{
"sportsbook": "draftkings",
"market_type": "moneyline",
"selection": "Seattle Mariners",
"selection_type": "home",
"odds_american": -165,
"odds_decimal": 1.606
},
{
"sportsbook": "draftkings",
"market_type": "spread",
"selection": "Seattle Mariners",
"selection_type": "home",
"line": -1.5,
"odds_american": 130,
"odds_decimal": 2.30
}
],
"pinnacle": [
{
"sportsbook": "pinnacle",
"market_type": "moneyline",
"selection": "Seattle Mariners",
"selection_type": "home",
"odds_american": -158,
"odds_decimal": 1.633
}
]
}
},
"meta": {
"source": "valkey",
"updated_at": "2026-04-22T17:34:54.692Z"
}
}Leere Antwort
Wurde noch kein Closing-Snapshot erfasst (das Event hat noch nicht begonnen, oder die Event-ID weist innerhalb des 48-Stunden-Fensters keine Erfassungen auf), gibt die Antwort ein leeres books-Objekt zurück:
{
"success": true,
"data": {
"event_id": "mlb_athletics_mariners_2026-04-22",
"books": {}
},
"meta": {
"source": "valkey",
"updated_at": "2026-04-22T17:34:54.692Z"
}
}Antwortfelder
| Feld | Typ | Beschreibung |
|---|---|---|
data.event_id | string | Event-Identifikator, der aus der Anfrage zurückgegeben wird. |
data.sport | string | Sportart (z. B. baseball). Leer, wenn keine Erfassungen vorliegen. |
data.league | string | Liga (z. B. mlb). Leer, wenn keine Erfassungen vorliegen. |
data.home_team, data.away_team | string | Teamnamen. Leer, wenn keine Erfassungen vorliegen. |
data.event_start_time | string | Geplante Startzeit im ISO-8601-Format. |
data.captured_at | string | ISO-8601-Zeitstempel der ersten Erfassung (das früheste Buch, das das Event auf Live umstellt). |
data.books | object | Map von book_id → ClosingOdd[]. Leer {}, wenn nichts erfasst wurde. |
Struktur von ClosingOdd
| Feld | Typ | Beschreibung |
|---|---|---|
sportsbook | string | Buch-Identifikator (Kleinbuchstaben). |
market_type | string | z. B. moneyline, spread, total, player_prop. |
selection | string | Bezeichnung der Auswahl (z. B. Teamname, Spielername, over, under). |
selection_type | string | home, away, over, under usw. |
line | number? | Spread- oder Total-Linie, sofern zutreffend. Bei Moneylines weggelassen. |
odds_american | integer | Quoten im amerikanischen Format zum Zeitpunkt der Erfassung. |
odds_decimal | number | Quoten im Dezimalformat (3 Nachkommastellen). |
player_name | string? | Vorhanden bei Player Props. |
stat_category | string? | Statistikkategorie (points, rebounds usw.) für Player Props. |
Caching
Antworten werden am Edge für 30 s (s-maxage=30) und beim Client für 10 s (max-age=10) zwischengespeichert. Closing-Snapshots ändern sich nach der Erfassung nicht mehr, daher ist dies unbedenklich.
Fehlercodes
| Status | Code | Bedeutung |
|---|---|---|
| 400 | validation_error | Fehlende oder fehlerhafte event_id. |
| 401 | missing_api_key / invalid_api_key | Siehe Authentifizierung. |
| 403 | tier_restricted | Tarif unterhalb von Pro. |
| 503 | not_ready | Closing-Line-Erfassung ist derzeit nicht verfügbar (z. B. Backing-Store nicht erreichbar). Wiederholen Sie die Anfrage. |
Verwandte Themen
/api/v1/historical/odds/closing— Enterprise; langfristige ClickHouse-Historie über das 48-Stunden-Fenster hinaus./api/v1/historical/clv— CLV-Analysen aggregiert über alle Opportunities.