DocumentationAPI v1
Documentation

Build on every darts match since 1994

One REST API over the whole archive: results with each player's statistics, fixtures and live scores, ratings, closing prices and a probability model. JSON over HTTPS, one key, and the same shapes on every plan.

Base URL
https://api.dartsapi.com/v1
Authentication
Authorization: Bearer da_live_…
Endpoints
52, 16 on the free key
Format
JSON, times in UTC

Quickstart

From no key to real results in three steps.

  1. 1

    Get a key

    Sign in with Google and a free key is issued at once, with no card. It lives on your dashboard; keep it in an environment variable.

    Get a free key
  2. 2

    Check it works

    /v1/usage answers with your plan, your window and today's counters.

    GET /v1/usage
  3. 3

    Make a real call

    The three most recent results of the player leading the averages. Every example here runs as written on a free key.

    GET /v1/results
Your first call
curl "https://api.dartsapi.com/v1/results?player_id=pl_VEB8HM&limit=3" \
  -H "Authorization: Bearer $DARTS_API_KEY"
import os, requests

r = requests.get(
    "https://api.dartsapi.com/v1/results?player_id=pl_VEB8HM&limit=3",
    headers={"Authorization": f"Bearer {os.environ['DARTS_API_KEY']}"},
)
print(r.json())
const r = await fetch("https://api.dartsapi.com/v1/results?player_id=pl_VEB8HM&limit=3", {
  headers: { Authorization: `Bearer ${process.env.DARTS_API_KEY}` },
});
const { data, meta } = await r.json();
$ch = curl_init("https://api.dartsapi.com/v1/results?player_id=pl_VEB8HM&limit=3");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["Authorization: Bearer " . getenv("DARTS_API_KEY")],
]);
$out = json_decode(curl_exec($ch), true);
What /v1/usage tells you
{
    "data": {
        "account": "ac_EXAMPLE",
        "plan": {
            "key": "free",
            "name": "Free key",
            "endpoints": 10,
            "of": 41,
            "reach": "every free endpoint, on results at least seven days old"
        },
        "window": {
            "from": null,
            "to": "2026-09-23",
            "in_play": false
        },
        "rate": {
            "per_minute": 60,
            "used_this_minute": 1,
            "resets_in_s": 38
        },
        "allowance": {
            "period": "day",
            "limit": 500,
            "used": 1,
            "remaining": 499,
            "used_pct": 0.2,
            "resets_in_s": 19238,
            "resets_at": "2026-10-01T00:00:00Z"
        },
        "counted": "Every call that is authorised and understood counts, including this one. Refusals for plan or parameters do not.",
        "key": {
            "prefix": "da_live_3f9c",
            "last_used": "2026-09-30T18:39:22Z"
        }
    },
    "meta": {
        "plan": "free",
        "data_as_of": "2026-09-30T18:39:22Z"
    }
}

Every endpoint, by what it answers

52 endpoints in 10 groups. The colour shows who reaches each: Free on every key, Paid on any paid plan, Analyst on Analyst.

What each plan reaches

One key for life. A new plan applies the moment payment confirms, with nothing to change in your code.

PlanPriceReachesWindowRateAllowance
Free key $0 16 endpoints Every free endpoint, on results at least seven days old 60 a minute 500 a day
Live $39 a month 44 endpoints In-play and the last thirty days 120 a minute 250,000 a month
Archive $79 a month 43 endpoints The whole archive, but nothing in play 120 a minute 250,000 a month
Complete $99 a month 44 endpoints In-play and the whole archive 180 a minute 600,000 a month
Analyst $149 a month All 52 endpoints Everything, including the model endpoints 240 a minute 1,000,000 a month

Use with Claude and agents

An agent skill teaches Claude, Cursor, Codex and other agents how to use the Darts API: what it holds, how to get a key, the calls that answer the common questions, the limits and the errors. It is built from the same registry as these pages, so it never lists an endpoint that is not there.

Install the skill

Download skill.md and save it as ~/.claude/skills/dartsapi/SKILL.md, or upload it as a skill in Claude's settings. Agents that look for skills find it at /.well-known/agent-skills/index.json.

Everything in one file

The complete reference holds every endpoint, parameter, sample response and guide in one markdown document, sized to paste into an assistant. Tools: the MCP server and the OpenAPI file.

Conventions that hold everywhere

Learn these once and every endpoint behaves the way you expect.