OddsHub – Anbindung

Technische Dokumentation für angebundene Plattformen · Stand dieser Seite: 2026-08-31

Schnellstart

OddsHub liefert fertig gerechnete Quoten über eine REST-API in einem einheitlichen Format. Alles ist JSON, alle Zeitangaben sind UTC im ISO-Format.

Basis-Adresse: https://www.atlasoddshub.com

# 1. Erreichbarkeit prüfen (ohne Schlüssel)
curl https://www.atlasoddshub.com/v1/health

# 2. Welche Sportarten liegen an?
curl -H "Authorization: Bearer IHR_SCHLUESSEL" https://www.atlasoddshub.com/v1/sports

# 3. Kompletter Feed mit fertigen Quoten
curl -H "Authorization: Bearer IHR_SCHLUESSEL" https://www.atlasoddshub.com/v1/feed

# 4. Nur Live-Spiele einer Sportart
curl -H "Authorization: Bearer IHR_SCHLUESSEL" "https://www.atlasoddshub.com/v1/feed?sport=soccer&status=live"
In aller Regel genügt ein einziger Endpunkt: /v1/feed. Er liefert Spiele, Spielstände und alle Quoten in einem Zug – fertig gerechnet und direkt einsetzbar, ohne Nacharbeit auf Ihrer Seite.

Zugang & Schlüssel

Jeder Kunde erhält einen eigenen Schlüssel (Format ohk_…). Er wird genau einmal im Klartext ausgegeben; danach liegt bei uns nur noch ein Hash. Geht er verloren, stellen wir einen neuen aus.

Übergabe

Bevorzugt im Kopf der Anfrage:

Authorization: Bearer ohk_xxxxxxxxxxxxxxxxxxxxxxxx

Alternativ – etwa für schnelle Tests im Browser:

X-API-Key: ohk_xxxxxxxxxxxxxxxxxxxxxxxx
https://www.atlasoddshub.com/v1/feed?apiKey=ohk_xxxxxxxxxxxxxxxxxxxxxxxx
Den Schlüssel niemals in eine Anwendung geben, die beim Endkunden läuft (Web-Seite, App). Er gehört auf Ihren Server; von dort holen Sie die Daten und geben sie an Ihre Oberfläche weiter. Ein Schlüssel im Browser ist für jeden Besucher lesbar.

Rechte

feedLesender Zugriff auf Quoten und Spiele. Das ist der normale Kundenschlüssel.
adminInterne Verwaltung. Wird an Kunden nicht vergeben.

Mehrere Schlüssel je Kunde sind üblich: einer für die Testumgebung, einer für den Wirkbetrieb. So lässt sich ein einzelner Zugang sperren, ohne den Betrieb zu stören.

Endpunkte

EndpunktZweck
GET /v1/healthErreichbarkeit. Ohne Schlüssel abrufbar, ideal für die Überwachung.
GET /v1/sportsSportarten mit Anzahl der bepreisten Spiele und davon live.
GET /v1/eventsSpielliste ohne Quoten – schlank, für Übersichten und Abgleiche.
GET /v1/events/{id}Ein einzelnes Spiel mit allen Märkten und Quoten.
GET /v1/feedHauptabruf: alle Spiele samt fertigen Quoten. Blättert über offset/limit.
GET /v1/feed/deltaLaufender Betrieb: nur die Änderungen seit Ihrem letzten Stand (?since=).

Parameter von /v1/feed und /v1/events

ParameterBeispielBedeutung
sportsoccerNur eine Sportart. Schlüssel siehe /v1/sports.
statuslivelive oder prematch. Ohne Angabe: beides.
leagueBundesligaNur eine Liga (nur /v1/events).
marketsh2h,totalsNur diese Marktarten ausgeben (nur /v1/feed).
limit200Spiele je Seite. Feed bis 1000, Eventliste bis 500.
offset500Nur /v1/feed: nächste Seite. Weiterblättern, solange hasMore true ist.
since10423Nur /v1/feed/delta: Ihr letzter seq-Stand.
all1Nur /v1/events: auch Spiele ohne aktuelle Quoten anzeigen.

Datenformat

Antwort von GET /v1/feed (gekürzt):

{
  "generatedAt": "2026-08-09T01:42:38.000Z",
  "customer": { "name": "MegaBet Ltd.",
                "settings": { "marginPrematch": 1.07, "marginLive": 1.12, "…": "…" } },
  "count": 42,
  "events": [
    {
      "id": 3312,
      "sport":  { "key": "soccer", "name": "Fußball" },
      "league": "Bundesliga",
      "home":   "Borussia Mönchengladbach",
      "away":   "VfL Wolfsburg",
      "wappenHeim": "borussia-monchengladbach.svg",
      "wappenGast": "vfl-wolfsburg.svg",
      "wappenLiga": "bundesliga-germany.svg",
      "startsAt": "2026-08-09T01:02:43.000Z",
      "status": "live",
      "score":  { "home": 2, "away": 1, "minute": 47, "period": "2H" },
      "halftime": { "home": 1, "away": 1 },
      "cards":  { "yellow": { "home": 2, "away": 3 }, "red": { "home": 0, "away": 1 }, "yellowRed": { "home": 1, "away": 0 } },
      "corners": { "home": 4, "away": 2 },
      "lastUpdate": "2026-08-09 01:42:38",
      "markets": [
        {
          "key": "h2h", "name": "Siegwette", "line": null, "descriptor": null,
          "outcomes": [
            { "name": "1", "odds": 1.42 },
            { "name": "X", "odds": 4.10 },
            { "name": "2", "odds": 7.20 }
          ]
        },
        {
          "key": "totals", "name": "Über/Unter", "line": 2.5, "descriptor": null,
          "outcomes": [
            { "name": "Über",  "odds": 1.75 },
            { "name": "Unter", "odds": 2.05 }
          ]
        }
      ]
    }
  ]
}

Felder eines Spiels

idFeste Kennung bei OddsHub. Bleibt über die gesamte Laufzeit des Spiels gleich – der richtige Schlüssel für Ihre Zuordnung.
statusprematch (noch nicht angepfiffen) · live (läuft) · beendete Spiele erscheinen nicht mehr im Feed.
startsAtAnstoß, UTC (ISO 8601).
scoreNur bei live: Spielstand, Minute und Abschnitt (1H, HT, 2H, ET; bei Satzsportarten S1S5 für den laufenden Satz, live = läuft ohne Abschnittsangabe). Dazu, sofern der Anbieter sie liefert: spielzeit (gespielte Zeit „mm:ss"), uhrSteht (true = Spieluhr angehalten), restzeit und restzeitAbschnitt (Countdown-Sportarten). null heißt „nicht gemeldet".
superturnierÜbergeordneter Wettbewerb der Liga (z. B. der Gesamtwettbewerb über seinen Qualifikationsrunden), sofern gemeldet; sonst null.
halftime, cardsHalbzeitstand und Kartenstand, sofern verfügbar. null heißt „unbekannt", nicht „keine" – auch bei den Einzelwerten im Block. cards.yellowRed (Gelb-Rot) ist nicht in red enthalten; wer Platzverweise anzeigt, rechnet red + yellowRed.
cornersEckenstand, sofern verfügbar; gleiche Regel: null heißt „unbekannt".
wappenHeim, wappenGast, wappenLigaDateiname des Vereins- bzw. Ligawappens (z. B. agf-aarhus.svg) – stabil auch dann, wenn der Feed denselben Verein zeitweise anders schreibt. Die Bilddateien liefert Ihre Plattform selbst aus; der Feed nennt nur den Dateinamen. null heißt: kein eindeutiges Wappen im Bestand – zeigen Sie dann bitte Ihren eigenen Platzhalter (z. B. Initialen), niemals ein geratenes Wappen. Die Felder stehen auch im finished-Block.
lastUpdateLetzte Änderung an diesem Spiel bei OddsHub.

Felder eines Marktes

keyMarktart aus dem Katalog unten – der stabile Schlüssel für Ihre Verarbeitung.
nameDeutscher Anzeigename. Für die Logik bitte immer key verwenden, nicht den Namen.
lineLinie des Marktes, z. B. 2.5 bei Über/Unter oder -1 beim Handicap. null, wenn der Markt keine führt.
descriptorBezugsobjekt, z. B. der Spielername bei Spielerwetten. Sonst null.
outcomes[].nameBezeichnung der Auswahl, z. B. 1/X/2 oder Über/Unter. Der stabile Schlüssel der Auswahl – bitte immer diesen abrechnen, nie den Anzeigetext.
outcomes[].labelAnzeigetext, wenn name für sich nicht lesbar ist – bei den Torschützenmärkten der Spielername. Das Feld fehlt, wo die Auswahl für sich spricht.
outcomes[].oddsDie fertige Quote – inklusive Ihrer im Portal eingestellten Marge.

Wie die Quote entsteht

Sie erhalten je Auswahl eine fertige Quote. Darin steckt bereits alles: unsere Bepreisung und die Marge, die Sie selbst im Kundenportal festlegen – getrennt für Vorab- und Livewetten. Weitere Umrechnungen sind auf Ihrer Seite nicht nötig.

Welche Marge beim jeweiligen Abruf angewendet wurde, steht in jeder Antwort unter customer.settings.

Marktkatalog

Jede Marktart hat einen festen Schlüssel – daran richten Sie Ihre Verarbeitung aus. „Vollständig" heißt: die Auswahlen decken alle Ausgänge überschneidungsfrei ab; nur dort wirkt eine Marge als Overround über den gesamten Markt.

SchlüsselMarktVollständiglinedescriptor
h2hSiegwetteja
totalsÜber/UnterjaTor-/Punktelinie
spreadsHandicapjaHandicap-Wert (Sicht Heim)
bttsBeide Teams treffenja
double_chanceDoppelte Chancenein
correct_scoreGenaues Ergebnisja
h2h_2wSieger (2-Weg)ja
odd_evenGerade/Ungeradeja
totals_homeÜber/Unter HeimmannschaftjaTor-/Punktelinie
totals_awayÜber/Unter GastmannschaftjaTor-/Punktelinie
totals_pÜber/Unter AbschnittjaTor-/PunktelinieAbschnittsnummer
h2h_restRestspielzeit-SiegerjaSpielstand zum Marktbeginn („Stand 1:0")
btts_h1Beide treffen 1. Halbzeitja
btts_h2Beide treffen 2. Halbzeitja
totals_h2Über/Unter 2. HalbzeitjaTorlinie 2. Halbzeit
totals_home_h1Über/Unter Heimmannschaft 1. HalbzeitjaTor-/Punktelinie
totals_away_h1Über/Unter Gastmannschaft 1. HalbzeitjaTor-/Punktelinie
spreads_h1Handicap 1. HalbzeitjaHandicap-Wert (Sicht Heim)
spreads_h2Handicap 2. HalbzeitjaHandicap-Wert (Sicht Heim)
odd_even_h1Gerade/Ungerade 1. Halbzeitja
odd_even_h2Gerade/Ungerade 2. Halbzeitja
draw_no_bet_h1Unentschieden – Einsatz zurück 1. Halbzeitnein
draw_no_bet_h2Unentschieden – Einsatz zurück 2. Halbzeitnein
correct_score_h2Genaues Ergebnis 2. Halbzeitja
h2h_pSiegwette AbschnittjaAbschnittsnummer
h2h_2w_pSieger Abschnitt (2-Weg)jaAbschnittsnummer
spreads_pHandicap AbschnittjaHandicap-Wert (Sicht Heim)Abschnittsnummer
odd_even_pGerade/Ungerade AbschnittjaAbschnittsnummer
draw_no_bet_pUnentschieden – Einsatz zurück AbschnittneinAbschnittsnummer
totals_home_pÜber/Unter Heimmannschaft AbschnittjaTor-/PunktelinieAbschnittsnummer
totals_away_pÜber/Unter Gastmannschaft AbschnittjaTor-/PunktelinieAbschnittsnummer
spreads_setsSatz-HandicapjaSatz-Handicap (Sicht Heim)
corners_totalÜber/Unter EckenjaEckenlinie
corners_total_3wEckbälle (Über/Genau/Unter)jaEckenzahl
totals_runsÜber/Unter RunsjaRun-Linie
totals_runs_homeÜber/Unter Runs HeimmannschaftjaRun-Linie
totals_runs_awayÜber/Unter Runs GastmannschaftjaRun-Linie
overtime_yesnoGibt es eine Verlängerung?ja
extra_innings_yesnoGibt es Extra Innings?ja
go_the_distanceGeht der Kampf über die volle Distanz?ja
clean_sheet_homeHeimmannschaft ohne Gegentorja
clean_sheet_awayGastmannschaft ohne Gegentorja
score_both_halves_homeHeimmannschaft trifft in beiden Halbzeitenja
score_both_halves_awayGastmannschaft trifft in beiden Halbzeitenja
cards_totalÜber/Unter KartenjaKartenlinie
cards_h2hMeiste Kartenja
cards_total_h1Über/Unter Karten 1. HalbzeitjaKartenlinie
red_cardRote Karte im Spielja
player_cardSpieler sieht KartejaSpielername
player_propTorschützeneinSpielername
h2h_htSiegwette 1. Halbzeitja
h2h_2hSiegwette 2. Halbzeitja
double_chance_htDoppelte Chance 1. Halbzeitnein
double_chance_2hDoppelte Chance 2. Halbzeitnein
ht_ftHalbzeit/Endstandja
correct_score_htGenaues Ergebnis 1. Halbzeitja
totals_htÜber/Unter 1. HalbzeitjaTorlinie 1. Halbzeit
spreads_htHandicap 1. HalbzeitjaHandicap-Wert 1. Halbzeit (Sicht Heim)
dnb_htUnentschieden 1. Halbzeit – Einsatz zurückja
exakte_tore_h1Anzahl Tore 1. Halbzeit (genau)jaStaffelung („bis 2+")
dnbUnentschieden – Einsatz zurückja
hnbOhne Heimsieg – Einsatz zurückja
anbOhne Gastsieg – Einsatz zurückja
ht_ft_ergebnisHalbzeit/Endstand (genaues Ergebnis)ja
eur_handicapEuropäisches HandicapjaHandicap-Wert (Sicht Heim, ganze Zahl)
naechstes_torNächstes TorjaNummer des Tores
letztes_torLetztes Torja
winning_marginSiegabstandja
satz_siegerSatzsiegerjaSatznummer
gesamt_saetzeAnzahl Sätzeja
spiele_gesamtSpiele/Punkte gesamtjaSpiel-/Punktelinie
spiele_im_satzSpiele/Punkte im SatzjaSpiel-/PunktelinieSatznummer („Satz 2")
spiele_hcpSpiele-/Punkte-HandicapjaHandicap-Wert (Sicht Heim)Satznummer („Satz 2"), leer = ganzes Match
odd_even_spieleSpiele gerade/ungeradeja
naechstes_tor_htNächstes Tor 1. HalbzeitjaNummer des Tores in der 1. Halbzeit
naechstes_tor_2hNächstes Tor 2. HalbzeitjaNummer des Tores in der 2. Halbzeit
satz_ergebnisSatzergebnisnein
satz_genauGenaues SatzergebnisneinSatznummer („Satz 2")
race_zu_spielenWer erreicht X Spiele zuerstneinZiel-SpielezahlSatznummer („Satz 2")
totals_viertelÜber/Unter VierteljaPunktelinieViertelnummer („Viertel 2")
torschuetze_nN-ter TorschützeneinNummer des Tores (1 = erster Torschütze)
torschuetze_letzterLetzter Torschützenein
torschuetze_beliebigTorschütze irgendwannnein
frame_siegerFrame-SiegerjaFramenummer
race_zu_eckenWer erreicht X Ecken zuerstjaZiel-Eckenzahl
corners_total_3w_htEcken 1. Halbzeit (Über/Genau/Unter)jaEckenzahl 1. Halbzeit
ohne_satzverlustSieg ohne Satzverlustja
ohne_satzverlust_heimHeim gewinnt ohne Satzverlustja
ohne_satzverlust_gastGast gewinnt ohne Satzverlustja
race_zu_punktenWer erreicht X Punkte zuerstneinZiel-PunktezahlSatznummer („Satz 2")
race_zu_punkten_3wWer erreicht X Punkte zuerst (3-Weg)jaZiel-PunktezahlSpielabschnitt („1. Halbzeit", „Viertel 2")
race_zu_toren_3wWer erreicht X Tore zuerstjaZiel-TorzahlSpielabschnitt („2. Halbzeit")
race_zu_runs_3wWer erreicht X Runs zuerst (3-Weg)jaZiel-Runzahl
race_zu_hits_3wWer erreicht X Hits zuerstjaZiel-Hitzahl
race_zu_punkten_otWer erreicht X Punkte zuerst (inkl. Verlängerung)neinZiel-Punktezahl
race_zu_framesWer erreicht X Frames zuerstneinZiel-Framezahl
frame_race_zu_30Rennen auf 30 Punkte im FrameneinFramenummer
elfmeter_siegerWer gewinnt das Elfmeterschießen?ja
elfmeter_verwandeltWird der Elfmeter verwandelt?jaElfmeternummer
elfmeter_ergebnisElfmeterschießen – Genaues Ergebnisnein
spiele_spielerAnzahl Spiele eines SpielersjaSpielelinie„Heim" oder „Gast"
tiebreaks_gesamtAnzahl Tie BreaksjaTie-Break-Linie
doppel_ergebnis_satzDoppeltes Ergebnis (1. Satz / Match)ja
satzstand_nach_spielenSatzstand nach N SpielenneinSatz und Spielezahl („Satz 2 nach 4 Spielen")
fuehrung_nach_spielenIn Führung nach N SpielenjaSpielezahlSatznummer („Satz 2")
satz_genau_beliebigGenaues Satzergebnis (beliebiger Spieler)neinSatznummer („Satz 2")
satz_genau_gruppeGenaues Satzergebnis (Gruppe)neinSatznummer („Satz 2")
sieg_und_toreSieg & TorejaTorlinie
meiste_180erMeiste 180erja
eur_handicap_htEuropäisches Handicap 1. HalbzeitjaHandicap-Wert (Sicht Heim, ganze Linie)
h2h_rest_htRest der 1. HalbzeitjaSpielstand zum Marktbeginn („Stand 1:0")
tore_genau_heimTore Heimmannschaft (genau)ja
tore_genau_gastTore Gastmannschaft (genau)ja
sieg_und_bttsSieg und beide treffenja
sieg_und_btts_h1Sieg und beide treffen – 1. Halbzeitja
sieg_und_tore_h1Sieg & Tore – 1. HalbzeitjaTorlinie 1. Halbzeit
tore_und_bttsTore & beide treffenjaTorlinie
spielentscheidungWomit wird das Spiel entschieden?ja
naechste_rundeWer kommt in die nächste Runde?ja
sieg_in_verlaengerungSieg in der Verlängerung?ja
sieg_nach_elfmeterSieg nach Elfmeterschießen?ja
scores_2h_homeHeimmannschaft trifft in 2. Halbzeitja
scores_2h_awayGastmannschaft trifft in 2. Halbzeitja
satzgewinn_heimHeim gewinnt einen Satzja
satzgewinn_gastGast gewinnt einen Satzja
exakte_toreAnzahl Tore (genau)jaStaffelung („bis 5+")
torbereichTorbereichjaStaffelung („bis 7+")
odd_even_homeTore Heimmannschaft gerade/ungeradeja
odd_even_awayTore Gastmannschaft gerade/ungeradeja
wer_trifftWelche Mannschaft trifftja
odd_even_im_satzPunkte im Satz gerade/ungeradejaSatznummer („Satz 2")
dc_und_toreDoppelte Chance & ToreneinTorlinie
dc_und_bttsDoppelte Chance und beide treffennein
seite_oder_toreSieg oder Über/UnterjaTorlinieSeite und Richtung („Heim oder Über")
seite_oder_bttsSieg oder beide treffenjaSeite („Heim"/„X"/„Gast")
seite_oder_zu_nullSieg oder zu NulljaSeite („Heim"/„X"/„Gast")
sieg_zu_null_heimHeim gewinnt zu Nullja
sieg_zu_null_gastGast gewinnt zu Nullja
torreichste_haelfteTorreichste Hälfteja
torreichste_haelfte_heimTorreichste Hälfte Heimja
torreichste_haelfte_gastTorreichste Hälfte Gastja
beide_haelften_toreBeide Hälften Über/UnterjaTorlinie je HälfteRichtung („Über"/„Unter")
dnb_h2Unentschieden 2. Halbzeit – Einsatz zurückja
eur_handicap_2hEuropäisches Handicap 2. HalbzeitjaHandicap-Wert 2. Halbzeit (Sicht Heim, ganze Zahl)
totals_home_h2Über/Unter Heimmannschaft 2. HalbzeitjaTor-/Punktelinie
totals_away_h2Über/Unter Gastmannschaft 2. HalbzeitjaTor-/Punktelinie
exakte_tore_h2Anzahl Tore 2. Halbzeit (genau)jaStaffelung („bis 2+")
clean_sheet_home_h1Heim ohne Gegentor 1. Halbzeitja
clean_sheet_away_h1Gast ohne Gegentor 1. Halbzeitja
clean_sheet_home_h2Heim ohne Gegentor 2. Halbzeitja
clean_sheet_away_h2Gast ohne Gegentor 2. Halbzeitja
heim_gewinntHeim gewinnt (Ja/Nein)ja
gast_gewinntGast gewinnt (Ja/Nein)ja
irgendwer_gewinntEin Team gewinnt (kein Remis)ja
gewinnt_beide_haelften_heimHeim gewinnt beide Hälftenja
gewinnt_beide_haelften_gastGast gewinnt beide Hälftenja
gewinnt_eine_haelfte_heimHeim gewinnt eine Hälfteja
gewinnt_eine_haelfte_gastGast gewinnt eine Hälfteja
btts_beide_haelftenBeide treffen 1./2. Halbzeitja
sieg_und_btts_h2Sieg und beide treffen – 2. Halbzeitja
sieg_und_tore_h2Sieg & Tore – 2. HalbzeitjaTorlinie 2. Halbzeit
dc_und_btts_h1Doppelte Chance und beide treffen – 1. Halbzeitnein
dc_und_btts_h2Doppelte Chance und beide treffen – 2. Halbzeitnein
dc_spiel_und_btts_h1Doppelte Chance (Spiel) & beide treffen 1. Halbzeitnein
dc_spiel_und_btts_h2Doppelte Chance (Spiel) & beide treffen 2. Halbzeitnein
multi_tore_heimMulti-Tore Heimmannschaftnein
multi_tore_gastMulti-Tore Gastmannschaftnein
multi_tore_h1Multi-Tore 1. Halbzeitnein
multi_tore_h2Multi-Tore 2. Halbzeitnein
tor_intervallWann fällt das Tor?jaNummer des Tores
multi_scoreMulti-Ergebnisja
tor_intervall_15Wann fällt das Tor? (15-Minuten-Fenster)jaNummer des Tores
zehn_minuten_1x21X2 der Minuten 1–10ja
sieg_xupSiegwette mit Frühauszahlung (X-Up)neinTore Vorsprung für die Frühauszahlung
gewinnt_genau_1_satz_heimHeim gewinnt genau einen Satzja
gewinnt_genau_1_satz_gastGast gewinnt genau einen Satzja
gewinnt_genau_2_saetze_heimHeim gewinnt genau zwei Sätzeja
gewinnt_genau_2_saetze_gastGast gewinnt genau zwei Sätzeja
satz_zu_nullEin Satz zu Nullja
vierter_satzGibt es einen 4. Satz?ja
fuenfter_satzGibt es einen 5. Satz?ja
sieg_und_spieleSieg & Spiele Über/Unterja
elfmeterschiessenKommt es zum Elfmeterschießen?ja
sieger_super_overSieger (inkl. Super Over)ja
kampf_siegartWie wird der Kampf entschieden?ja
kampf_sieger_rundeSieger & Rundeja
kampf_sieger_rundenbereichSieger & Rundenbereichja
satz_ergebnis_legsGenaues Satzergebnis (in Legs)ja
darts_180_ersteWer wirft die erste 180?ja
darts_180_hcp180er-Handicapja180er-Handicap (Sicht Heim)
darts_180_totalÜber/Unter 180erja180er-Linie
darts_180_total_heimÜber/Unter 180er Heimja180er-Linie
darts_180_total_gastÜber/Unter 180er Gastja180er-Linie
frames_totalÜber/Unter FramesjaFrame-Linie
winning_margin_htSiegabstand 1. Halbzeitja
punktbereich_htPunktbereich 1. Halbzeitja
hoechste_periodeTorreichstes Drittelja
btts_pBeide treffen im Abschnittja
dnb_pSieger des Abschnitts (Einsatz zurück bei Remis)ja
dc_pDoppelte Chance im Abschnittja
try_1x2Tries 1X2ja
try_dcTries Doppelte Chanceja
try_dnbMehr Tries (Einsatz zurück bei Gleichstand)ja
try_eur_hcpTry-Handicap (Startstand)ja
try_hcpTry-Handicapja
try_totalÜber/Unter Triesja
try_total_heimÜber/Unter Tries Heimja
try_total_gastÜber/Unter Tries Gastja
try_odd_evenTries gerade/ungeradeja
try_1x2_htTries 1X2 – 1. Halbzeitja
try_dc_htTries Doppelte Chance – 1. Halbzeitja
try_dnb_htMehr Tries 1. Halbzeit (Einsatz zurück bei Gleichstand)ja
try_eur_hcp_htTry-Handicap 1. Halbzeit (Startstand)ja
try_hcp_htTry-Handicap 1. Halbzeitja
try_total_htÜber/Unter Tries 1. Halbzeitja
try_total_heim_htÜber/Unter Tries Heim 1. Halbzeitja
try_total_gast_htÜber/Unter Tries Gast 1. Halbzeitja
try_odd_even_htTries gerade/ungerade 1. Halbzeitja
sieger_otSieger (inkl. Verlängerung)ja
spreads_otHandicap (inkl. Verlängerung)ja
totals_otÜber/Unter (inkl. Verlängerung)ja
totals_home_otÜber/Unter Heim (inkl. Verlängerung)ja
totals_away_otÜber/Unter Gast (inkl. Verlängerung)ja
odd_even_otGerade/Ungerade (inkl. Verlängerung)ja
winning_margin_otSiegabstand (inkl. Verlängerung)ja
siegabstand_beliebigSiegabstand (egal wer)ja
sieg_und_punkte_otSieg & Punkte (inkl. Verlängerung)ja
h2_1x2_ot2. Halbzeit 1X2 (inkl. Verlängerung)ja
h2_dnb_ot2. Halbzeit Sieger (inkl. Verlängerung, Einsatz zurück bei Remis)ja
h2_hcp_ot2. Halbzeit Handicap (inkl. Verlängerung)ja
h2_total_ot2. Halbzeit Über/Unter (inkl. Verlängerung)ja
sieg_1x2_ot1X2 (inkl. Verlängerung)ja
dnb_otSieger (inkl. Verlängerung, Einsatz zurück bei Remis)ja
odd_even_home_otHeim gerade/ungerade (inkl. Verlängerung)ja
odd_even_away_otGast gerade/ungerade (inkl. Verlängerung)ja
odd_even_home_h1Heim gerade/ungerade 1. Halbzeitja
odd_even_away_h1Gast gerade/ungerade 1. Halbzeitja
touchdowns_totalÜber/Unter Touchdownsja
fieldgoals_totalÜber/Unter Field Goalsja
fieldgoal_nrWer trifft das N-te Field Goal?nein
punktbereichPunktbereichja
viertel_1x21X2 im Viertelja
viertel_dnbSieger des Viertels (Einsatz zurück bei Remis)ja
viertel_hcpHandicap im Viertelja
viertel_odd_evenGerade/Ungerade im Viertelja
viertel_siegabstandSiegabstand im Viertelja
viertel_total_heimÜber/Unter Heim im Viertelja
viertel_total_gastÜber/Unter Gast im Viertelja
hoechstes_viertelPunktreichstes Viertelja
totals_3wÜber/Genau/Unterja
race_zu_runsWer erreicht X Runs zuerst?nein
heim_schlaegt_9tesHeim schlägt im 9. Inningja
mehr_innings_1x2Wer gewinnt mehr Innings?ja
hoechstes_inning_teamWer hat das punktreichste Inning?ja
hoechstes_inningPunktreichstes Inningja
innings15_1x2Innings 1–5: 1X2ja
innings15_hcpInnings 1–5: Handicapja
innings15_totalInnings 1–5: Über/Unterja
innings15_total_heimInnings 1–5: Über/Unter Heimja
innings15_total_gastInnings 1–5: Über/Unter Gastja
innings15_siegerInnings 1–5: Siegerja
inning_1x21X2 im Inningja
inning_totalÜber/Unter im Inningja
inning_siegerSieger des Inningsja
inning_punktet_heimHeim punktet im Inningja
inning_punktet_gastGast punktet im Inningja
max_runs_serieLängste Run-Serie eines Teamsja
entscheidung_wannWann fällt die Entscheidung?ja
hits_totalÜber/Unter Hitsja
hits_total_heimÜber/Unter Hits Heimja
hits_total_gastÜber/Unter Hits Gastja
sieg_und_runsSieg & Runs Über/Unterja
karten_1x2Wer bekommt die meisten Karten?ja
karten_1x2_htMeiste Karten 1. Halbzeitja
karte_nrWer bekommt die N-te Karte?ja
karte_nr_htWer bekommt die N-te Karte? – 1. Halbzeitja
karten_punkteÜber/Unter Karten-Punkteja
karten_punkte_htÜber/Unter Karten-Punkte 1. Halbzeitja
cards_total_htÜber/Unter Karten 1. Halbzeitja
karten_genauKarten (genau)ja
karten_genau_htKarten 1. Halbzeit (genau)ja
karten_genau_heimKarten Heim (genau)ja
karten_genau_gastKarten Gast (genau)ja
karten_genau_heim_htKarten Heim 1. Halbzeit (genau)ja
karten_genau_gast_htKarten Gast 1. Halbzeit (genau)ja
platzverweisPlatzverweis im Spielja
platzverweis_heimPlatzverweis Heimja
platzverweis_gastPlatzverweis Gastja
platzverweis_htPlatzverweis 1. Halbzeitja
platzverweis_heim_htPlatzverweis Heim 1. Halbzeitja
platzverweis_gast_htPlatzverweis Gast 1. Halbzeitja
corners_1x2Wer holt die meisten Ecken?ja
corners_1x2_htMeiste Ecken 1. Halbzeitja
ecke_nrWer holt die N-te Ecke?ja
ecke_nr_htWer holt die N-te Ecke? – 1. Halbzeitja
letzte_eckeLetzte Eckeja
letzte_ecke_htLetzte Ecke 1. Halbzeitja
corners_hcpEcken-Handicapja
corners_hcp_htEcken-Handicap 1. Halbzeitja
corners_total_homeÜber/Unter Ecken Heimja
corners_total_awayÜber/Unter Ecken Gastja
corners_total_htÜber/Unter Ecken 1. Halbzeitja
ecken_bereichEckenbereichja
ecken_bereich_heimEckenbereich Heimja
ecken_bereich_gastEckenbereich Gastja
ecken_bereich_htEckenbereich 1. Halbzeitja
odd_even_eckenEcken gerade/ungeradeja
odd_even_ecken_htEcken gerade/ungerade 1. Halbzeitja
ecken_genau_heim_htEcken Heim 1. Halbzeit (genau)ja
ecken_genau_gast_htEcken Gast 1. Halbzeit (genau)ja
multi_toreMulti-Torenein
ht_ft_und_toreHalbzeit/Endstand & TorejaTorlinie (ganzes Spiel)
ht_ft_und_tore_h1Halbzeit/Endstand & Tore 1. HalbzeitjaTorlinie (1. Halbzeit)
ht_ft_und_tore_genauHalbzeit/Endstand & Toranzahlja
torschuetze_otTorschütze (inkl. Verlängerung)nein
outrightLangzeitwettenein

Live-Daten

Live-Spiele erkennen Sie an status: "live". Sie führen zusätzlich score mit Spielstand, Minute und Spielabschnitt; im Fußball kommen Halbzeitstand und Karten dazu, sofern sie vorliegen.

Nehmen Sie eine Quote nie ungeprüft an, wenn zwischen Abruf und Annahme der Wette Zeit vergeht. Bei Live-Spielen sind wenige Sekunden viel. Üblich ist, unmittelbar vor der Annahme erneut abzugleichen.

Abruftakt

Die Quoten werden alle 60 Sekunden neu berechnet. Ein Abruf häufiger als dieser Takt bringt keine neuen Daten.

Erstbefüllungeinmalig /v1/feed, dabei über offset blättern, bis hasMore false ist
Laufender Betrieballe 1–5 Sekunden /v1/feed/delta?since=<letzte seq>
Sicherheitsnetzalle 5–15 Minuten ein voller Abruf zum Abgleich

Der Delta-Abruf im Detail

Jede Antwort nennt einen Zählerstand seq. Schicken Sie ihn beim nächsten Mal als ?since= mit, und Sie bekommen ausschließlich, was sich seither geändert hat: changes enthält die betroffenen Spiele in genau demselben Format wie /v1/feed, removed die Spiele, die es nicht mehr gibt (Wettstopp, Spielende, Quelle ausgefallen). Ein Spiel aus removed gehört sofort aus dem Angebot.

Steht in der Antwort hasMore: true, war Ihr Rückstand größer als eine Antwort fassen soll: Sie haben ein Stück bekommen, und das mitgelieferte seq reicht nur bis zum Ende dieses Stücks. Holen Sie dann sofort mit genau diesem seq weiter, bis hasMore false ist – erst danach sind Sie auf dem aktuellen Stand. Setzen Sie Ihren Zeiger niemals auf seqEnde (das ist nur die Anzeige, wohin es insgesamt geht) – sonst überspringen Sie den Rest still.

quelleLebendig: false heißt: Wir bekommen gerade keine frischen Daten. Behandeln Sie Live-Quoten dann als veraltet und nehmen Sie keine Live-Wetten mehr an. Antwortet der Dienst mit resync: true, liegt Ihr Stand hinter unserem Änderungsjournal (eine Stunde) – dann einmal voll abrufen und mit dem neuen seq weitermachen.

Eine Quote, die 30 Minuten lang nicht erneuert wurde, verfällt; ein Spiel ohne jede gültige Quote wird nach 45 Minuten aus dem Angebot genommen. Bauen Sie Ihre Seite also so, dass ein verschwundenes Spiel ein normaler Vorgang ist.

Fehler & Grenzen

CodeBedeutungWas zu tun ist
200In Ordnung
401Schlüssel fehlt, ist falsch oder gesperrtSchlüssel prüfen; im Kopf Authorization: Bearer … senden
403Zugang gesperrt oder Recht fehltBei uns melden – meist ist der Kundenzugang stillgelegt
404Spiel nicht gefundenKennung veraltet; das Spiel ist beendet oder wurde entfernt
429Zu viele AnfragenTakt drosseln, kurz warten und erneut versuchen

Jeder Schlüssel hat eine Grenze pro Minute (Standard 120). Die Antwort nennt im Fehlerfall die geltende Grenze. Brauchen Sie mehr, heben wir sie für Ihren Zugang an.

{ "error": "Zu viele Anfragen (Grenze: 120/Minute)" }

Fehler kommen immer als JSON mit einem Feld error.

Kundenportal – Ihren Bezug selbst einstellen

Unter https://www.atlasoddshub.com/portal melden Sie sich mit Ihrem API-Schlüssel an und bestimmen selbst, was Ihr Feed enthält. Änderungen wirken sofort auf den nächsten Abruf – ohne Rückfrage bei uns.

WettartenVorabwetten und Livewetten einzeln beziehen oder abschalten.
MargeEigener Aufschlag – getrennt für Vorab und Live. 1.07 = 7 % Overround; leer = Quoten unverändert.
MarktartenJede Marktart einzeln an- und abschalten, wieder getrennt für Vorab und Live.
Sportarten & LigenAbgewählte Sportarten und Ligen erscheinen gar nicht erst im Feed.
Einzelne SpieleEinzelne Begegnungen gezielt sperren.
AbrufeEigener Verbrauch der letzten 30 Tage.

Dieselben Einstellungen sind auch über die API erreichbar, wenn Sie sie aus Ihrem eigenen Backoffice heraus steuern wollen:

GET  https://www.atlasoddshub.com/v1/portal/settings     # aktuelle Einstellungen
PUT  https://www.atlasoddshub.com/v1/portal/settings     # ändern (nur die gesendeten Felder)
GET  https://www.atlasoddshub.com/v1/portal/catalog      # wählbare Märkte, Sportarten, Ligen
GET  https://www.atlasoddshub.com/v1/portal/events       # Spiele mit Schalter-Zustand
GET  https://www.atlasoddshub.com/v1/portal/usage        # eigene Abrufe

# Beispiel: Live mit 8 % Marge, ohne Torschützen-Wetten
curl -X PUT https://www.atlasoddshub.com/v1/portal/settings \
  -H "Authorization: Bearer IHR_SCHLUESSEL" -H "Content-Type: application/json" \
  -d '{"marginLive":1.08,"disabledMarketsLive":["player_prop"]}'

Jeder Abruf von /v1/feed gibt unter customer.settings zurück, welche Vorgaben dabei angewendet wurden – so bleibt jede Quote nachvollziehbar.

Weitergabe der Daten

Die an Sie gelieferten Quoten sind für die Weitergabe an Ihre Endkunden freigegeben.

Die bezogenen Quoten dürfen Sie in Ihrem eigenen Angebot verwenden. Ein Weiterverkauf als eigener Datendienst ist nicht Teil des Zugangs – dafür braucht es eine gesonderte Vereinbarung.