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

Sports data API documentation

Everything to build with sixteen sports, on one key

DataSportAPI serves live scores, fixtures, results, line-ups, racecards and the history behind them for sixteen sports, through one REST API and one JSON shape. Every record carries a stable id of ours, so a team, a match or a runner links the same way in every sport.

These pages cover all of it: a guide for every subject, one page for every endpoint of every sport with a console you can run, code in cURL, JavaScript, Python and PHP, and the MCP server that puts the API inside Claude, ChatGPT and Cursor. Pick a sport on the bar above and the menu, every example and the code follow it.

16
sports, one key
162
endpoint pages
27
guides
4
languages on every call

Start here

Three steps from nothing to real football data.

1

Get a free key

Sign in with Google and your key is made at once. It reads yesterday for every sport, 50 calls a day.

Get a free key
2

Make the first call

Send it as X-API-Key or Authorization: Bearer. Once saved, it is filled in on every console.

Read Quick start
3

Read the answer

Every answer is data and meta: the rows, then paging, freshness and the age of the copy.

Open Results
GET
200 OK1903 ms2 rows shownReal answer from 2026-11-03, trimmed
{
    "data": [
        {
            "match_id": "fb_3npnahqb09",
            "league_id": "fb_9vq1mbqrgz",
            "country_name": "Brazil",
            "league_name": "Serie B",
            "season_start_year": 2026,
            "kickoff_utc": "2026-11-02T23:30:00Z",
            "kickoff_date": "2026-11-02",
            "kickoff_local_date": "2026-11-02",
            "kickoff_local_time": "23:30",
            "match_status": "finished",
            "home_team_id": "fb_mw96mceske",
            "home_team_name": "Goias",
            "away_team_id": "fb_1cycjasdqh",
            "away_team_name": "CRB",
            "home_goals": 2,
            "away_goals": 1,
            "full_time_result": null,
            "half_time_home_goals": 1,
            "half_time_away_goals": 0,
            "half_time_result": null,
            "stoppage_minutes": null,
            "is_kickoff_rescheduled": false,
            "elapsed_minutes": null,
            "home_league_position": 17,
            "away_league_position": 18,
            "away_travel_km": 1662,
            "venue_name": "Estádio da Serrinha",
            "city_name": "Goiânia",
            "latitude": -16.635209,
            "longitude": -49.265904,
            "location_precision": "ground",
            "daylight_minutes": 763,
            "sun_elevation_deg": -29.3,
            "public_holiday": null,
            "kickoff_temperature_c": null,
            "kickoff_rain_mm": null,
            "kickoff_wind_ms": null,
            "attendance": null,
            "referee_name": "Felipe Fernandes de Lima",
            "kickoff_book_pct": 1.0138,
            "regular_time_home_goals": null,
            "regular_time_away_goals": null,
            "regular_time_result": null,
            "extra_time_home_goals": null,
            "extra_time_away_goals": null,
            "shootout_home_goals": null,
            "shootout_away_goals": null,
            "statistics_status": null,
            "best_odds": {
                "home": 2.16,
                "draw": 3.8,
                "away": 3.55,
                "book_pct": 1.0078,
                "taken_utc": "2026-11-02T23:25:02Z"
            },
            "team_figures": null,
            "statistics_reason": null
        },
        {
            "match_id": "fb_3mg42m9pyn",
            "league_id": "fb_wma271b54d",
            "country_name": "Chile",
            "league_name": "Primera División",
            "season_start_year": 2026,
            "kickoff_utc": "2026-11-02T23:30:00Z",
            "kickoff_date": "2026-11-02",
            "kickoff_local_date": "2026-11-02",
            "kickoff_local_time": "23:30",
            "match_status": "finished",
            "home_team_id": "fb_hny9rc1tkt",
            "home_team_name": "Concepción",
            "away_team_id": "fb_ws0bbvakw5",
            "away_team_name": "Palestino",
            "home_goals": 1,
            "away_goals": 0,
            "full_time_result": null,
            "half_time_home_goals": 1,
            "half_time_away_goals": 0,
            "half_time_result": null,
            "stoppage_minutes": null,
            "is_kickoff_rescheduled": false,
            "elapsed_minutes": null,
            "home_league_position": 11,
            "away_league_position": 4,
            "away_travel_km": 433,
            "venue_name": "Estadio Municipal Ester Roa Concepcion",
            "city_name": "Concepcion",
            "latitude": -36.826944444444,
            "longitude": -73.050277777778,
            "location_precision": "city",
            "daylight_minutes": 819,
            "sun_elevation_deg": -1.7,
            "public_holiday": null,
            "kickoff_temperature_c": null,
            "kickoff_rain_mm": null,
            "kickoff_wind_ms": null,
            "attendance": null,
            "referee_name": null,
            "kickoff_book_pct": 1.0148,
            "regular_time_home_goals": null,
            "regular_time_away_goals": null,
            "regular_time_result": null,
            "extra_time_home_goals": null,
            "extra_time_away_goals": null,
            "shootout_home_goals": null,
            "shootout_away_goals": null,
            "statistics_status": null,
            "best_odds": {
                "home": 2.76,
                "draw": 3.5,
                "away": 2.74,
                "book_pct": 1.013,
                "taken_utc": "2026-11-02T23:25:02Z"
            },
            "team_figures": null,
            "statistics_reason": null
        }
    ],
    "meta": {
        "sport": "football",
        "endpoint": "/results",
        "count": 100,
        "page": 1,
        "per_page": 100,
        "total": 229,
        "total_pages": 3,
        "next_cursor": "MTc5MzYzODgwMDoxNTU1MjAw",
        "next_page": 2,
        "prev_page": null,
        "as_of": "2026-11-02T05:16:53Z",
        "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.

Football endpoints

Every football call, one click away. Switch sport on the bar above for another.

Free key reads it (yesterday)Live, with the sport planNot held for this sport

Which sport answers what

The shared calls across all sixteen. A filled square answers today; amber is being connected.

Every subject

A guide for each subject of the data: what it covers, how the records link, and the common jobs.

Live scores

How live answers work, how often to ask, and telling a fresh copy from a stored one.

Read the guide ›

Results

Results by day and by competition, final and half-time scores, and walking back through the history.

Read the guide ›

Line-ups

Starters, substitutes, formations and minutes, and how players link to their own pages.

Read the guide ›

Standings and rankings

League tables by season, ranking lists, and how they tie back to results.

Read the guide ›

Racecards

Racecards for horses and greyhounds: runners, draws and traps, results with prices, and form.

Read the guide ›

One schema, many sports

How the same code reads every sport you hold, and where sports differ.

Read the guide ›

Use with Claude and agents

The whole API as tools, as a skill, and as one file an agent can read.

Give an agent the skill and it knows our calls, ids, plans and limits without reading these pages. Download the skill, then save it as ~/.claude/skills/datasportapi/SKILL.md, or upload it as a skill in Claude's settings. For live answers inside the assistant, add the MCP server.

MCP server

Add it to Claude, ChatGPT, Cursor or Claude Code. Fourteen tools cover every endpoint on your plan.

https://datasportapi.com/mcp

Agent skill

One SKILL.md that teaches an agent our calls, ids and limits.

https://datasportapi.com/skill.md

The manual

The whole API in one Markdown file, current with every page here.

https://datasportapi.com/documentation/manual.md

llms.txt

The short map of these docs for any language model.

https://datasportapi.com/llms.txt

Plans in short

Every sport is its own plan. The rules are in Plans and limits.

Free key
$0
  • Yesterday, every sport
  • 50 calls a day
  • 10 calls a minute
Get a free key
Football
$79 a month
  • Live, fixtures, full history
  • 250,000 calls a month
  • 120 calls a minute
Add Football
Complete
$249 a month
  • All sixteen sports
  • 1,000,000 calls a month
  • 240 calls a minute
Take Complete

What is new

From the changelog.

2 Nov 2026AddedCricket matches in play answer on the same match address as finished ones, as do their scorecards and ball by ball.
2 Nov 2026AddedHead to head takes team and opponent in every team sport, and player and opponent in every one-against-one sport.
2 Nov 2026AddedEvery answer carries meta.cached and meta.age_seconds, and the X-Cache header, so you can see how fresh a copy is.
2 Nov 2026AddedEleven sports serving: football, horses, greyhounds, cricket, basketball, rugby, darts, boxing, volleyball, table tennis and badminton.

The rest

Short answers, each with its full page.

Questions people ask

Answered here in full.

Is the answer the same shape for every sport?

Yes. Every answer is data and meta, ids are ours and stable, and the paths follow one contract for each kind of sport. Where a sport differs, its endpoint pages say so and list every field from a real answer.

Can I try every endpoint before paying?

Yes. The free key reads yesterday on every endpoint of every sport except live and fixtures, 50 calls a day, with no card.

Where does my key go in the consoles?

Paste it once on any docs page and press Save. It stays in this browser and is filled in on every other page. A key made on your account page arrives by itself.

How do I connect Claude or another assistant?

Add the MCP server as a connector and sign in. The MCP guide covers Claude, ChatGPT, Cursor and Claude Code.

How fresh is the data?

Live scores are kept for ten seconds, results for five minutes. Every answer carries its age in meta, so you always know how fresh it is.