Sports data feeds
We run our own collection: 33 price sources and a match store covering 2,282 competitions across 187 countries, normalised onto one fixture identity and served as JSON. You take the feeds you need — live scores without odds, odds without results, one market family and nothing else — on a key that carries exactly those and a call rate agreed in advance.
Tell us what you need See the feeds
Counted from the live store when this page loaded, not from a brochure. Recomputed every five minutes.
Each family is licensed on its own. A key opens the ones it was granted and returns
403 on the rest — so a live-score customer never sees a price, and an
odds customer is never billed for broadcast listings.
In-play state, scorers, cards, period clock, statuses.
Finished scores, fixture lists, kick-off times.
Every quote from every book, by market and period.
Best price per outcome across the book set.
Type/period/bookmaker ids and the line ladder.
Leagues, countries, teams, participants.
Broadcast listings per fixture.
Player movement.
Fixtures withdrawn upstream, for cache invalidation.
One key per member. The key is the identity, the grant and the meter at once — there is no shared credential and no self-service sign-up.
?key_auth= or an
X-API-Key header. Rotate it whenever you like; it takes us one
click.401 unknown key,
403 feed not on your grant or address not bound, 429 over
rate. Nothing else about the payload changes.# a granted call curl -H 'X-API-Key: <your-key>' <your-endpoint> # the same key against a feed it does not carry { "error": "scope_not_granted", "detail": "This key does not carry the \"odds\" feed. Granted: livescore, results, reference.", "status": 403 } # over the agreed rate HTTP/1.1 429 Too Many Requests X-RateLimit-Limit: 120 X-RateLimit-Remaining: 0 Retry-After: 37
One call at start-up returns the market, period and bookmaker vocabulary along with the line ladder. Every odds feed answers in those ids, so nothing downstream needs a hardcoded copy that goes stale the next time a market is added.
Set per member, not per plan. Two customers on the same feed can sit on very different numbers, because the number follows what the integration actually does.
| Control | What it does |
|---|---|
| calls / minute | Counted per calendar minute against the whole key, across every feed on it. Over the
ceiling you get 429 with Retry-After and the second the
window resets — never a silently truncated payload. |
| feed grant | The families the key opens. Anything outside it is 403 with the granted
list named in the response, so a misconfigured integration diagnoses itself. |
| market filter | Optional, inside the odds families: a key can be narrowed to given market types, bookmakers or sports and will see nothing else. |
| address binding | Optional allowlist of your egress addresses. A leaked key is then useless from anywhere else. |
| rotation | A new key is issued and the old one stops on the same request. There is no overlap window, so tell us before rather than after. |
There is no price list here on purpose. What a feed costs depends on which families you take, how hard you poll them and whether you redistribute — tell us that much and a real number comes back by e-mail, usually the same day.