Complete Exercise Database
With Video Demonstrations
Access 1,900+ exercises with 7,500+ video demonstrations, detailed instructions in 14 languages, and comprehensive filtering across 45 muscle groups. Perfect for fitness apps, workout builders, and health platforms.
Experience the Data
See exactly what you get. This component fetches live data from our production API — exercises with video demos, structured workouts with prescriptions, and full training routines.
Fetching exercise data...
Simple, Transparent Pricing
Choose the perfect plan for your application. Start free, scale as you grow. All plans include access to our complete exercise database.
Custom
Everything in ENTERPRISE, plus:
Custom-built for teams shipping at scale. We'll tailor a plan around what you actually need — pick from options like:
- Custom API limits
- Bodymap images
- Dedicated support
Options vary by agreement — we'll scope the right mix with you.
Commercial use included: All paid plans include full commercial use rights. Build and ship products, SaaS apps, and client projects without additional licensing fees.
API Limits: All plans include a monthly API call quota. Monthly plans reset on your billing anniversary; annual plans and the free plan reset on the 1st of each calendar month. You'll receive email alerts at 80%, 90% and 100% usage (Custom plans: 80% and 100%). Requests beyond your limit will return a 429 error until the next reset.
Choose monthly billing or pay upfront annually and save 25%.
Everything You Need
A comprehensive fitness API designed for developers building workout applications, fitness platforms, and health tools.
Video Demonstrations
Every exercise includes high-quality video demonstrations from multiple angles (front and side views) for both male and female models.
Advanced Filtering
Filter exercises by muscle group, equipment category, force type, experience level, and more. Search by name with flexible matching.
Fast & Reliable
Built with FastAPI and optimized for performance. In-memory caching ensures lightning-fast response times for all queries.
RESTful Design
Clean, intuitive REST API with comprehensive documentation. Easy integration with any programming language or framework.
Production Ready
Enterprise-grade API with health monitoring, CORS support, comprehensive error handling, and 99.9% uptime. Battle-tested and trusted by developers.
Flexible Responses
Three response levels (minimal, standard, detailed) to optimize bandwidth. Paginated results with customizable limits.
14 Languages
Serve exercise names, instructions, muscles, and categories in 14 languages — from English and Spanish to Japanese and Arabic — with a single lang parameter. Media URLs stay identical.
Routines & Workouts
Structured training programs with ready-made workouts, exercise prescriptions (sets, reps, duration), and difficulty levels. Available on PROFESSIONAL and ENTERPRISE plans.
Bodymap Images
Highlighted muscle diagrams for every exercise, routine, and workout — front and back views, light and dark themes, male and female variants.
Easy Integration
Get started in minutes with your favorite programming language. Simple REST API with comprehensive documentation.
1import requests
2
3# Get your API key from https://api.musclewiki.com
4url = "https://api.musclewiki.com/exercises"
5
6headers = {
7 "X-API-Key": "YOUR_API_KEY"
8}
9
10# Get exercises for biceps with dumbbell
11params = {
12 "muscles": "biceps",
13 "category": "dumbbell",
14 "limit": 10
15}
16
17response = requests.get(url, headers=headers, params=params)
18exercises = response.json()
19
20for exercise in exercises['exercises']:
21 print(f"{exercise['name']} - {exercise['difficulty']}")Connect it to your AI assistant
One command wires all 1,900+ exercises into Claude Code, Claude Desktop, Cursor, and any MCP-compatible client — then you ask for workouts in plain language. Every call runs on your own API key.
--env MUSCLEWIKI_API_KEY=mw_your_key \
-- npx -y @musclewiki/mcp
Your API key stays on your machine — it's never sent to the AI model or a hosted proxy.
Built For Developers
From fitness apps to educational platforms, the MuscleWiki API powers a wide range of health and wellness applications.
Fitness Apps
Build comprehensive workout applications with exercise libraries and video demonstrations.
Educational Platforms
Create learning resources for fitness education and proper exercise form instruction.
Gym Management
Enhance gym software with exercise databases and workout program templates.
Health & Wellness
Integrate exercise data into health platforms and wellness applications.
Ready to Start Building?
Get instant access to the complete exercise database. No credit card required.
Get Started FreeFrequently Asked Questions
Everything you need to know about the MuscleWiki API
Yes — commercial use is the intended use case, and every paid plan includes it at no extra licensing cost. You can build and ship fitness apps, SaaS products, client work and internal tools on it. The licence covers using the data inside your own application or service, for fitness, health and workout-related purposes. What it does not cover is passing the data on: reselling it, redistributing it, exposing it through your own API, or building a competing dataset out of it.
The free BASIC plan gives you 500 API calls a month through the interactive Playground on this site, so you can try the exercise, search, filtering, routine and workout endpoints against real responses before writing any code. No credit card is required and no card is stored. You can create an API key on this plan, but it is accepted only from the Playground and refused from your own application, so calling the API from your own code means moving to the TESTING plan ($10 per month) or higher.
BASIC is free and reaches the API only through the Playground on this site: 500 calls a month, and a key that the Playground accepts but your own application cannot use. TESTING costs $10 per month, includes 1,000 calls, and unlocks direct API access with your own key so your application can call the API itself. TESTING covers exercises, search, filtering and videos in English; routines, workouts, bodymap images and non-English languages need a higher plan.
Requests past your monthly quota return HTTP 429. The JSON body carries a message and an upgrade URL, plus the timestamp your quota resets when that is known, and a matching Retry-After header so a client can back off correctly instead of retrying in a loop. You are never charged for calls beyond your plan — there is no overage billing. Before you get there, usage-alert emails go out at 80%, 90% and 100% of your quota on the self-serve plans — custom plans get 80% and 100% — and your dashboard shows live usage against the limit. Upgrading raises the limit immediately.
Yes, all three, from your dashboard. Changing plan in either direction goes through a fresh checkout and takes effect as soon as that completes — a downgrade's smaller quota and narrower endpoint access apply immediately, not at your next renewal — and it applies to the API key you already have, so the key never changes and nothing needs redeploying. There is no automatic proration or credit: the new plan is charged in full at checkout while the old subscription runs out the period you already paid for, so switch close to your renewal date if the timing matters. Cancelling is scheduled rather than immediate: you keep your paid plan, its quota and its endpoints until the end of the period you have already paid for, you are not charged again, and the account then moves to the free plan. A monthly plan has no minimum term and no cancellation fee; an annual plan is a twelve-month commitment charged upfront, so cancelling it stops the renewal rather than refunding the year. Custom plans are the exception — those terms are whatever we agreed with you.
The API serves exercise, routine and workout text in 14 languages: English, Spanish, Portuguese, French, German, Italian, Polish, Russian, Turkish, Arabic, Persian, Hindi, Japanese and Chinese. Add a lang parameter — lang=pt-br, for example — to any data endpoint and you get translated names, instructions, muscles and categories back, while video and image URLs stay identical across languages. English is included on every plan; the other thirteen are available on the GROWTH plan and above, and to everyone in the free Playground.
We use API key authentication with the X-API-Key header. There is no OAuth flow — one header on one HTTPS request is the whole handshake for every data endpoint. The one exception is media: a native client can call POST /media/token to exchange a permanent key for a short-lived, media-only token, so the permanent key never ships inside an app binary. You can generate and manage keys from your dashboard, and each key can be revoked individually, so a leaked key can be cut off without disturbing your other integrations.
Yes. Your backend calls POST /media/token to exchange its permanent API key for a short-lived, media-only token, then hands your app a plain video URL with the token in the query string — so AVPlayer and ExoPlayer need no custom headers and your permanent key never reaches the device. Tokens expire after 15 minutes by default, work only on media endpoints (never on data endpoints), and stop working immediately if the key behind them is revoked. Treat the resulting URL as a credential for as long as it lives: anyone who obtains it can stream media against your quota until it expires, so keep it out of your own logs, analytics and crash reports, and do not put it in a shared cache — we redact it from ours. Media fetched with a token meters against your key's quota exactly as a keyed request does.
Yes. A transparent server-side proxy that holds your API key and passes our responses straight through to your app is permitted — useful if you'd rather not adopt media tokens. Two conditions: video is never written to disk or to a shared/CDN cache on your side, and you pass our response headers through unchanged (we send Cache-Control: no-store on video deliberately). What your edge may hold is exactly what the headers allow: exercise text and metadata for up to 30 days, and nothing else. Thumbnails are sent private, so they may be cached in the end user's own client for 24 hours but not at a shared edge; bodymap images are sent no-store and may not be cached at all; video is never stored anywhere on your side. Note that every /stream request counts as one API call, including each range request your player issues.
Data is served from a single dataset the API loads at startup, so when it changes, every plan sees the new data at the same moment — there is nothing to pull, no migration to run and no extra charge. The API is also unversioned: there is no /v1 prefix in any URL and no dated release to pin, so your integration keeps calling the same endpoints as the data grows. We publish notable changes in the changelog. We do not publish an update schedule, so if your planning depends on one, ask us rather than inferring it from this page.