MuscleWiki API vs wger
wger is a free, AGPL-3.0 workout and nutrition application that you host and run yourself. Its REST API comes with the application rather than being sold as a product of its own.
wger is an application you install, patch and operate; the MuscleWiki API is a managed service you call. On 14 September 2026 the project's own public instance at wger.de served 78 videos and 374 exercise images across 865 exercises, media there contributed by the community. Ours is produced for the catalogue: 7,766 MP4 clips across 1,943 exercises, male and female, front and side. We add 14 languages at parity and commercial terms with support behind them. wger is free and open source, and running the software yourself is something we do not offer at any price.
Sources: wger README: licence, self-hosting and features, wger.de API: exercise count, wger.de API: video count, wger.de API: exercise image count, wger docs: using the APIEvery claim about another vendor on this page was fetched from that vendor’s own public documentation. This one was verified 14 September 2026. Figures change; if you are reading this long after that date, check the linked sources before you rely on it.
Side by side
Every figure in the wger column links to the page we read it on. Where we could not fetch a fact from a public source, there is no row for it.
| Axis | MuscleWiki API | wger |
|---|---|---|
| Cost | Published plans $10 to $199.99 per month; a negotiated Custom plan for anything outside the catalogue | Free: "100% Free & Open Source", AGPL-3.0-or-laterSource: wger README: licence, self-hosting and features |
| Hosting model | Managed by us. There is no infrastructure to run, nothing to upgrade and no CDN to operate | Self-hosted ("basically just a docker compose up -d away"), or their public instance at wger.deSource: wger README: licence, self-hosting and features |
| Exercises in the catalogue | 1,943 (counted from the data we serve, 10 September 2026) | 865 on wger.de, the project's public instance, on 14 September 2026. A self-hosted instance holds whatever you sync or importSource: wger.de API: exercise count |
| Video | 7,766 MP4 clips: 4 for every exercise, male and female, front and side. Every clip carries a matching thumbnail | 78 videos on wger.de on 14 September 2026. Media is contributed by the community rather than produced for the catalogueSources: wger.de API: video count, wger README: licence, self-hosting and features |
| Still images | One thumbnail per video (7,766), plus 15,144 bodymap images (Professional plan or higher) | 374 exercise images on wger.de on 14 September 2026Source: wger.de API: exercise image count |
| Languages | 14 languages at parity: every exercise carries its name in all 14 and returns the same instruction steps in all 14, so no language returns a thinner record than English (non-English needs the Growth plan or higher) | 33 languages are configured in their API, and translation is community work via Weblate, so coverage depends on what volunteers have translatedSources: wger.de API: configured languages, wger README: licence, self-hosting and features |
| Translation coverage | Uniform: every exercise carries its name in all 14 languages and returns the same instruction steps in all 14, so a non-English caller never receives a thinner record than an English one (non-English needs the Growth plan or higher) | 3,323 exercise translation records in total, across 865 exercises and 33 configured languages (14 September 2026)Sources: wger.de API: exercise translation count, wger.de API: exercise count, wger.de API: configured languages |
| Routines and workouts | 32 curated routines and 92 workouts as read-only API resources, with sets, reps and exercise references (Professional plan or higher) | Routines exist and have their own API, but they are user-owned objects that require authentication. It is a routine builder rather than a curated catalogue you can read anonymouslySource: wger docs: using the API |
| Taxonomy depth | 18 equipment categories and 45 primary muscle groups | 8 exercise categories, 12 equipment types and 15 muscles on wger.de (14 September 2026)Sources: wger.de API: exercise categories, wger.de API: equipment list, wger.de API: muscle list |
| Authentication | A single X-API-Key header on every request. Your server can exchange that key for a short-lived media token, so a native player fetches /stream/ URLs with no header and the key never ships inside an app binary | Public endpoints such as the exercise list need no authentication. For user-owned objects, a JWT bearer token (10-minute access, 120-day refresh in the Docker default) or a permanent Authorization: Token … for personal scriptsSource: wger docs: using the API |
| Rate limiting and quotas | 500 a month free (Playground only), then 1,000 at $10 up to 300,000 at $199.99 a month | A few sensitive endpoints are throttled (login 10/min, ingredient list 120/min and similar); "all other endpoints are unthrottled". There is no monthly quotaSource: wger docs: using the API |
| Licence | Commercial licence for API use under our terms; every paid plan includes commercial-use rights | Application code AGPL-3.0-or-later; exercise and ingredient data under Creative Commons per entry; documentation CC-BY-SA-4.0Source: wger README: licence, self-hosting and features |
| Media URLs and caching | Stable, deterministic media URLs. Caching allowance: text metadata up to 30 days, thumbnails 24 hours on-device only, video and bodymaps served no-store | You host the media yourself, or point at wger.de, so the caching policy is yoursSource: wger README: licence, self-hosting and features |
| Support | Commercial support, with priority response on the higher plans | Community support via Discord and the GitHub issue trackerSource: wger README: licence, self-hosting and features |
Sources for our column
- MuscleWiki API pricing: plans, quotas and cost per call
- MuscleWiki API Terms: §8 attribution and branding, caching limits, commercial use
- MuscleWiki API documentation: endpoints, fields and headers
Exercise, video, language and bodymap counts all come from the dataset the API serves. Every figure in the wger column links to the page it came from, in the cell that makes the claim.
Where the MuscleWiki API and wger differ
The handful of differences that actually decide it, and what each one costs whoever picks the other side.
- 78 videos against 7,766
- On 14 September 2026 the project's own public instance at wger.de held 865 exercises with 78 videos and 374 exercise images. Media there is contributed by the community rather than produced for the catalogue, so coverage follows what volunteers uploaded, and a self-hosted instance holds whatever its operator imports. Ours is shot to one specification: 7,766 clips, male and female, front and side.Sources: wger.de API: exercise count, wger.de API: video count, wger.de API: exercise image count, wger README: licence, self-hosting and features
- 33 configured languages, and what is in them
- wger's API lists 33 configured languages, translated by the community through Weblate. On 14 September 2026 their API held 3,323 exercise translation records across 865 exercises and those 33 languages. Both numbers are here; we have not divided one by the other for you. We ship 14 at parity, which is a claim a short list can make and a long one usually cannot: no language returns a thinner record than English.Sources: wger.de API: configured languages, wger.de API: exercise translation count, wger.de API: exercise count, wger README: licence, self-hosting and features
- Free software, and the cost of running it
- wger describes itself as "100% Free & Open Source" under AGPL-3.0-or-later, and standing an instance up is, in their words, "basically just a
docker compose up -daway". The licence really is free. What that command does not cover is the patching, the database, the media storage and whoever answers the page at 3am.Source: wger README: licence, self-hosting and features - Their licence lets you keep the data
- Exercise and ingredient data on wger is Creative Commons licensed per entry and the code is AGPL, so you can fork it, bulk-export it and reshape it without asking anyone. Ours is licensed for use through the API; it is not handed over. If owning the dataset is a hard requirement, nothing further down this page closes that gap.Source: wger README: licence, self-hosting and features
- Routines there are something a user builds
- wger has a routine API, but routines on it are user-owned objects created by whoever is logged in. It is a routine builder. We publish 32 curated routines and 92 workouts as read-only resources with sets, reps and exercise references, so you can ship programmed training without asking users to build it first (Professional plan or higher).Source: wger docs: using the API
- wger is a whole application
- It also does routine building with progression rules, nutrition logging against Open Food Facts, body-weight tracking, native mobile apps and basic gym management. We sell exercise data for you to build on. Only one of those drops into an app you already have.Source: wger README: licence, self-hosting and features
Moving an existing wger integration to us
What actually changes in your code.
- Who this section is for
- Teams calling the public wger.de instance in production. Its unthrottled public endpoints make that easy to start doing and easy to keep doing by accident, and it puts your product on a server run by volunteers for their own project. If you run your own instance, the trade is a different one, and that comparison is above rather than here.Source: wger docs: using the API
- Identifiers
- wger exposes both an integer
idand auuidper exercise. Ours are stable integers starting at 1, but they are our IDs, so you will need a mapping table keyed on exercise name plus equipment, and a human to look at the ambiguous rows.Source: wger.de API: exercise count - Translations
- wger returns translations as separate records you join by language. We take a
langparameter on every data endpoint and return one response per exercise. Where wger had no translation for a language, ours will have one: every exercise carries its name in all 14 and returns the same instruction steps in all 14.Sources: wger.de API: exercise translation count, wger docs: using the API - Authentication and quotas
- Anonymous reads become authenticated reads: a data request needs
X-API-Key, and you get a monthly call quota rather than an unthrottled endpoint. Budget for both.Source: wger docs: using the API
You can try every endpoint in the Playground before you commit, read the documentation, or check what each plan reaches on pricing.
Other comparisons
- MuscleWiki API vs ExerciseDBExerciseDB now trades as AscendAPI. It advertises the largest exercise catalogue of the vendors compared here, and it sells its paid tiers through the RapidAPI marketplace.Sources: AscendAPI docs: ExerciseDB V2 overview, AscendAPI docs: authentication
- MuscleWiki API vs API NinjasAPI Ninjas sells a large catalogue of small, single-purpose APIs on one key. Its Exercises API is a text endpoint: no video, no GIFs and no images.Sources: API Ninjas: pricing page, API Ninjas: Exercises API documentation
- MuscleWiki API vs ExerciseAPI.devExerciseAPI.dev is a hosted exercise catalogue spanning twelve training disciplines, sold direct on daily request quotas, with video demos being added a batch at a time.Sources: ExerciseAPI.dev: catalogue and video-demo counts, plans, caching rule, ExerciseAPI.dev: quotas, per-minute limits and overage billing
- MuscleWiki API vs WorkoutXWorkoutX is a direct REST exercise API built around looping GIF animations, sold on monthly request quotas, with generated workout plans on its higher plans.Sources: WorkoutX: catalogue count, media format, languages and plans, WorkoutX: API reference, response schema, lang parameter, rate limits
- How to choose an exercise APIThe seven axes worth evaluating before you pick any vendor.