Fitness & Nutrition API
The Fitness API returns an exercise database as clean JSON.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
The primary exercises endpoint returns exercises with id, name, body part, target, equipment, secondary muscles, instructions and an animated demonstration, and you can filter by body part, equipment or target, pull an exercise_detail and list body parts and equipment. It is built for fitness apps and workout builders that need structured exercise data. One ReefAPI key, one shared credit pool, the standard envelope.
Real request and response JSON
Captured from the indexed primary action, by_bodypart, on .
{
"method": "POST",
"url": "https://api.reefapi.com/fitness/v1/by_bodypart",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"bodypart": "chest",
"limit": 5
}
}{
"ok": true,
"meta": {
"api": "fitness",
"endpoint": "by_bodypart",
"mode": "live",
"latency_ms": 3587.4,
"record_count": 5,
"bytes": 315406,
"cache_hit": false,
"attribution": "Data © wger.de — CC-BY-SA 4.0",
"requests": 6
},
"data": {
"results": [
{
"id": "1964",
"name": "[redacted-name]",
"bodyPart": "chest",
"target": "Chest",
"equipment": "none (bodyweight exercise)",
"secondaryMuscles": [
"Abs",
"Triceps"
],
"instructions": [
"Setup: Place hands wider than shoulder-width apart on the floor.",
"Lower: Descend until your chest nearly touches the floor, keeping your core tight.",
"Push: Drive through your palms to return to the start position."
],
"description": "A push-up variation with a wider hand placement to increase the emphasis on the outer chest muscles and shoulders. Setup: Place hands wider than shoulder-width apart on the floor. Lower: Descend until your chest nearly touches the floor, keeping your core tight. Push: Drive through your palms to return to the start position. Form: Don't let your lower back sag; keep a straight line from head to heels.",
"difficulty": null,
"category": "Chest",
"gifUrl": null,
"imageUrl": null,
"license": "CC-BY-SA 4",
"licenseAuthor": "Anon#2",
"source": "wger.de"
},
{
"id": "57",
"name": "[redacted-name]",
"bodyPart": "chest",
"target": "Shoulders",
"equipment": "none (bodyweight exercise)",
"secondaryMuscles": [
"Glutes",
"Lats",
"Obliquus externus abdominis"
],
"instructions": [
"-Rest your weight on your palms and the balls of your feet, not dissimilar to normal pushup position -Move by stepping with your R palm and L foot, then your L palm and R foot.",
"Basically, walk like a lumbering bear.",
"-Move as fast as you can."
],
"description": "-Rest your weight on your palms and the balls of your feet, not dissimilar to normal pushup position -Move by stepping with your R palm and L foot, then your L palm and R foot. Basically, walk like a lumbering bear. -Move as fast as you can. Measure your reps/sets in either distance (i.e. 40 yards) or time (i.e. 45 seconds) -Works your Pecs, Deltoids, Triceps, Traps, Lats, Abs and Lower Back, Hip Flexors, Quads, Glutes and Calves",
"difficulty": null,
"category": "Chest",
"gifUrl": null,
"imageUrl": null,
"license": "CC-BY-SA 4",
"licenseAuthor": "nate303303",
"source": "wger.de"
},
{
"id": "996",
"name": "[redacted-name]",
"bodyPart": "chest",
"target": "",
"equipment": "none (bodyweight exercise)",
"secondaryMuscles": [],
"instructions": [
"Move one knee toward the center of your body, towards your elbows, keeping the other leg extended.",
"In a quick jumping movement, straighten the bent leg out and pull the other knee toward your body.",
"Keep repeating step 2, alternating legs."
],
"description": "Starting position: Start in the upright push-up position, aka. the high plank position.Hands should be directly under your shoulders.Keep your head in line with your back, facing the floor.Feet should be about hip-width apart. Steps: Move one knee toward the center of your body, towards your elbows, keeping the other leg extended. In a quick jumping movement, straighten the bent leg out and pull the other knee toward your body. Keep repeating step 2, alternating legs. Notes: Throughout the exercise, your back should remain as straight as possible – avoid a hump or a sagging back.",
"difficulty": null,
"category": "Chest",
"gifUrl": null,
"imageUrl": null,
"license": "CC-BY-SA 4",
"licenseAuthor": "",
"source": "wger.de"
}
],
"count": 5,
"bodypart": "chest"
}
}What the Fitness & Nutrition API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| exercises | Browse or search the full exercise library (800+ exercises from wger.de). Filter by name keyword; returns each exercise's name, body part, target muscle, equipment, step-by-step instructions, and animation URL. | Ops teams call exercises to get browse or search the full exercise library (800+ exercises from wger.de). | name, term, limit, offset, language |
| by_bodypart | All exercises targeting a specific body part — e.g. 'chest', 'back', 'shoulders', 'upper arms', 'waist'. Returns name, target muscle, equipment, and instructions for each. | Developer tools call by_bodypart to get all exercises targeting a specific body part. | bodypart, bodyPart, limit, offset, language |
| by_equipment | All exercises that use a specific piece of equipment — e.g. 'barbell', 'dumbbell', 'kettlebell', 'none' (bodyweight). Returns name, target muscle, body part, and instructions. | Validation workflows call by_equipment to get all exercises that use a specific piece of equipment. | equipment, limit, offset, language |
| by_target | All exercises that target a specific muscle — e.g. 'biceps', 'triceps', 'quads', 'glutes', 'lats'. Returns name, equipment, body part, and step-by-step instructions. | Data-quality teams call by_target to get all exercises that target a specific muscle. | target, limit, offset, language |
| exercise_detail | Full detail for a single exercise by its id — name, body part, primary and secondary muscles, equipment, step-by-step instructions, animation URL, and license. | Ops teams call exercise_detail to get full detail for a single exercise by its id. | id, exercise_id, language |
| bodypart_list | List all available body part categories (e.g. chest, back, shoulders, waist, cardio). Use these values with the by_bodypart action. | Developer tools call bodypart_list to list all available body part categories (e.g. | none |
| equipment_list | List all available equipment types (e.g. barbell, dumbbell, kettlebell, none). Use these values with the by_equipment action. | Validation workflows call equipment_list to list all available equipment types (e.g. | none |
| target_list | List all available target muscles (e.g. biceps, triceps, quads, glutes, lats). Use these values with the by_target action. | Data-quality teams call target_list to list all available target muscles (e.g. | none |
Call by_bodypart from your stack
curl -X POST https://api.reefapi.com/fitness/v1/by_bodypart \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"bodypart":"chest","limit":5}'import requests
r = requests.post(
"https://api.reefapi.com/fitness/v1/by_bodypart",
headers={"x-api-key": REEF_KEY},
json={
"bodypart": "chest",
"limit": 5
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/fitness/v1/by_bodypart", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"bodypart": "chest",
"limit": 5
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.fitness.by_bodypart with {"bodypart":"chest","limit":5}.Who uses this API and why
- Fitness apps call by_bodypart or by_equipment to build targeted workouts.
- Trainers use exercise_detail for step-by-step instructions.
- Apps use the demonstration media to show correct form.
Questions developers ask before integrating
What is the Fitness & Nutrition API?
Fitness & Nutrition API is a ReefAPI endpoint group for exercise and nutrition data for foods and workouts. It returns live JSON through POST requests under /fitness/v1.
Is the Fitness & Nutrition API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Fitness & Nutrition calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Fitness & Nutrition login or account?
No login to Fitness & Nutrition is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Fitness & Nutrition data?
The page example is captured from a live exercises call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Fitness & Nutrition API use?
Fitness & Nutrition actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Fitness & Nutrition from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call fitness actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Fitness & Nutrition API a Fitness & Nutrition scraper?
It is the managed alternative to a DIY Fitness & Nutrition scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same exercise and nutrition data for foods and workouts back as clean JSON.
Why does my Fitness & Nutrition scraper keep getting blocked?
Most Fitness & Nutrition scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.