Basketball competitions API
CompetitionsEvery competition held, with its seasons.
A list you will want once and then keep: it changes rarely. Ids in it open their own endpoints.
Try it
Your key stays in this browser and is filled in on every docs page.
{
"data": [
{
"id": "bb_k8jc1gev0h",
"name": "ABA League",
"slug": "europe-admiralbet-aba-league",
"country": null,
"gender": "men",
"kind": "international",
"seasons": 26,
"first_season": "2001-02",
"last_season": "2026-27",
"games": 4703,
"finals": 4702,
"detail": "box_scores",
"box_score_share": 99.9,
"play_by_play_share": 36.8
},
{
"id": "bb_b0ze23y957",
"name": "ABA League 2",
"slug": "europe-aba-league-2",
"country": null,
"gender": "men",
"kind": "international",
"seasons": 10,
"first_season": "2017-18",
"last_season": "2026-27",
"games": 984,
"finals": 981,
"detail": "box_scores",
"box_score_share": 99.1,
"play_by_play_share": 98.5
}
],
"meta": {
"sport": "basketball",
"endpoint": "/competitions",
"count": 41,
"page": 1,
"per_page": 50,
"total": 41,
"total_pages": 1,
"next_cursor": null,
"next_page": null,
"prev_page": null,
"cached": false,
"age_seconds": 0
}
}Parameters
Query values this call takes. Anything else is refused with bad_param and the list it accepts.
| Name | Type | What it does | |
|---|---|---|---|
| season | string | optional | The season, by the id or starting year shown in Competitions. |
| page | integer | optional | Which page of rows, from 1. |
| per_page | integer | optional | Rows per page, up to 100 on most lists. |
Returns
Each row of data, from a real answer. Every id is ours and opens its own endpoint.
| Field | Type | What it holds |
|---|---|---|
| id | id | Our id for this record |
| name | string | Its name |
| slug | string | Slug |
| country | null | The country |
| gender | string | Men, women or mixed |
| kind | string | Kind |
| seasons | integer | Seasons |
| first_season | string | First season |
| last_season | string | Last season |
| games | integer | Each game |
| finals | integer | Finals |
| detail | string | Detail |
| box_score_share | number | Box score share |
| play_by_play_share | number | Play by play share |
| meta | What it holds |
|---|---|
| sport, endpoint | What you asked |
| count | Rows in this answer |
| page, per_page, total, next_cursor | Where you are in a paged list, when it is paged |
| as_of | When the data was built |
| cached, age_seconds | Whether this is a stored copy, and its age |
| access | On the free key: what it reads, and the plan that opens the rest |
Errors
Codes this call can give. Each is explained in Errors.
| Status | Code | When |
|---|---|---|
| 401 | no_key | No key sent, or not in a form we read |
| 401 | bad_key | A key we do not know |
| 403 | plan | The free key asked for a date other than yesterday |
| 422 | bad_param | A value this call does not take |
| 429 | rate | Over the calls a minute for your plan |
| 503 | upstream | The data is not answering; retry after Retry-After |
The free key reads yesterday. The Basketball plan opens live, fixtures and every date held, for $49 a month.
Add Basketball