Utilities & AI

Fitness & Nutrition API

The Fitness API returns an exercise database as clean JSON.

8 actionsLive JSON1,000 free creditsMCP-ready
Get a free keyOpen in playground

🤖 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.

Live example

Real request and response JSON

Captured from the indexed primary action, by_bodypart, on .

Captured request
{
  "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
  }
}
Captured response
{
  "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"
  }
}
Actions

What the Fitness & Nutrition API does

ActionDescriptionConcrete use caseKey params
exercisesBrowse 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_bodypartAll 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_equipmentAll 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_targetAll 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_detailFull 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_listList 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_listList 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_listList 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
Code samples

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}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.fitness.by_bodypart with {"bodypart":"chest","limit":5}.
Use cases

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.
FAQ

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.

docs / fitness

Fitness & Nutrition

Exercise and nutrition data for foods and workouts.

base /fitness/v18 endpoints
post/fitness/v1/exercises1 credit

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.

ParameterAllowed / rangeDescription
nameoptionalFree-text search term to filter exercises by name.
limit = 20optional1–100Results per page (1-100, default 20). Larger values are clamped to 100.
offset = 0optional0–Pagination offset (skip N results). Page forward with meta.next_offset.
language = 2optionalwger language id for names/instructions (2 = English, 1 = German, 4 = Russian, 5 = Spanish, …). Defaults to English.
Try in playground →
post/fitness/v1/by_bodypart1 credit

All exercises targeting a specific body part — e.g. 'chest', 'back', 'shoulders', 'upper arms', 'waist'. Returns name, target muscle, equipment, and instructions for each.

ParameterAllowed / rangeDescription
bodypartrequiredBody part / category to filter by (e.g. chest, back, shoulders, upper arms, upper legs, lower legs, waist, cardio). Matched by substring; use bodypart_list for the live options.
limit = 20optional1–100Results per page (1-100, default 20). Larger values are clamped to 100.
offset = 0optional0–Pagination offset (skip N results). Page forward with meta.next_offset.
language = 2optionalwger language id for names/instructions (2 = English, 1 = German, 4 = Russian, 5 = Spanish, …). Defaults to English.
Try in playground →
post/fitness/v1/by_equipment1 credit

All exercises that use a specific piece of equipment — e.g. 'barbell', 'dumbbell', 'kettlebell', 'none' (bodyweight). Returns name, target muscle, body part, and instructions.

ParameterAllowed / rangeDescription
equipmentrequiredEquipment name to filter by (e.g. barbell, dumbbell, kettlebell, none). Matched by substring; use equipment_list for the live options.
limit = 20optional1–100Results per page (1-100, default 20). Larger values are clamped to 100.
offset = 0optional0–Pagination offset (skip N results). Page forward with meta.next_offset.
language = 2optionalwger language id for names/instructions (2 = English, 1 = German, 4 = Russian, 5 = Spanish, …). Defaults to English.
Try in playground →
post/fitness/v1/by_target1 credit

All exercises that target a specific muscle — e.g. 'biceps', 'triceps', 'quads', 'glutes', 'lats'. Returns name, equipment, body part, and step-by-step instructions.

ParameterAllowed / rangeDescription
targetrequiredTarget muscle to filter by (e.g. biceps, triceps, quads, glutes). Matched by substring; use target_list for the live options.
limit = 20optional1–100Results per page (1-100, default 20). Larger values are clamped to 100.
offset = 0optional0–Pagination offset (skip N results). Page forward with meta.next_offset.
language = 2optionalwger language id for names/instructions (2 = English, 1 = German, 4 = Russian, 5 = Spanish, …). Defaults to English.
Try in playground →
post/fitness/v1/exercise_detail1 credit

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.

ParameterAllowed / rangeDescription
idrequiredA single wger exercise id (the `id` of a search/filter result).
language = 2optionalwger language id for names/instructions (2 = English, 1 = German, 4 = Russian, 5 = Spanish, …). Defaults to English.
Try in playground →
post/fitness/v1/bodypart_listfree

List all available body part categories (e.g. chest, back, shoulders, waist, cardio). Use these values with the by_bodypart action.

Try in playground →
post/fitness/v1/equipment_listfree

List all available equipment types (e.g. barbell, dumbbell, kettlebell, none). Use these values with the by_equipment action.

Try in playground →
post/fitness/v1/target_listfree

List all available target muscles (e.g. biceps, triceps, quads, glutes, lats). Use these values with the by_target action.

Try in playground →