Skip to content
datasportsAPI

Frequently asked

Ask before you build.

14 short answers on how calls are counted, what each plan unlocks and how the data behaves. Search them, narrow them by topic, or write to us if yours is missing.

Requests & limits

What we count, when the counter resets and what each 429 means.

Which calls count against my quota?

Every authenticated call to a /v2 endpoint counts once, however large the response. Minting a WebSocket ticket with /v2/stream/ticket is a call like any other, so it counts as well.

Calls we refuse before doing any work are not counted: a 401 for a missing, wrong or revoked key, a 403 endpoint_not_in_plan for an endpoint outside your plan, and a 403 ip_not_allowed from an address outside your allowlist. A 429 rate_limited is not charged to the quota either.

There are no credits and no per-endpoint weights. A full lineup costs exactly what a live score costs: one.

When does my quota reset?

Starter, Pro and Business count by calendar month in UTC: the counter goes back to zero at 00:00 UTC on the 1st. Free counts by day and resets every night at 00:00 UTC.

Responses carry RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset headers, so your code can see how much room is left without a separate call.

What is the difference between rate_limited and quota_exceeded?

Both arrive as HTTP 429, so branch on error.code rather than on the status alone.

rate_limited means too many calls inside one minute. Each plan has its own ceiling: 10 on Free, 120 on Starter, 600 on Pro and 6,000 on Business. It clears within the minute; wait the seconds given in Retry-After and carry on.

quota_exceeded means the allowance for the period is used up. Calls are refused until the reset, and Retry-After holds the number of seconds until then. The official SDKs retry rate_limited (and 503) for you after Retry-After.

Plans & billing

Getting onto a plan, changing it, and what Free includes.

Can I downgrade or cancel?

Yes. Changes in either direction go through the same route as upgrades: write to us from the email address on your account, say what you would like, and our team makes the change on its side.

What does the Free plan include?

The same 24 sports and the same core match data as every paid plan: live scores, fixtures, lineups, events, statistics, standings, teams and players. Free reads the last 7 days of history, allows 10 calls a minute and comes with 1 API key.

While the public beta runs, Free allows 1,000 calls a day. When the beta ends, the allowance settles at 100 a day.

The data

History, freshness, odds, coverage and ids.

How far back can I read?

That depends on the plan: last 7 days on Free, last 30 days on Starter, last 6 months on Pro and the full archive on Business (Full history).

The window only limits the past. Upcoming fixtures and matches in play are open on every plan.

Ask for something older than your window and you get 403 history_not_in_plan; its historyFrom field names the earliest day your plan can read.

How current is live data?

Score, status and clock (a match's live state) are accurate to the second in any response that contains the fixture, no matter which endpoint served it.

Detail that changes during play has its own documented worst case. Lineups, statistics and events, for example, trail the action by about 30 seconds while a match is in play, and by no more than 90. The figure for every endpoint is listed on the data freshness page.

Do you offer betting odds?

Yes, on Pro and Business, since November 2026. We carry pre-match and in-play prices from one bookmaker: every market for a single fixture at /v2/fixtures/{id}/odds, and the main market for a whole day at /v2/odds. On Business, each price move is also pushed live on the odds:{id} WebSocket channel.

Odds stay on those endpoints and that channel. Fixtures, lists and the other stream channels never carry a betting field, so your match data is odds-free unless you ask for odds.

The prices come from a third party and are provided for information only. They do not constitute betting advice or an offer to place a bet.

Which sports are covered?

24 sports, from football, tennis and basketball to floorball, bandy and padel. Every plan includes all of them.

Match sports share one fixture shape and race sports (cycling and motorsport) share one race shape, so code written for one league keeps working for the next.

Do ids ever change?

No. Every id in a response is issued by us rather than borrowed from a data source, and it stays with the same team, player, league, venue or match for good. A team's id this season is its id next season, so you can store our ids and join on them.

Building with it

Streams, browsers and the official clients.

Which plan includes the WebSocket stream?

Business. Every other plan reads exactly the same live data over REST. The stream pushes each change as soon as we have it, and after a dropped connection it replays the frames you missed, up to five minutes back per channel. An account can hold up to five connections at once.

Signed webhooks and season exports are Business features too.

Can I call the API straight from a web page?

CORS is open, so it works, but a secret key (dsa_live_…) inside a page can be read by anyone who opens the developer tools, and every call they make is charged to you.

Keep the key on your server, in the DATASPORTSAPI_API_KEY environment variable for example, and call us from there. To show data on a page without a backend, embed our widgets (Pro and Business): they run on a publishable key (dsa_pub_…) that only works on the sites you list.

Are there official client libraries?

Yes: TypeScript and JavaScript (npm install datasportsapi), Python (pip install datasportsapi) and Go (go get github.com/datasportsapi/datasportsapi-go), plus the dsa command-line tool.

They read your key from DATASPORTSAPI_API_KEY, walk paged endpoints for you, retry rate_limited and 503 after Retry-After, and include a WebSocket client for Business accounts.

Still curious? Try it on real data.

The Free plan reads every sport. 1,000 free calls a day while the beta runs. No card needed.