Bodybuilding Data API
Query the bodybuilding database through a free REST API. Retrieve athlete profiles, competition results, Mr. Olympia and Arnold Classic history, IFBB Pro division data, GOAT rankings, and more.
The API returns JSON and follows standard REST conventions. All endpoints use GET requests. No login is required, but requests are rate-limited per IP (60/min, or 600/min with an optional API key sent as the X-API-Key header).
Try one safe request first
Copy this request before reading the full endpoint catalog. It returns the first matching Ronnie Coleman record and proves your HTTP client, base URL, and JSON parsing are working.
- No login required; an optional API key (X-API-Key header) raises the rate limit from 60 to 600 requests per minute.
- Expected response: a paginated object with
data,total,page,per_page, andpages; each athlete usescanonical_nameandprimary_division. - Common mistake: do not append a second `/wp-json/` if your client already uses the full Base URL below.
curl "https://fitnessvolt.com/wp-json/bodybuilding/v1/athletes?search=Ronnie%20Coleman&per_page=1"
Base URL
https://fitnessvolt.com/wp-json/bodybuilding/v1
Authentication
Read endpoints are public, no login required. A valid API key raises your rate limit when sent in the X-API-Key request header. Keys are not accepted in query strings.
Rate Limiting
Enforced per IP: 60 requests per minute without a key, 600 per minute with a valid API key. Exceeding the limit returns HTTP 429 with a Retry-After header. Cache responses and stay within the limit rather than retrying tightly.
Cross-Origin Requests
Anonymous browser GET requests are public: responses to requests with an Origin header include Access-Control-Allow-Origin: *. Do not send cookies.
Keyed browser requests are not currently available because preflight responses do not allow X-API-Key; use a server-side client for keyed requests.
Machine-Readable Specification
The OpenAPI 3.0 specification is available as JSON for client generators, API explorers, and validation tools.
Specification URL
MCP Server for AI Assistants
A Model Context Protocol (MCP) server lets AI assistants and agents query this database directly as tools.
It is a thin adapter over the public REST API above, so there is no separate data path, and its tool definitions are generated from the OpenAPI specification, so they always match the live endpoints.
The source ships with the plugin under bodybuilding/mcp/ (plain Node, no build step).
Run it (Node 18+)
The bundled adapter currently makes anonymous API requests. Use the REST API directly for keyed requests. To register the server with a desktop AI client, add an entry like this to its MCP configuration:
claude_desktop_config.json
{
"mcpServers": {
"bodybuilding-database": {
"command": "node",
"args": ["/absolute/path/to/bodybuilding/mcp/index.js"],
"env": { "BB_API_BASE": "https://fitnessvolt.com/wp-json/bodybuilding/v1" }
}
}
}
The server exposes tools for search, athletes, contests, divisions, rankings, GOAT, head-to-head compare, on this day, records, and Mr. Olympia. Every response carries the same attribution requirement described below.
Complete Endpoint Catalog
This catalog is generated from the registered WordPress REST routes in the bodybuilding/v1 namespace. It lists public read endpoints only.
Arnold
Retrieve arnold data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| year | integer | optional | Year (default: 0) |
| division | string | optional | Division (default: ) |
Arnold Year
Retrieve arnold year data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| year | integer | required | Year |
| division | string | optional | Division (default: ) |
Arnold Csv
Retrieve arnold csv data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| year | integer | required | Year |
| division | string | optional | Division (default: ) |
Athletes
Retrieve athletes data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| search | string | optional | Search (default: ) |
| division | string | optional | Division (default: ) |
| country | string | optional | Country (default: ) |
| gender | string | optional | Gender (default: ) |
| active | string | optional | Active (default: ) |
| sort | string | optional | Sort (default: ) |
| order | string | optional | Order (default: ) |
| per_page | integer | optional | Per Page (default: 20) |
| page | integer | optional | Page (default: 1) |
Athlete
Retrieve athlete data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | required | Id |
Athlete Career Arc
Retrieve athlete career arc data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | required | Id |
Best By Decade
Retrieve best by decade data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| division | string | required | Division |
| decade | integer | required | Decade |
| per_page | integer | optional | Per Page (default: 10) |
Compare
Retrieve compare data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| athlete1 | string | required | Athlete1 |
| athlete2 | string | required | Athlete2 |
Compare Csv
Retrieve compare csv data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| a | string | optional | A (default: ) |
| b | string | optional | B (default: ) |
| athlete1 | string | optional | Athlete1 (default: ) |
| athlete2 | string | optional | Athlete2 (default: ) |
Contests
Retrieve contests data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| year | integer | optional | Year (default: 0) |
| event_tier | string | optional | Event Tier (default: ) |
| search | string | optional | Search (default: ) |
| per_page | integer | optional | Per Page (default: 20) |
| page | integer | optional | Page (default: 1) |
| upcoming | boolean | optional | Upcoming (default: ) |
| order | string | optional | Order (default: ) |
Contest
Retrieve contest data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | required | Id |
Contest By Slug
Retrieve contest by slug data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| slug | string | required | Slug |
Contest Csv
Retrieve contest csv data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| slug | string | required | Slug |
Countries
Retrieve countries data from the Bodybuilding Database API.
Key Parameters
None.
Country Olympia Titles
Retrieve country olympia titles data from the Bodybuilding Database API.
Key Parameters
None.
Country
Retrieve country data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | required | Name |
Division Analytics
Retrieve division analytics data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| division | string | optional | Division (default: mens-open) |
Division Migration
Retrieve division migration data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| athlete | string | required | Athlete |
Division Migrations
Retrieve division migrations data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| per_page | integer | optional | Per Page (default: 25) |
Divisions
Retrieve divisions data from the Bodybuilding Database API.
Key Parameters
None.
Division
Retrieve division data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | required | Id |
Division Csv
Retrieve division csv data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | required | Id |
Feed
Retrieve feed data from the Bodybuilding Database API.
Key Parameters
None.
Goat
Retrieve goat data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| division | string | optional | Division (default: ) |
| gender | string | optional | Gender (default: ) |
| per_page | integer | optional | Per Page (default: 50) |
| mode | string | optional | Mode (default: base) |
Goat Csv
Retrieve goat csv data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| division | string | optional | Division (default: ) |
| gender | string | optional | Gender (default: ) |
| per_page | integer | optional | Per Page (default: 100) |
| mode | string | optional | Mode (default: base) |
Olympia
Retrieve olympia data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| year | integer | optional | Year (default: 0) |
| division | string | optional | Division (default: ) |
Olympia Qualified
Retrieve olympia qualified data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| year | integer | optional | Year (default: 0) |
Olympia Winners
Retrieve olympia winners data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| division | string | required | Division |
Olympia Year
Retrieve olympia year data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| year | integer | required | Year |
| division | string | optional | Division (default: ) |
Olympia Csv
Retrieve olympia csv data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| year | integer | required | Year |
| division | string | optional | Division (default: ) |
On This Day
Retrieve on this day data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| month | integer | optional | Month (default: 8) |
| day | integer | optional | Day (default: 12) |
Peak Window
Retrieve peak window data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| athlete | string | required | Athlete |
Predictions
Retrieve predictions data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| contest | string | optional | Contest (default: olympia) |
| year | integer | optional | Year (default: 0) |
| division | string | optional | Division (default: mens-open) |
Predictions Csv
Retrieve predictions csv data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| contest | string | optional | Contest (default: olympia) |
| year | integer | optional | Year (default: 0) |
| division | string | optional | Division (default: mens-open) |
Prime Vs Prime
Retrieve prime vs prime data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| a | string | required | A |
| b | string | required | B |
Pseo Index
Retrieve pseo index data from the Bodybuilding Database API.
Key Parameters
None.
Rankings
Retrieve rankings data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| type | string | optional | Type (default: olympia_wins) |
| division | string | optional | Division (default: ) |
| gender | string | optional | Gender (default: ) |
| per_page | integer | optional | Per Page (default: 50) |
| page | integer | optional | Page (default: 1) |
Rankings Csv
Retrieve rankings csv data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| type | string | optional | Type (default: olympia_wins) |
| division | string | optional | Division (default: ) |
| gender | string | optional | Gender (default: ) |
| per_page | integer | optional | Per Page (default: 200) |
Records
Retrieve records data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| category | string | required | Category |
Results
Retrieve results data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| athlete_id | integer | optional | Athlete Id (default: 0) |
| contest_id | integer | optional | Contest Id (default: 0) |
| per_page | integer | optional | Per Page (default: 50) |
| page | integer | optional | Page (default: 1) |
Road To Olympia
Retrieve road to olympia data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| division | string | optional | Division (default: ) |
| year | integer | optional | Year (default: 0) |
| per_page | integer | optional | Per Page (default: 50) |
| page | integer | optional | Page (default: 1) |
Search
Retrieve search data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| q | string | required | Q |
Seasons
Retrieve seasons data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| year | integer | optional | Year (default: 0) |
Season Year
Retrieve season year data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| year | integer | required | Year |
Season Csv
Retrieve season csv data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| year | integer | required | Year |
Stats
Retrieve stats data from the Bodybuilding Database API.
Key Parameters
None.
Top Lists
Retrieve top lists data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| category | string | optional | Category (default: most_wins) |
| division | string | optional | Division (default: ) |
| per_page | integer | optional | Per Page (default: 25) |
Top List Detail
Retrieve top list detail data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| slug | string | required | Slug |
| division | string | optional | Division (default: ) |
| per_page | integer | optional | Per Page (default: 25) |
Top List Csv
Retrieve top list csv data from the Bodybuilding Database API.
Key Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| slug | string | required | Slug |
| division | string | optional | Division (default: ) |
| per_page | integer | optional | Per Page (default: 100) |
Odds board pages use generated snapshots and prediction data. No separate public REST /odds route is registered; use /predictions for prediction payloads.
List Athletes
Retrieve a paginated list of bodybuilding athletes. Supports filtering by division, country, gender, and active status, plus text search.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| search | string | optional | Filter by athlete name |
| division | string | optional | Filter by division slug (e.g. mens-open, womens-bikini) |
| country | string | optional | Filter by country name |
| gender | string | optional | Filter by gender (M or F) |
| active | string | optional | Filter active athletes (1 for active only) |
| sort | string | optional | Sort field (e.g. name, total_wins) |
| order | string | optional | Sort direction: asc or desc |
| per_page | integer | optional | Results per page (default: 20) |
| page | integer | optional | Page number (default: 1) |
Example Request
Example Response
Get Athlete
Retrieve detailed information for a single athlete, including career statistics and full competition result history.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | required | Athlete numeric ID or slug (e.g. ronnie-coleman) |
Example Request
Example Response
List Contests
Retrieve a paginated list of bodybuilding contests. Filter by year, tier, or search by name.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| year | integer | optional | Filter by contest year |
| event_tier | string | optional | Filter by event tier |
| search | string | optional | Search contest names |
| per_page | integer | optional | Results per page (default: 20) |
| page | integer | optional | Page number (default: 1) |
Example Request
Example Response
Get Contest
Retrieve full details for a single contest, including all division results and placings.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | integer | required | Contest ID |
Example Request
List Divisions
Retrieve all 13 canonical IFBB Pro divisions with athlete counts and metadata.
Example Request
Example Response
Get Division
Retrieve detailed information for a single division, including top athletes and historical data.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | required | Division slug (e.g. mens-open, classic-physique) |
Example Request
Rankings
Retrieve athlete rankings by total wins, Olympia wins, Arnold wins, and other statistical categories. Filterable by division.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| type | string | optional | Ranking type (default: olympia_wins) |
| division | string | optional | Filter by division slug |
| gender | string | optional | Filter by gender (M or F) |
| per_page | integer | optional | Results per page (default: 50) |
| page | integer | optional | Page number (default: 1) |
Example Request
GOAT Rankings
Retrieve the Greatest of All Time composite rankings, factoring in Olympia titles, total wins, longevity, and dominance.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| division | string | optional | Filter by division slug |
| gender | string | optional | Filter by gender (M or F) |
| per_page | integer | optional | Results per page (default: 50) |
| mode | string | optional | Scoring mode (default: base) |
Example Request
Example Response
Mr. Olympia
Retrieve Mr. Olympia results. Returns all years by default, or filter by year and division.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| year | integer | optional | Filter by year (e.g. 2024) |
| division | string | optional | Filter by division slug |
Example Request
Arnold Classic
Retrieve Arnold Classic results. Returns all years by default, or filter by year and division.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| year | integer | optional | Filter by year (e.g. 2024) |
| division | string | optional | Filter by division slug |
Example Request
Countries
Retrieve countries with codes, athlete counts, win totals, and active-athlete counts.
Example Request
Example Response
Search
Global search across athletes and contests. Returns grouped results by type.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| q | string | required | Search query (minimum 2 characters) |
Example Request
Example Response
Database Statistics
Retrieve aggregate database statistics: total athletes, contests, results, division types, provenance, and year coverage.
Example Request
Example Response
On This Day
Retrieve bodybuilding events that happened on a given date in history. Defaults to today's date.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| month | integer | optional | Month number 1-12 (default: current month) |
| day | integer | optional | Day number 1-31 (default: current day) |
Example Request
Predictions
Retrieve data-driven contest predictions based on recent form, historical performance, and win momentum.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| contest | string | optional | Contest type: olympia or arnold (default: olympia) |
| year | integer | optional | Prediction year (default: current year) |
| division | string | optional | Division slug (default: mens-open) |
Example Request
Attribution and Fair Use
The Bodybuilding Database API is free for non-commercial use with attribution required. Requests are rate-limited per IP (60 per minute; 600 with an optional API key).
Cache responses, stay within the limit, and link back to the source when publishing data, charts, widgets, or derived research.
Copy-Paste Attribution
Prefer not to write code? The embeddable widgets render the same data as a drop-in block.
Bodybuilding Data API
The Bodybuilding Data API provides programmatic access to 110,447 athlete profiles, 349,823 competition results, and 6,783 contests.
Public read endpoints return JSON without a login. Requests are limited to 60 per minute per IP, or 600 per minute with a valid API key sent in the X-API-Key header.

