MuscleWiki API vs ExerciseAPI.dev
ExerciseAPI.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.
ExerciseAPI.dev advertises "2,199 movements across 12 disciplines", a wider catalogue than our 1,943, and it reaches into yoga, pilates, Olympic lifting and strongman where we do not. The difference is what a row contains: their own documentation says "Most exercises today return videos: []" and that "only a small set of demos have clips so far", and their home page counts 150 exercises with video demos. Ours carry 7,766 MP4 clips: 4 for every exercise, male and female footage from the front and the side. We also serve 14 languages where their published schema documents no language parameter, and curated routines and workouts where their endpoint list has none.
Every 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 ExerciseAPI.dev 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 | ExerciseAPI.dev |
|---|---|---|
| Exercises in the catalogue | 1,943 (counted from the data we serve, 10 September 2026) | "2,199 movements across 12 disciplines"Source: ExerciseAPI.dev: catalogue and video-demo counts, plans, caching rule |
| Exercises that actually carry video | All 1,943 | 150 by the counter on their home page. Their reference adds: "Most exercises today return videos: []" and "only a small set of demos have clips so far"Sources: ExerciseAPI.dev: catalogue and video-demo counts, plans, caching rule, ExerciseAPI.dev: endpoint and response-schema reference |
| Video per exercise | 7,766 MP4 clips: 4 for every exercise, male and female, front and side. Every clip carries a matching thumbnail | One clip where one exists, MP4 at 496x864, mostly 9:16 vertical with some 16:9 landscape. No gender variant and no second camera angle in the schemaSources: ExerciseAPI.dev: endpoint and response-schema reference, ExerciseAPI.dev: catalogue and video-demo counts, plans, caching rule |
| Still images | One thumbnail per video (7,766), plus 15,144 bodymap images highlighting the muscles a movement works (Professional plan or higher) | An images array of relative paths, which the client resolves against a base URL rather than requesting directlySource: ExerciseAPI.dev: endpoint and response-schema reference |
| 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) | No language parameter and no translated field in their published schema or their llms.txt contractSources: ExerciseAPI.dev: published endpoint and schema contract, ExerciseAPI.dev: endpoint and response-schema reference |
| Routines and workouts | 32 curated routines and 92 workouts as read-only API resources, with sets, reps and exercise references (Professional plan or higher) | Their published contract lists seven endpoints: exercises, one exercise, muscles, equipment, categories, stats and health. No routine or workout resourceSource: ExerciseAPI.dev: published endpoint and schema contract |
| Metering model | 500 a month free (Playground only), then 1,000 at $10 up to 300,000 at $199.99 a month | A daily request quota plus a per-minute rate limit on every plan, from 100 a day and 60 a minute upwardSource: ExerciseAPI.dev: quotas, per-minute limits and overage billing |
| What happens at the ceiling | A 429 with Retry-After. There is no overage billing on any plan, and usage alerts at 80%, 90% and 100% of the monthly quota, 80% and 100% on a Custom plan | "Requests past your daily quota are billed at $0.002 each and added to your next Stripe invoice", up to "a safety cap at 10x the daily limit"; the free plan hard-blocks insteadSource: ExerciseAPI.dev: quotas, per-minute limits and overage billing |
| Results per request | Up to 100 on every plan, with full records rather than names | 20 on Free, 50 on Starter, 100 on Pro and Business. Free-tier paging depth is also capped at offset + limit <= 500Source: ExerciseAPI.dev: quotas, per-minute limits and overage billing |
| Caching rights | Stable, deterministic media URLs. Caching allowance: text metadata up to 30 days, thumbnails 24 hours on-device only, video and bodymaps served no-store | Their guidance is a 24-hour local TTL, and their home page adds: "Do not redistribute or re-serve cached data to other users. The cache is per-device, per-installation only"Sources: ExerciseAPI.dev: published endpoint and schema contract, ExerciseAPI.dev: catalogue and video-demo counts, plans, caching rule |
| 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 | An X-API-Key header carrying an exlib_ key; GET /v1/health is the only unauthenticated routeSource: ExerciseAPI.dev: published endpoint and schema contract |
| MCP server for AI agents | First-party MCP server, npx @musclewiki/mcp, which forwards every call to the API using your own key | First-party MCP server, @exerciseapi/mcp-server, which their documentation tells agents to prefer over the REST APISource: ExerciseAPI.dev: published endpoint and schema contract |
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 ExerciseAPI.dev column links to the page it came from, in the cell that makes the claim.
Where the MuscleWiki API and ExerciseAPI.dev differ
The handful of differences that actually decide it, and what each one costs whoever picks the other side.
- More rows, and their docs say what is inside most of them
- They advertise "2,199 movements across 12 disciplines" against our 1,943, so on breadth they are ahead, and a product that needs yoga or Olympic lifting will find it there and not here. On video their own reference is candid: "Most exercises today return
videos: []", and "only a small set of demos have clips so far". Their home-page counter reads 150. Every one of our 1,943 has video, 7,766 clips in all.Sources: ExerciseAPI.dev: catalogue and video-demo counts, plans, caching rule, ExerciseAPI.dev: endpoint and response-schema reference - One clip, one angle, when there is one
- Their video objects carry
url,format,resolutionandaspectRatio, and their notes say most clips are 9:16 vertical with some 16:9 landscape. Ours are shot to one specification: male and female, front and side. That is the difference between showing a movement and letting someone check their own form against it.Sources: ExerciseAPI.dev: endpoint and response-schema reference, ExerciseAPI.dev: published endpoint and schema contract - Their quota is a daily budget with an invoice attached
- Their limits page says "Requests past your daily quota are billed at $0.002 each and added to your next Stripe invoice", and adds "a safety cap at 10x the daily limit". A daily quota also makes one bad Tuesday a billing event rather than a slow month. Ours is a monthly ceiling with no overage: at the limit you get a 429 and
Retry-After, and the number on the invoice is the number on the plan.Source: ExerciseAPI.dev: quotas, per-minute limits and overage billing - No language parameter in their published contract
- Between them, their
llms.txtand their schema reference document every endpoint, response field and error code. Neither carries a language parameter or a translated field. We serve 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).Sources: ExerciseAPI.dev: published endpoint and schema contract, ExerciseAPI.dev: endpoint and response-schema reference - Seven endpoints, none of them a routine
- Their published contract lists exercises, a single exercise, muscles, equipment, categories, stats and health. Programmed training is not in it. We publish 32 curated routines and 92 workouts as read-only resources with sets, reps and exercise references (Professional plan or higher). The difference is shipping a workout against shipping a search box over exercises.Source: ExerciseAPI.dev: published endpoint and schema contract
- Both sides ship an MCP server
- Their documentation advertises
@exerciseapi/mcp-serverand tells agents to prefer it over the REST API, so a first-party MCP server is not something we have to ourselves. Ours,npx @musclewiki/mcp, is a thin pass-through: it calls the API with your own key, so nothing about your plan, your quota or your terms changes when the caller happens to be an agent.Source: ExerciseAPI.dev: published endpoint and schema contract - Why there is no price row on this page
- Same reason as the API Ninjas comparison: this page does not put the two monthly prices side by side. A catalogue where most records return an empty video array and a library of filmed demonstrations are not the same purchase. Their plans are published on their own site; the metering rows in the table compare the two models rather than ranking them.Sources: ExerciseAPI.dev: catalogue and video-demo counts, plans, caching rule, ExerciseAPI.dev: quotas, per-minute limits and overage billing
Moving an existing ExerciseAPI.dev integration to us
What actually changes in your code.
- The media is the migration
- Their records mostly return an empty
videosarray, so whatever fallback your UI shows when there is no clip can come out. Every exercise here has video, and each entry carriesurl,angle,genderandog_image, so the new work is choosing which of the 4 to show rather than handling the case where there are none.Source: ExerciseAPI.dev: endpoint and response-schema reference - Map the fields
primaryMusclesbecomes ourprimary_musclesandequipmentbecomescategory. Theirinstructionsmaps to oursteps;exerciseTips,commonMistakes,safetyInfoandoverviewhave no direct equivalent in our schema.images, which they return as relative paths, becomes an absoluteog_imageon each video entry.Source: ExerciseAPI.dev: endpoint and response-schema reference- Re-plan the quota, not just the key
- The header name is the same, so auth is close to a no-op. The metering is not: a daily quota plus a per-minute limit becomes one monthly ceiling, which is a different capacity plan and a different failure mode. Delete the overage budget line while you are there.Source: ExerciseAPI.dev: quotas, per-minute limits and overage billing
- Add the lang parameter
- Every data endpoint takes
lang, and all 14 languages return the same fields. Their contract has no equivalent, so whatever you built to work around that, a translation service or an English-only UI, has nothing left to do. Non-English needs the Growth plan or higher.Source: ExerciseAPI.dev: published endpoint and schema contract
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 wgerwger 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.Sources: wger README: licence, self-hosting and features, wger docs: using the API
- 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 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.