FIBA APIfiba.basketball ↗
Access FIBA basketball game schedules, scores, world rankings, competition lists, and news via 5 structured endpoints. No auth setup required.
What is the FIBA API?
This API exposes 5 endpoints covering FIBA basketball data: game schedules and results by date, detailed per-game stats, a full competition list, world rankings across four categories, and keyword-searchable news articles. The get_game_detail endpoint returns quarter-by-quarter period scores, referee nominations, and competition context for any GDAP game ID. Data spans men's, women's, boys', and girls' categories across FIBA's global tournament calendar.
curl -X GET 'https://api.parse.bot/scraper/cc3c1c14-45b1-403f-b470-f208c37a6108/get_games_by_date?date=2026-06-30' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace fiba-basketball-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.fiba_basketball_api import Fiba, RankingCategory
fiba = Fiba()
# Search for news articles about EuroBasket
for article in fiba.articles.search(query="EuroBasket"):
print(article.title, article.date, article.search_score)
# Get world rankings for women
for ranking in fiba.rankings.list(category=RankingCategory.WOMEN):
print(ranking.world_rank, ranking.country_name, ranking.current_points)
# List active competitions
for comp in fiba.competitions.list():
print(comp.title, comp.gender, comp.fiba_zone_code)
# Get games for a specific date using constructible Schedule
schedule = fiba.schedule(date="2025-01-15")
for game in schedule.games():
print(game.game_id, game.team_a.short_name, game.team_a_score, game.team_b.short_name, game.team_b_score)
# Get detailed game info including quarter scores
detail = fiba.games.get(game_id="128381")
game_detail = detail.detail()
for period in game_detail.periods:
print(period.name, period.team_a_score, period.team_b_score)
Retrieve game schedule and results for a specific date. Returns an array of games scheduled for that date, which may be empty if no games are scheduled. Each game includes team information, scores, venue, and competition details.
| Param | Type | Description |
|---|---|---|
| date | string | Target date in YYYY-MM-DD format. If omitted, defaults to today's date. |
{
"type": "object",
"fields": {
"games": "array of game objects with gameId, teamA, teamB, scores, venue, competition details"
},
"sample": {
"data": {
"games": [
{
"teamA": {
"code": "PROM",
"teamId": 282198,
"shortName": "Promitheas Patras"
},
"teamB": {
"code": "KSK",
"teamId": 282197,
"shortName": "Karsiyaka"
},
"gameId": 122874,
"hostCity": "Patras",
"venueName": "Dimitris Tofalos Arena",
"statusCode": "VALID",
"teamAScore": 84,
"teamBScore": 68,
"competition": {
"officialName": "Basketball Champions League",
"competitionCode": "BCL"
},
"hostCountry": "Greece",
"gameDateTime": "2025-01-15T19:30:00"
}
]
},
"status": "success"
}
}About the FIBA API
Game Schedule and Detail
get_games_by_date accepts a date parameter in YYYY-MM-DD format (defaults to today if omitted) and returns an array of game objects, each containing gameId, teamA, teamB, scores, venue, and competition details. If no games are scheduled for that date, the array is empty. To go deeper on any game, pass its gameId as the game_id parameter to get_game_detail, which adds periods (quarter-by-quarter scores), nominations (officials and referees), and full competition context.
Competitions and World Rankings
get_competition_list requires no inputs and returns every active or calendar-status FIBA competition, each with its slug, title, eventId, gender, date range, zone, and status. get_world_rankings accepts a category parameter — men, women, boys, or girls — and returns each ranked country's worldRank, countryName, currentPoints, and worldRankVariation. Note that results are not guaranteed to arrive sorted by rank; client-side sorting on worldRank is required for ordered display.
News Search
search_news takes a required query string (e.g. 'EuroBasket', 'World Cup') and an optional limit integer. It returns matching articles ordered by @search.score, with each result including title, description, date, slug, id, and the relevance score. This is useful for pulling FIBA coverage around a specific team, event, or keyword without polling a news feed.
The FIBA API is a managed, monitored endpoint for fiba.basketball — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when fiba.basketball changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official fiba.basketball API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Display today's live FIBA game scores and venues in a basketball scores widget using
get_games_by_date - Build a box-score view with period-by-period breakdowns by calling
get_game_detailwith a GDAP game ID - Render a sortable FIBA World Rankings table by gender category using
worldRankandcurrentPointsfields - Populate a tournament calendar UI from
get_competition_listfiltered byzoneorgender - Power a basketball news search feature with keyword queries via
search_newsranked by@search.score - Track rank movement over time by storing
worldRankVariationfrom periodicget_world_rankingscalls - Aggregate referee assignment data across games using the
nominationsfield fromget_game_detail
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does FIBA provide an official public developer API?+
What does `get_world_rankings` return, and which categories are supported?+
get_world_rankings returns an array of country-level objects, each with worldRank, countryName, currentPoints, and worldRankVariation. The category parameter accepts four values: men, women, boys, and girls. Results are not pre-sorted — clients should sort on worldRank after receiving the response.Does the API return player-level statistics or individual game performance data?+
How does `get_game_detail` differ from `get_games_by_date`?+
get_games_by_date gives a summary array of all games on a given date — useful for listings. get_game_detail requires a specific game_id (GDAP numeric string) and returns richer data: periods with quarter-by-quarter scores, nominations identifying referees and officials, and full competition context. The game_id values needed to call get_game_detail come from the gameId field in get_games_by_date results.Does the API support pagination for news results or competition lists?+
search_news accepts a limit integer to cap the number of returned articles, but there is no offset or page parameter for stepping through additional results. get_competition_list returns all competitions in a single response with no pagination controls. You can fork this API on Parse and revise it to add offset-based pagination if your use case requires it.