Boxing Data API - Fighter Rankings by Weight Class
Rankings represent the official contender standings published by the four major sanctioning bodies — IBF, WBA, WBC, and WBO — across all 17 men’s weight classes. Use rankings to identify the top-rated contenders, current champions, and interim/regular belt holders in any division.
Understanding the rankings data
How pagination works
Rankings are paginated by weight class. Each page returns rankings for one weight class across all four organisations. Page 1 is always heavyweight, page 2 cruiserweight, and so on down to minimumweight (page 17). There are always 17 pages in total and the page_size param is not supported — each page always returns 4 items (one per organisation).
| Page | Division |
|---|---|
| 1 | Heavyweight |
| 2 | Cruiserweight |
| 3 | Light Heavyweight |
| 4 | Super Middleweight |
| 5 | Middleweight |
| 6 | Super Welterweight |
| 7 | Welterweight |
| 8 | Super Lightweight |
| 9 | Lightweight |
| 10 | Super Featherweight |
| 11 | Featherweight |
| 12 | Super Bantamweight |
| 13 | Bantamweight |
| 14 | Super Flyweight |
| 15 | Flyweight |
| 16 | Light Flyweight |
| 17 | Minimumweight |
Filtering by division or organisation
Pass division_id to jump directly to a specific weight class instead of paginating. Pass organization_id to narrow results to a single sanctioning body. Both filters can be combined.
Champions vs contenders
Each ranking object contains two separate arrays:
champions— the current title holders for that org and division. Each entry includestitle_type(full,regular, orinterim) so you can identify which belt they hold.rankings— the ranked contenders, ordered by rank ascending.
Vacant positions
When a title or rank slot has no holder, is_vacant: true is set on the entry and fighter_id / fighter_name will be null.
Identifying which title a champion holds
The title_ids field on each ranking object maps belt types to title IDs:
"title_ids": { "full": "67153e83af69bb50508b7914", "regular": null, "interim": null}Use title_type on a champion entry to look up the corresponding title ID from title_ids.
updated_at field
updated_at reflects when the sanctioning body last updated their rankings (sourced from BoxingScene), not our internal sync timestamp.
Endpoints
1. List rankings:
- Endpoint URL:
https://boxing-data-api.p.rapidapi.com/v2/rankings/ - Description: Retrieves fighter rankings paginated by weight class. Each page covers one division across all four major organisations.
List rankings
The following query params can be used to filter or navigate the rankings:
| Query Param | Description | Example | Default | Required |
|---|---|---|---|---|
page_num | The weight class page to return (1 = heavyweight, 17 = minimumweight). | 1 | 1 | No |
organization_id | Filter results to a single sanctioning organisation. | 6715138aad13034eb882665a | Null | No |
division_id | Return rankings for a specific weight division directly, ignoring page_num. | 671513530ad13034eb88265a | Null | No |
curl --request GET --url 'https://boxing-data-api.p.rapidapi.com/v2/rankings/?page_num=1' --header 'x-rapidapi-key: [Your RapidAPI Key]'axios.get('https://boxing-data-api.p.rapidapi.com/v2/rankings', { headers: { 'X-RapidAPI-Key': '[Your RapidAPI Key]' }, params: { page_num: 1 }}).then(response => { console.log(response.data);}).catch(error => { console.error(error);});import requests
url = "https://boxing-data-api.p.rapidapi.com/v2/rankings"headers = { 'X-RapidAPI-Key': '[Your RapidAPI Key]'}params = { 'page_num': 1}
response = requests.get(url, headers=headers, params=params)print(response.json())Example response:
{ "metadata": { "timestamp": "2026-06-17T12:00:00.000000+00:00" }, "pagination": { "page": 1, "items": 4, "total_pages": 17, "total_items": 68 }, "error": {}, "data": [ { "id": "6715abc123def456789abc01", "organization": { "id": "6715138aad13034eb882665a", "name": "International Boxing Federation", "slug": "ibf" }, "division": { "id": "671513530ad13034eb88265a", "name": "Heavyweight", "weight_lb": null, "weight_kg": null }, "gender": "male", "title_ids": { "full": "67153e83af69bb50508b7914", "regular": null, "interim": null }, "updated_at": "2026-06-10T00:00:00.000000", "champions": [ { "fighter_id": "6715fc1faf69bb50508b7c72", "fighter_name": "Oleksandr Usyk", "title_type": "full", "is_vacant": false } ], "rankings": [ { "rank": 1, "fighter_id": "6715fc1faf69bb50508b7a4d", "fighter_name": "Daniel Dubois", "is_vacant": false }, { "rank": 2, "fighter_id": "6715fc1faf69bb50508b7af7", "fighter_name": "Anthony Joshua", "is_vacant": false } ] } ]}