Information
- License: Proprietary
- OpenAPI version:
3.1.0
Live odds and prices from every book we cover, in one JSON API.
Fixtures and prices from every sportsbook, exchange and prediction market we cover, joined onto one fixture and returned in one JSON response. Every book is available on every plan, and there is no regional gating.
Fixture and price fields use plain, familiar names: bookmakers[] -> markets[] -> outcomes[{name, price, point}], with home_team / away_team on the fixture. A few
things worth knowing about how our format works:
X-API-Key request header only. There is no query parameter
alternative, since a key in a URL can end up recorded by a proxy or a log.totals_f5, spreads_h1. A full-game market has no
suffix. GET /v1/markets lists every key and the period it covers.price is one number. Under the default oddsFormat=american it is always an integer
(-110, 124); under oddsFormat=decimal it is a decimal number above 1 (1.91).
point is a decimal number (2.5, -3.0) and is absent on a moneyline.last_update is present on every price and can be null. A null value means we do
not yet measure a fetch time for that book, and it is never an estimate. A price older
than its book’s normal update rhythm is removed rather than shown as stale.size is a typed object: kind (posted_limit, resting_depth or contracts) and
amount. It is present only where a book publishes one.unmatched_bookmakers appears on every successful odds or props response. A book that
had a price for this fixture but could not be matched to it safely is named here
explicitly, instead of being left out silently.id is a readable id built from the sport, the two teams and the date, for example
nfl:falcons-panthers:2026-09-20. Treat it as an opaque string.error: code, message, docs_url, request_id.Only calls that return prices count against your monthly allowance: the odds endpoints,
the props endpoints and the history endpoints. Listing sports, bookmakers, markets and
fixtures is free on every plan, and the account endpoints are free too. All of them still
follow your plan’s speed limit. Each operation below states whether it counts
(x-counts-as-request). A free call never answers ALLOWANCE_SPENT: once the month’s
allowance is used up, the free calls keep working.
Within one version, changes only add: new endpoints, new optional parameters, new response fields, new values you should be ready to see. We do not rename or remove a field, change a field’s type, or change what an existing parameter does by default. A change that cannot be made that way ships as a new version, with the previous one kept running through a notice period.
A response field whose value comes from a documented list (a book’s kind, a size’s
kind, a plan name) can gain a new value within a version. Those lists are marked
x-extensible-enum instead of enum, so a client generated from this file reads them as
plain strings; handle a value you do not recognise instead of failing on it.
Every operation except /v1/account/keys accepts this. There is no ?apiKey= query fallback.
Security scheme type: apiKey
Header parameter name: X-API-Key
A signed-in website session’s access token. Required by /v1/account/keys. An X-API-Key is refused there: only a signed-in customer creates or revokes keys.
Security scheme type: http