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 / Darts / Matches

Darts match statistics API

Match statistics
Free key reads yesterdayMCP tool: match_detailKept 30 minutes

The statistics of a match, leg by leg.

Ask for it by our id, taken from any other darts answer. The ids inside the answer each open their own endpoint, so you can follow a record from here to everything it links to.

It needs id. Leave one out and the answer names it, before any data is read.

GET/v1/darts/matches/{id}/stats

Try it

Your key stays in this browser and is filled in on every docs page.

GET
200 OK194 ms1 recordReal answer from 2026-11-02, trimmed
{
    "data": {
        "players": [
            {
                "player_id": "dt_bcg5r8s5pv",
                "name": "Conor Heneghan",
                "statistics": {
                    "scoring": {
                        "three_dart_avg": 84.24,
                        "first_9_avg": 98.07,
                        "first_3_avg": 85,
                        "avg_with_throw": 91.09,
                        "avg_vs_throw": 80.2
                    },
                    "big_scores": {
                        "count_180": 1,
                        "visits_171_180": 1,
                        "visits_140": 2,
                        "visits_131_140": 4
                    },
                    "finishing": {
                        "checkout_pct": 36.36,
                        "highest_checkout": 85,
                        "functional_doubles": 36.36
                    },
                    "legs": {
                        "legs_won_pct": 80,
                        "won_on_throw_pct": 100,
                        "won_vs_throw_pct": 66.67
                    }
                }
            },
            {
                "player_id": "dt_tfhbbq0wdn",
                "name": "Jonny Barnes",
                "statistics": {
                    "scoring": {
                        "three_dart_avg": 68.02,
                        "first_9_avg": 61.87,
                        "first_3_avg": 39.6,
                        "avg_with_throw": 67.98,
                        "avg_vs_throw": 68.1
                    },
                    "big_scores": {
                        "count_180": 0,
                        "visits_171_180": 0,
                        "visits_140": 3,
                        "visits_131_140": 3
                    },
                    "finishing": {
                        "checkout_pct": 33.33,
                        "highest_checkout": 48,
                        "functional_doubles": 33.33
                    },
                    "legs": {
                        "legs_won_pct": 20,
                        "won_on_throw_pct": 33.33,
                        "won_vs_throw_pct": 0
                    }
                }
            }
        ]
    },
    "meta": {
        "sport": "darts",
        "endpoint": "/matches/{id}/stats",
        "count": 2,
        "as_of": "2026-11-01T15:07:56Z",
        "cached": false,
        "age_seconds": 0
    }
}
No key yet? Get a free key: it reads yesterday for every sport and is filled in here once made.

Parameters

Query values this call takes. Anything else is refused with bad_param and the list it accepts.

NameTypeWhat it does
ididrequiredThe record, by our id, in the path.

Returns

Each field in data, from a real answer. Every id is ours and opens its own endpoint.

FieldTypeWhat it holds
playerslistPlayers
metaWhat it holds
sport, endpointWhat you asked
countRows in this answer
page, per_page, total, next_cursorWhere you are in a paged list, when it is paged
as_ofWhen the data was built
cached, age_secondsWhether this is a stored copy, and its age
accessOn the free key: what it reads, and the plan that opens the rest

Errors

Codes this call can give. Each is explained in Errors.

StatusCodeWhen
401no_keyNo key sent, or not in a form we read
401bad_keyA key we do not know
403planThe free key asked for a date other than yesterday
404not_foundAn id we never issued for darts
422bad_paramA value this call does not take, or a required one missing
429rateOver the calls a minute for your plan
503upstreamThe data is not answering; retry after Retry-After

The free key reads yesterday. The Darts plan opens live, fixtures and every date held, for $29 a month.

Add Darts