wger Workout Manager API
Free wger fitness API with no key for public data: exercise database with muscles worked, equipment, categories, images and nutrition information. Tested.
Endpoint tested and returned HTTP 200 on 2026-08-19
What is the wger Workout Manager API?
The wger API is a free, key-free API for the open-source workout manager, providing an exercise database with muscle groups, required equipment, categories, instructional images and a nutrition database.
wger is open-source fitness tracking software, and its public API exposes the underlying exercise and nutrition databases. The exercise records include which muscles are primary and secondary, what equipment is needed, and translations into several languages.
Reading public data needs no authentication at all. Only user-specific features — logging workouts, tracking weight — require a token, which makes the exercise database freely usable as a reference in any fitness app.
Quick facts
- Base URL
https://wger.de/api/v2- Authentication
- Public exercise and nutrition data needs no auth. User data requires a token.
- Rate limit
- No published limit for public reads.
- Pricing
- Free and open source, AGPL licensed. Exercise data is CC-BY-SA.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the wger Workout Manager API
Every request below was executed against the live API on 2026-08-19, and the response shown is the real body it returned — not an illustration.
1. Fetch exercises from the database
GET https://wger.de/api/v2/exercise/?format=json&limit=1
curl 'https://wger.de/api/v2/exercise/?format=json&limit=1'const res = await fetch("https://wger.de/api/v2/exercise/?format=json&limit=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://wger.de/api/v2/exercise/?format=json&limit=1", timeout=20)
res.raise_for_status()
print(res.json()){
"count": 860,
"next": "https://wger.de/api/v2/exercise/?format=json&limit=1&offset=1",
"previous": null,
"results": [
{
"id": 9,
"uuid": "1b020b3a-3732-4c7e-92fd-a0cec90ed69b",
"created": "2023-08-06T10:17:17.422900+02:00",
"last_update": "2026-07-23T12:24:53.482746+02:00",
"category": 10,
"muscles": [
11,
8
],
"muscles_secondary": [
10,
6
],
"equipment": [
10
],
"variation_group": "a30b1f92-7b73-477e-abb0-e91993c5fb05",
"license_author": "deusinvictus"
}
]
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
format | string | Required | Set to `json`; the API defaults to a browsable HTML view. json |
limit / offset | integer | Optional | Pagination controls. 20 |
language | integer | Optional | Language id for translated exercise names. 2 |
category | integer | Optional | Exercise category id. 10 |
muscles | integer | Optional | Filter by primary muscle worked. 4 |
Response fields
countinteger- Total records available.
next / previousstring- Pagination URLs.
results[].idinteger- Exercise identifier.
results[].categoryobject- Exercise category such as Arms or Legs.
results[].muscles / muscles_secondaryarray- Primary and secondary muscles worked.
results[].equipmentarray- Equipment required.
results[].imagesarray- Instructional image URLs where available.
What you can build with the wger Workout Manager API
- Build a workout planner with a real exercise database
- Filter exercises by available equipment or target muscle
- Create a fitness reference or exercise encyclopaedia
- Add nutrition lookup to a health tracking app
Common errors and how to fix them
HTML instead of JSON
The `format=json` parameter was omitted.
Fix: wger serves a browsable API by default; always append ?format=json.
Exercise names missing
Names live in translations, not on the base record.
Fix: Use the exerciseinfo endpoints or specify a language to get translated names.
Empty images array
Not every exercise has illustrations.
Fix: Handle the missing case; image coverage is partial and community-contributed.
wger Workout Manager API — frequently asked questions
Is the wger API free?
Yes, public exercise and nutrition data requires no authentication. Only user-specific features like workout logging need a token.
Why am I getting HTML instead of JSON?
wger serves a browsable HTML API view by default. Append ?format=json to every request.
Does it say which muscles an exercise works?
Yes, each exercise lists primary and secondary muscle groups, plus the equipment required — which is what makes it useful for building workout planners.
Can I self-host it?
Yes, wger is open source under the AGPL. Self-hosting is a good option if you need the workout tracking features rather than just the exercise database.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
BMI Calculator
Calculate your Body Mass Index from height and weight in metric (cm/kg) or imperial (ft-in/lbs) units and see your WHO category with a color-coded badge.
Unit Converter
Convert between units of length, weight, temperature, area, volume, speed, time and data storage instantly, with a swap button and common conversion tables.
wger Workout Manager is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-19; always check the official documentation before relying on this API in production, as terms and limits can change.