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 / Players

Darts head to head API

Head to head
Free key reads yesterdayMCP tool: head_to_headKept 30 minutes

Every meeting between two players.

A list you will want once and then keep: it changes rarely. Ids in it open their own endpoints.

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

GET/v1/darts/head-to-head

Try it

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

GET
200 OK1270 ms1 recordReal answer from 2026-11-03, trimmed
{
    "data": {
        "players": [
            {
                "player_id": "dt_6eefhw35y8",
                "name": "Ronan McDonagh",
                "wins": 0,
                "legs": 0
            },
            {
                "player_id": "dt_pwtkqmm3fc",
                "name": "Patrick Dekker",
                "wins": 0,
                "legs": 0
            }
        ],
        "meetings": 0,
        "first_meeting": null,
        "last_meeting": null,
        "matches": []
    },
    "meta": {
        "sport": "darts",
        "endpoint": "/head-to-head",
        "count": 0,
        "as_of": "2026-11-03T00:19:41Z",
        "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
playeridrequiredA player, by their id.
opponentidrequiredThe other side, by its id.

Returns

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

FieldTypeWhat it holds
playerslistPlayers
meetingsintegerMeetings
first_meetingnullFirst in metreseeting
last_meetingnullLast in metreseeting
matcheslistMatches played
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