Badminton data API
Badminton data, from 1899 through one keyWorld badminton: results and fixtures, draws back to 1899, players, head to head, world rankings by discipline and live scores.
Endpoints
Everything badminton answers
Each one opens in the docs with a live console, your key already filled in.
| Method | Address | What it gives | Free key | |
|---|---|---|---|---|
| GET | /v1/badminton/live | Every match in play now, game by game | Plan | Try it |
| GET | /v1/badminton/fixtures | Upcoming matches by date | Plan | Try it |
| GET | /v1/badminton/results | Finished matches by date, with every game score | Yesterday | Try it |
| GET | /v1/badminton/matches/{id} | One match in full, with every game | Yesterday | Try it |
| GET | /v1/badminton/matches/{id}/stats | The statistics of a match, game by game | Yesterday | Try it |
| GET | /v1/badminton/tournaments | Every tournament or competition held | Yesterday | Try it |
| GET | /v1/badminton/rankings | The current ranking list | Yesterday | Try it |
| GET | /v1/badminton/players/{id} | A player and their record | Yesterday | Try it |
| GET | /v1/badminton/head-to-head | Every meeting between two players | Yesterday | Try it |
| GET | /v1/badminton/search | Players and tournaments by name | Yesterday | Try it |
A real answer
What comes back
Kept from the API each night, exactly as a caller receives it, lists cut to a few rows.
{
"data": [],
"meta": {
"sport": "badminton",
"endpoint": "/results",
"count": 0,
"cached": false,
"age_seconds": 0
}
}{
"data": [
{
"rank": 1,
"name": "Christo Popov",
"players": [
{
"id": "bd_4ej9m63q10",
"name": "Christo Popov",
"country": "FRA"
}
],
"points": 89932
},
{
"rank": 2,
"name": "Kunlavut Vitidsarn",
"players": [
{
"id": "bd_r8av76xmhd",
"name": "Kunlavut Vitidsarn",
"country": "THA"
}
],
"points": 89465
}
],
"meta": {
"sport": "badminton",
"endpoint": "/rankings",
"count": 50,
"page": 1,
"per_page": 50,
"total": 500,
"total_pages": 10,
"next_cursor": "bzUwcDUw",
"next_page": 2,
"prev_page": null,
"cached": false,
"age_seconds": 0
}
}{
"data": [
{
"id": "bd_9k4wfmxr7p",
"series": "african-champs",
"name": "2026 African Championships",
"year": 2026,
"level": "senior",
"disciplines": [
"MD",
"MS",
"WD"
],
"matches": 219
},
{
"id": "bd_jn2246hp9h",
"series": "all-england",
"name": "2026 All England Open",
"year": 2026,
"level": "senior",
"disciplines": [
"MD",
"MS",
"WD"
],
"matches": 155
}
],
"meta": {
"sport": "badminton",
"endpoint": "/tournaments",
"count": 50,
"page": 1,
"per_page": 50,
"total": 1157,
"total_pages": 24,
"next_cursor": "bzUwcDUw",
"next_page": 2,
"prev_page": null,
"cached": false,
"age_seconds": 0
}
}Goes well with
Sports often taken with badminton
Can I try badminton before I pay?
Yes. The free key reads yesterday's badminton data on every endpoint except live and fixtures, 50 calls a day, no card.
What does the Badminton plan include?
Every badminton endpoint, live and upcoming included, the full history we hold, 120 calls a minute and 250,000 a month, for $19 a month or $190 a year.
Does it answer like the other sports?
Yes. Badminton answers in the same shape as every other sport, through the same key, so code written for one reads the rest.
Can I use it with Claude?
Yes. The MCP server turns each badminton endpoint into a tool, on the same key.