A FIBA Basketball World Cup 2027 sandbox in Qatar: 32 teams in eight groups, games simulated quarter by quarter with overtime, ETag-guarded team staff and box scores.
The FIBA World Cup API models the 2027 Basketball World Cup in Qatar, and it is built around the fact that basketball has no draws. Simulating a game plays four quarters possession by possession and then keeps adding five-minute overtimes until somebody is ahead, so the group table can use FIBA’s real classification system — two points for a win, one for a loss — and never needs a draw column. Everything downstream is derived from that one write: the box score, the cursor-paged play-by-play, the tournament leaders and the MVP race all read the plays the simulation produced, and none of them can be written directly.
Base URL: https://funapi.dev/api/fiba/v1 · 22 endpoints · OpenAPI 3.1 spec and Postman collection available. New here? Read the getting started guide.
GET https://funapi.dev/api/fiba/v1/teams — List qualified teams (filter by group, FIBA zone or hosts). No token, no signup:
curl -i https://funapi.dev/api/fiba/v1/teams
answers 200 OK with:
{
"total": 32,
"data": [
{
"id": 1,
"name": "Qatar",
"code": "QAT",
"group": "A",
"zone": "Asia",
"fibaRank": 24,
"host": true,
"headCoach": null,
"captainPlayerId": null,
"_v": 1
},
{
"id": 2,
"name": "United States",
"code": "USA",
"group": "A",
"zone": "Americas",
"fibaRank": 1,
"host": false,
"headCoach": null,
"captainPlayerId": null,
"_v": 1
},
{
"id": 3,
"name": "Lithuania",
"code": "LTU",
"group": "A",
"zone": "Europe",
"fibaRank": 8,
"host": false,
"headCoach": null,
"captainPlayerId": null,
"_v": 1
},
{
"id": 4,
"name": "Egypt",
"code": "EGY",
"group": "A",
"zone": "Africa",
"fibaRank": 30,
"host": false,
"headCoach": null,
"captainPlayerId": null,
"_v": 1
},
{
"id": 5,
"name": "Germany",
"code": "GER",
"group": "B",
"zone": "Europe",
"fibaRank": 2,
(truncated — the full response comes back when you run it)
the 32 qualified nations
GET /fiba/v1/teams — List qualified teams (filter by group, FIBA zone or hosts) · Responds with 200 400 Link to this endpointGET /fiba/v1/teams/{id} — Get one national team — carries the ETag its staff update needs · Responds with 200 404 Link to this endpointPUT /fiba/v1/teams/{id}/staff — Name the head coach and captain — optimistic concurrency via If-Match (requires Bearer auth) · Responds with 200 401 403 404 412 422 Link to this endpointGET /fiba/v1/groups/{letter}/standings — Group table computed from finished games — cacheable (ETag / If-None-Match / 304) · Responds with 200 304 400 404 Link to this endpointsimulation, box scores and reviews
GET /fiba/v1/games — List games (filter by stage, status, group or team) · Responds with 200 Link to this endpointGET /fiba/v1/games/{id} — Get one game with team and arena names resolved · Responds with 200 404 Link to this endpointPOST /fiba/v1/games/{id}/simulate — Tip off — four quarters plus overtime until somebody wins (admin only) (requires Bearer auth) · Responds with 200 401 403 404 409 422 Link to this endpointGET /fiba/v1/games/{id}/boxscore — Per-player box score, derived from the play-by-play · Responds with 200 404 409 Link to this endpointGET /fiba/v1/games/{id}/play-by-play — Cursor-paged play-by-play — follow nextCursor to the final buzzer · Responds with 200 400 404 409 Link to this endpointPOST /fiba/v1/games/{id}/challenge — Coach's challenge — a slow (~3s) replay review, one per team (requires Bearer auth) · Responds with 200 401 404 409 422 Link to this endpointPOST /fiba/v1/games/{id}/highlights — Queue a highlight reel — 202 Accepted, then poll the job (requires Bearer auth) · Responds with 202 401 404 409 422 Link to this endpointGET /fiba/v1/highlights/{id} — Poll a highlight job until it is ready · Responds with 200 404 Link to this endpointthe Doha host courts
GET /fiba/v1/arenas — List the Qatar host arenas, filter by city · Responds with 200 Link to this endpointGET /fiba/v1/arenas/{id} — Get one arena with the games it hosts · Responds with 200 404 Link to this endpointstat leaders and the MVP race
GET /fiba/v1/players — List players (filter by team or position) · Responds with 200 Link to this endpointGET /fiba/v1/players/{id} — Get one player with their running tournament totals · Responds with 200 404 Link to this endpointGET /fiba/v1/players/leaders — Tournament leaders for points, rebounds or assists · Responds with 200 422 Link to this endpointGET /fiba/v1/players/{id}/advanced — Tracking data — always 402, it is on the paid analytics tier · Responds with 402 404 Link to this endpointGET /fiba/v1/fanzone/mvp — The MVP race, ranked by a simplified efficiency index · Responds with 200 Link to this endpointlimited seats, real conflicts
POST /fiba/v1/tickets — Buy tickets — seats are limited, so 409 when the game sells out (requires Bearer auth) · Responds with 201 400 401 409 422 Link to this endpointGET /fiba/v1/tickets/{id} — Get a ticket order — 410 once it has been cancelled · Responds with 200 404 410 Link to this endpointDELETE /fiba/v1/tickets/{id} — Cancel an order and release the seats (requires Bearer auth) · Responds with 204 401 404 410 Link to this endpointUnofficial and fan-made. The FIBA World Cup API is a practice API that borrows a theme; it is not affiliated with, sponsored or endorsed by the owners of the names it references, which belong to them. Every record it returns is test data for exercising HTTP behaviour, not an authoritative source on the subject.
Last updated