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

AuthentifizierungPermalink for this section

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

Request BodyPermalink for this section

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 TarifPermalink for this section

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.

BeispielanfragenPermalink for this section

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" }'

AntwortPermalink for this section

Erfolg (200)Permalink for this section

{ "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, "timestamp": "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, "timestamp": "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, "timestamp": "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-HeaderPermalink for this section

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

FehlerantwortenPermalink for this section

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" } }

AntwortstrukturPermalink for this section

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

Data-ObjektPermalink for this section

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

Meta-ObjektPermalink for this section

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-SchemaPermalink for this section

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

Event-ObjektPermalink for this section

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)Permalink for this section

FeldTypBeschreibung
sportsbookstringSportsbook-ID
market_typestringMarkttyp
selectionstringName der Auswahl
selection_typestringhome, away, over, under
odds_americannumberAmerikanische Quoten
odds_decimalnumberDezimalquoten
linenumber | nullLinienwert
timestampstringISO-8601-Zeitpunkt, zu dem SharpAPI diese Quote zuletzt durch seine Pipeline aktualisiert hat — wird in jedem Ingest-Zyklus weitergeschaltet. Ein Feed-Aktualitäts- / Liveness-Signal (entspricht OpticOdds’ timestamp); es ist NICHT der Zeitpunkt, zu dem sich der Preis zuletzt geändert hat. Siehe timestamp verstehen.

AnwendungsfällePermalink for this section

Vorab-Laden von QuotenPermalink for this section

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-AktualisierungPermalink for this section

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 EndpointsPermalink for this section

  • 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