Health
GET /common/health — upstream STOMP feed status and event counts.
Developers
RESTful endpoints, API key auth, and tenant docs generated on signup. Code at midnight, ship by dawn.
Pass your tenant API key via the X-Api-Key header or ?apiKey= query parameter.
curl -H "X-Api-Key: YOUR_KEY" \ https://odds.cafe/api/v1/tenant/live?limit=20
API-only tenants: authenticate with your tenant key, read odds from /common/api/v1/ or /api/v1/tenant/, then place bets on POST /api/v1/tenant/bets. There is no bet route under /common/.
# Optional JWT for WebSockets
curl -X POST https://odds.cafe/api/v1/auth/token \
-H "Content-Type: application/json" \
-d '{"apiKey":"YOUR_KEY","clientId":"your-app"}'
# Live events + odds (public common API)
curl https://odds.cafe/common/api/v1/events/live
curl https://odds.cafe/common/api/v1/events/EVENT_ID/odds
# Place bet (server-side only — use x-api-key or x-settlement-key)
curl -X POST https://odds.cafe/api/v1/tenant/bets \
-H "X-Api-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"eventId":"EVENT_ID","marketType":"match_odds","selection":"RUNNER_ID","selectionName":"Team A","side":"back","stake":10,"price":2.5}'
# Track open bets
curl -H "X-Api-Key: YOUR_KEY" "https://odds.cafe/api/v1/tenant/bets?status=open"
Event IDs from the Common API work on /tenant/bets — the platform registers the fixture on first bet. Use GET /api/v1/tenant/stream/:eventId for live TV when available: true.
Public, sport-agnostic proxy at /common/api/v1/ — fast normalized odds for cricket, soccer, tennis, and more. No tenant key required.
GET /common/health — upstream STOMP feed status and event counts.
GET /common/api/v1/events — all live events across sports.
GET /common/api/v1/events/live — in-play fixtures only.
GET /common/api/v1/events/:eventId/odds — matchOdds, bookmaker, fancy, line.
GET /common/api/v1/odds — snapshot for every subscribed event.
WS /common/ws — live guru365 STOMP feed (feed.robuzz.lol) via in-repo bridge.
# List events, then fetch odds for any id from the response:
curl https://odds.cafe/common/api/v1/events
curl https://odds.cafe/common/api/v1/events/EVENT_ID/odds
# Response shape (all sports):
# { eventId, eventName, matchOdds, bookmaker, fancy, line }
Default: direct robuzz integration (api.robuzz.lol, catalog.robuzz.lol, feed.robuzz.lol). Set ODDS_UPSTREAM_URL only to use a legacy external HTTP proxy.
When a fixture is in-play but the TV feed is not ready yet (not_live), hosted clients poll until available: true — then playback and a LIVE badge appear without a page refresh.
GET /api/v1/sportsbook/stream/:eventId — JWT auth. Poll interval respects retryAfterMs from the resolver.
GET /api/v1/embed/live-tv/:eventId/resolve — used by /embed/agse/ and /embed/v1/ iframes.
GET /api/v1/tenant/stream/:eventId — same resolver for custom players; pass X-Api-Key.
Full embed URLs and API key examples are in your tenant lounge after signup.
All tenant routes live under /api/v1/tenant/
GET /live — in-play fixtures with full market buckets (use these event IDs for bets).
GET /odds/live — recent price tick feed (diagnostics; not the event list).
POST /bets — register a wager (eventId, selection, stake, price, marketType).
GET /scorecard/:eventId — live match state and period breakdowns.
GET /bootstrap — sports list, feature flags, and connection hints for your client.
GET /usage — quota consumption and billing period stats for your tenant.
GET /plans — public plan catalog (also powers this site’s pricing page).
Fast, sport-agnostic normalized odds at /common/ — match odds, bookmaker, fancy, and line markets from the cached upstream catalog and STOMP feed.
curl https://odds.cafe/common/health curl https://odds.cafe/common/api/v1/events curl https://odds.cafe/common/api/v1/events/live curl https://odds.cafe/common/api/v1/events/35656102/odds curl https://odds.cafe/common/api/v1/odds # WebSocket (live STOMP bridge) wss://odds.cafe/common/ws
curl https://odds.cafe/common/manifest curl -H "X-Api-Key: YOUR_KEY" https://odds.cafe/common/sports curl -H "X-Api-Key: YOUR_KEY" "https://odds.cafe/common/events?sportId=4&status=IN_PLAY" curl -H "X-Api-Key: YOUR_KEY" https://odds.cafe/common/live?limit=20 curl -H "X-Api-Key: YOUR_KEY" https://odds.cafe/common/events/EVENT_ID/odds
matchOdds, bookmaker, fancy, and line arrays per event — same schema across all sports.
Each event includes eventToken (BetFair:sportId:competitionId:eventId) and exchangePath for guru365-style URLs.
GET /common/openapi.json — machine-readable route map. Operator dashboard includes a live browser under Common API.
“Good docs are like good coffee — strong, simple, and available when you need them.”— Developer experience
After onboarding, full integration guides are generated in your tenant lounge — with your API key pre-filled.