Step 1
Request beta access and confirm bookmaker, sport, market, and region scope.
API quickstart
Start with entitled bookmaker coverage, normalized events, markets, and decimal odds. The REST API is scoped during beta so launch teams can validate source quality before scaling traffic.
Step 1
Request beta access and confirm bookmaker, sport, market, and region scope.
Step 2
Create an API key in the dashboard after access is enabled.
Step 3
Send REST requests with an Authorization: Bearer token.
Step 4
Use rate-limit headers and source coverage status to size rollout traffic.
Endpoints
/api/v1/bookmakersList entitled bookmaker sources with verified REST/live capability metadata.
sport=football&transport=rest
/api/v1/eventsList events with current odds from entitled sources.
sport=football&dateFrom=2026-05-04T00:00:00.000Z&dateTo=2026-05-11T00:00:00.000Z
/api/v1/events/{eventId}/oddsRead grouped odds for one event across markets and bookmakers.
Use the numeric event id returned by /api/v1/events.
/api/v1/specDownload the OpenAPI contract used by the web app.
Public endpoint, no API key required.
Filters and limits
Responses include X-RateLimit-Limit and X-RateLimit-Remaining. Treat those headers as part of your launch control loop rather than retrying blindly.
sportSport code, defaults to football.
bookmakerComma-separated source slugs such as tipico,bet-at-home.
limitPagination size from 1 to 500.
dateFrom / dateToISO-8601 kickoff range filters for event lists.
leagueOptional league key for event list narrowing.
Response shape
Odds are returned as decimal odds. Bookmaker-specific upstream payloads are normalized into events, markets, outcomes, quote status, and observation timestamps. The flat OpenAPI quote schema uses oddsDecimal; grouped event odds use odds inside each outcome.
{
"data": {
"event": {
"id": "12345",
"sport": "football",
"leagueName": "Bundesliga",
"homeTeam": "Borussia Dortmund",
"awayTeam": "Bayern Munich",
"kickoffAt": "2026-05-09T16:30:00.000Z"
},
"markets": [
{
"type": "match_result_1x2",
"line": null,
"bookmakers": [
{
"slug": "tipico",
"displayName": "Tipico",
"outcomes": [
{
"outcome": "home",
"odds": 2.42,
"status": "open",
"lastUpdatedAt": "2026-05-04T12:10:14.000Z"
}
]
}
]
}
]
}
}Source capabilities
/api/v1/bookmakers returns entitlement-scoped sources plus product coverage status. Broad odds requests omit unverified sources by default; explicit unverified source requests return 409 source_unavailable.
{
"data": [
{
"slug": "tipico",
"displayName": "Tipico",
"region": "Germany / DACH",
"countries": ["DE"],
"restAvailable": true,
"liveAvailable": true,
"coverageStatus": "verified_rest_live",
"sourceMode": "direct",
"latestNetcupEvidenceDate": "2026-05-12",
"customerNote": "Verified REST and STOMP live output."
},
{
"slug": "skybet",
"displayName": "Sky Bet",
"region": "United Kingdom",
"countries": ["GB"],
"restAvailable": true,
"liveAvailable": false,
"coverageStatus": "source_limited",
"sourceMode": "worker_proxy",
"latestNetcupEvidenceDate": "2026-05-15",
"customerNote": "REST path has evidence; live output is not verified for product use."
}
],
"meta": {
"entitlement": { "scope": "organization", "sport": "football", "transport": "rest" },
"verifiedCoverage": { "source": "productCoverage", "internalBlockersIncluded": false },
"runtimeFreshness": { "included": false }
}
}