Skip to Content
API-ReferenzBatch-Quoten

Batch-Quoten

Rufen Sie Quoten für mehrere Events in einer einzigen Anfrage ab. Dies vermeidet separate API-Aufrufe für jedes Event und reduziert Latenz sowie Rate-Limit-Verbrauch.

POST /api/v1/odds/batch

Authentifizierung

Erfordert einen API-Schlüssel. Verfügbar für alle Tarife.

Request Body

Senden Sie einen JSON-Body mit den folgenden Feldern:

FeldTypErforderlichBeschreibung
event_idsstring[]JaArray von Event-IDs, für die Quoten abgerufen werden sollen
sportsbookstringNeinFilter für einen einzelnen Sportsbook (Standard: alle für Ihren Tarif verfügbaren)
marketstringNeinFilter für einen einzelnen Markttyp (Standard: alle)

Batch-Limits nach Tarif

Die maximale Anzahl von Events pro Batch-Anfrage hängt von Ihrem Tarif ab:

TarifMax. Events pro Batch
Free10
Hobby10
Pro50
Sharp50
Enterprise100

Wird das Batch-Limit Ihres Tarifs überschritten, wird ein 400 validation_error-Fehler zurückgegeben. Teilen Sie große Anfragen bei Bedarf in mehrere Batches auf.

Beispielanfragen

curl -X POST "https://api.sharpapi.io/api/v1/odds/batch" \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "event_ids": ["evt_nba_lal_bos_20260126", "evt_nba_gsw_mia_20260126"], "sportsbook": "draftkings", "market": "moneyline" }'

Antwort

Erfolg (200)

{ "success": true, "data": { "events": [ { "event_id": "evt_nba_lal_bos_20260126", "event_name": "Los Angeles Lakers @ Boston Celtics", "sport": "basketball", "league": "nba", "start_time": "2026-01-26T19:30:00Z", "is_live": false, "odds": [ { "sportsbook": "draftkings", "market_type": "moneyline", "selection": "Boston Celtics", "selection_type": "home", "odds_american": -210, "odds_decimal": 1.476, "line": null, "last_seen_at": "2026-01-26T10:15:00.000Z" }, { "sportsbook": "draftkings", "market_type": "moneyline", "selection": "Los Angeles Lakers", "selection_type": "away", "odds_american": 175, "odds_decimal": 2.75, "line": null, "last_seen_at": "2026-01-26T10:15:00.000Z" } ] }, { "event_id": "evt_nba_gsw_mia_20260126", "event_name": "Golden State Warriors @ Miami Heat", "sport": "basketball", "league": "nba", "start_time": "2026-01-26T20:00:00Z", "is_live": false, "odds": [ { "sportsbook": "draftkings", "market_type": "moneyline", "selection": "Miami Heat", "selection_type": "home", "odds_american": -130, "odds_decimal": 1.769, "line": null, "last_seen_at": "2026-01-26T10:15:05.000Z" } ] } ], "missing_events": [] }, "meta": { "requested": 2, "found": 2, "missing": 0, "max_batch": 50, "filters": { "sportsbook": "draftkings", "market": "moneyline" }, "updated_at": "2026-01-26T10:15:05.000Z" } }

Antwort-Header

X-RateLimit-Limit: 300 X-RateLimit-Remaining: 296 X-RateLimit-Reset: 1737853200 X-Data-Delay: 0 X-Request-Id: req_batch_abc123

Fehlerantworten

400 Batch-Limit überschritten

{ "error": { "code": "validation_error", "message": "Batch limit exceeded. Your tier (hobby) allows 10 events per batch, but 25 were requested.", "docs": "https://docs.sharpapi.io/en/api-reference/odds-batch" } }

400 Fehlendes Events-Feld

{ "error": { "code": "validation_error", "message": "The 'event_ids' field is required and must be a non-empty array of event IDs.", "docs": "https://docs.sharpapi.io/en/api-reference/odds-batch" } }

401 Nicht autorisiert

{ "error": { "code": "unauthorized", "message": "Invalid or missing API key", "docs": "https://docs.sharpapi.io/en/authentication" } }

Antwortstruktur

Die Batch-Antwort verschachtelt Events und fehlende IDs unter data, mit Zählungen in meta:

Data-Objekt

FeldTypBeschreibung
data.eventsEventOdds[]Array von Event-Objekten mit verschachtelten Quoten
data.missing_eventsstring[]Event-IDs, die nicht gefunden wurden oder keine Quoten hatten

Meta-Objekt

FeldTypBeschreibung
meta.requestedintegerAnzahl der Event-IDs in Ihrer Anfrage
meta.foundintegerAnzahl der Events, für die Quotendaten vorlagen
meta.missingintegerAnzahl der nicht gefundenen Events
meta.max_batchintegerMaximale Batch-Größe für Ihren Tarif
meta.filtersobjectAngewendete Filter (sportsbook, market)

Wenn eine Event-ID in Ihrer Anfrage keine Quoten hat (z. B. das Event ist beendet oder existiert nicht), erscheint sie in data.missing_events, anstatt einen Fehler auszulösen. Die Antwort enthält dennoch Quoten für alle gültigen Events.

Antwort-Schema

Jedes Element im data.events-Array ist ein Event-Objekt mit verschachtelten Quoten:

Event-Objekt

FeldTypBeschreibung
event_idstringEvent-Identifier
event_namestringMenschenlesbarer Event-Name
sportstringSport-Slug
leaguestringLiga-Slug
start_timestringISO 8601 Event-Startzeit
is_livebooleanOb das Event live ist
game_stateobject | undefinedLive-Spielstand (nur für Live-Events mit Punkteständen)
oddsarrayArray von Quoten für dieses Event

Quoten-Objekt (verschachtelt im Event)

FeldTypBeschreibung
sportsbookstringSportsbook-ID
market_typestringMarkttyp
selectionstringName der Auswahl
selection_typestringhome, away, over, under
odds_americannumberAmerikanische Quoten
odds_decimalnumberDezimalquoten
linenumber | nullLinienwert
last_seen_atstringISO 8601 Zeitstempel, wann unsere Pipeline diese Zeile zuletzt beobachtet hat. Verwenden Sie dies als Frische-Signal für die Pipeline.
odds_changed_atstringISO 8601 Zeitstempel, wann sich der Preis, die Linie oder das is_live-Flag zuletzt tatsächlich geändert haben. Wird vom Sportsbook bereitgestellt, sofern verfügbar; bei Pinnacle wird er über unveränderte Aktualisierungen hinweg übertragen — siehe Understanding Pinnacle’s odds_changed_at.

Anwendungsfälle

Vorab-Laden von Quoten

Laden Sie Quoten für ein gesamtes Tagesprogramm in einem einzigen Aufruf, anstatt Dutzende einzelner Anfragen zu stellen:

# Get all NBA event IDs from the events endpoint events_response = requests.get( 'https://api.sharpapi.io/api/v1/events', params={'league': 'nba', 'limit': 50}, headers={'X-API-Key': 'YOUR_API_KEY'} ) event_ids = [e['id'] for e in events_response.json()['data']] # Batch fetch all odds at once odds_response = requests.post( 'https://api.sharpapi.io/api/v1/odds/batch', headers={'X-API-Key': 'YOUR_API_KEY', 'Content-Type': 'application/json'}, json={'event_ids': event_ids} )

Dashboard-Aktualisierung

Aktualisieren Sie regelmäßig die Quoten für Events, die ein Benutzer beobachtet:

async function refreshWatchlist(eventIds) { const response = await fetch('https://api.sharpapi.io/api/v1/odds/batch', { method: 'POST', headers: { 'X-API-Key': 'YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ event_ids: eventIds }) }); const { data, meta } = await response.json(); if (data.missing_events.length > 0) { console.warn('Missing events:', data.missing_events); } return data.events; }

Verwandte Endpoints

  • Odds Snapshot - Quoten mit flexiblen Abfragefiltern abrufen
  • Best Odds - Beste Quoten über Sportsbooks pro Auswahl abrufen
  • Events - Events auflisten, um Event-IDs für Batch-Anfragen zu erhalten
Last updated on