DataSportAPI
Docs
Your first call in one line

The free key reads yesterday for every sport, 50 calls a day. No card.

Get a free key
Every sport, one key

Complete reads all sixteen sports for $249 a month.

Take Complete
Ask in plain words

"Who won at Kempton yesterday?" Your assistant picks the tool and answers from your plan.

Connect in two minutes
Showing
Documentation / Guides

Errors, sports data API

Errors

An error answers with an HTTP status and a short code you can switch on, a message for people, and detail where it helps.

{
  "error": {
    "code": "plan",
    "message": "The free key reads yesterday (2026-11-01). The Football plan reads every date held.",
    "detail": { "sport": "football", "add": "https://datasportapi.com/account?add=football" }
  }
}

Every code

StatusCodeWhat to do
401no_keyNo key was sent, or not in a form we read. Send X-API-Key or Authorization: Bearer.
401bad_keyThe key is not one of ours, or it was revoked. Check it on your account page.
403planYour plan does not read this: live or fixtures on the free key, or a date other than yesterday. detail names the plan that does.
404not_foundNo record has that id in this sport, or nothing matches. Ids come from our own answers.
404no_routeNo endpoint at that path. detail links the sport's endpoint list.
422bad_paramA value this call does not take, a date not written YYYY-MM-DD, or a value it needs is missing. detail lists what it accepts.
429rateToo many calls this minute. Wait Retry-After seconds.
429quotaThe day's or month's calls are used. detail says when they reset.
500serverSomething failed our end. Try again shortly; it is logged and looked at.
501not_heldThis sport does not have this endpoint. It will not change by retrying.
503upstreamThat data is not answering right now. Try again in a minute; Retry-After says when.
503comingThis sport is being connected. It opens to every plan for the sport the moment it does.

Retrying

Retry rate, upstream and server after the Retry-After seconds. Never retry not_held, bad_param, not_found or plan: the same call gives the same answer.