# MuscleWiki API

> MuscleWiki returns exercise listings, instructions, and videos as a workflow and API.

MuscleWiki, also called Muscle Wiki, returns exercises with equipment, difficulty, target muscles, instructions, videos, and page links. Search exercises requires a muscle or body area and can filter by equipment, difficulty, and maximum results.

- Page: https://fous.com/tools/musclewiki
- Handle: `@musclewiki`
- Category: [Health](https://fous.com/tools/category/health)
- Source website: https://musclewiki.com
- Last verified: Sep 29, 2026

## Methods

### Search exercises

Operation `search_exercises`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Find MuscleWiki exercises for a muscle in site order, with equipment, difficulty, target muscles, instructions, video and page links. Beginner also includes exercises MuscleWiki labels Novice.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `muscle` | string | yes | `"lower back"` | Muscle or body area, for example "lower back". |
| `equipment` | string | no | `"bodyweight"` | Equipment to use, for example "dumbbells". |
| `difficulty` | string | no | `"any"` | Experience level, for example "beginner". |
| `max_results` | integer | no | `4` | Maximum number of exercises, for example 20. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "muscle"
  ],
  "properties": {
    "muscle": {
      "type": "string",
      "description": "Muscle or body area, for example \"lower back\".",
      "examples": [
        "lower back",
        "biceps",
        "feet"
      ]
    },
    "equipment": {
      "enum": [
        "any",
        "bodyweight",
        "dumbbells",
        "barbell",
        "kettlebells",
        "cables",
        "machine",
        "bands",
        "stretches"
      ],
      "type": "string",
      "default": "any",
      "description": "Equipment to use, for example \"dumbbells\".",
      "examples": [
        "bodyweight",
        "dumbbells",
        "kettlebells"
      ]
    },
    "difficulty": {
      "enum": [
        "any",
        "beginner",
        "intermediate",
        "advanced"
      ],
      "type": "string",
      "default": "any",
      "description": "Experience level, for example \"beginner\".",
      "examples": [
        "any",
        "beginner",
        "intermediate"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of exercises, for example 20.",
      "x-fous-developer": true,
      "examples": [
        4,
        5,
        6
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "muscle": "lower back",
      "equipment": "bodyweight",
      "difficulty": "any",
      "max_results": 4
    },
    {
      "muscle": "biceps",
      "equipment": "dumbbells",
      "difficulty": "beginner",
      "max_results": 5
    },
    {
      "muscle": "feet",
      "equipment": "kettlebells",
      "difficulty": "any",
      "max_results": 5
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `exercises` | array |  |  |
| `exercises[].equipment` | string or null | `"Bodyweight"` |  |
| `exercises[].difficulty` | string or null | `"Beginner"` |  |
| `exercises[].video_link` | string or null | `"https://musclewiki.com/api-next/videos/male-Bodyweight-single-legged-romanian-deadlifts-front.mp4"` |  |
| `exercises[].instructions` | array |  |  |
| `exercises[].exercise_name` | string | `"Single Legged Romanian Deadlifts"` |  |
| `exercises[].target_muscles` | array |  |  |
| `exercises[].exercise_page_link` | string | `"https://musclewiki.com/exercise/single-legged-romanian-deadlifts"` |  |

**Example input**

```json
{
  "muscle": "lower back",
  "equipment": "bodyweight",
  "difficulty": "any",
  "max_results": 4
}
```

**Example output**

```json
{
  "exercises": [
    {
      "equipment": "Bodyweight",
      "difficulty": "Beginner",
      "video_link": "https://musclewiki.com/api-next/videos/male-Bodyweight-single-legged-romanian-deadlifts-front.mp4",
      "instructions": [
        "Stand with your feet shoulder-width apart and knees slightly bent and raise one leg.",
        "Without changing the bend in your knee, bend at your hips, and lower your torso until it's almost parallel to the floor."
      ],
      "exercise_name": "Single Legged Romanian Deadlifts",
      "target_muscles": [
        "Glutes",
        "Gluteus Maximus"
      ],
      "exercise_page_link": "https://musclewiki.com/exercise/single-legged-romanian-deadlifts"
    },
    {
      "equipment": "Bodyweight",
      "difficulty": "Beginner",
      "video_link": "https://musclewiki.com/api-next/videos/male-Bodyweight-good-mornings-front.mp4",
      "instructions": [
        "Stand with your feet a little past shoulder width apart with a slight bend at your knee. Place your hands behind the back of your head.",
        "Keeping your back straight, rotate your hips to bring your shoulders down towards the floor. Stop when your chest is parallel with the floor."
      ],
      "exercise_name": "Good Mornings",
      "target_muscles": [
        "Glutes",
        "Gluteus Maximus"
      ],
      "exercise_page_link": "https://musclewiki.com/exercise/good-mornings"
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@musclewiki",
  "visibility": "public",
  "operation": "search_exercises",
  "version": 1,
  "input": {
    "muscle": "lower back",
    "equipment": "bodyweight",
    "difficulty": "any",
    "max_results": 4
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@musclewiki\",\n  \"visibility\": \"public\",\n  \"operation\": \"search_exercises\",\n  \"version\": 1,\n  \"input\": {\n    \"muscle\": \"lower back\",\n    \"equipment\": \"bodyweight\",\n    \"difficulty\": \"any\",\n    \"max_results\": 4\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@musclewiki",
  "visibility": "public",
  "operation": "search_exercises",
  "version": 1,
  "input": {
    "muscle": "lower back",
    "equipment": "bodyweight",
    "difficulty": "any",
    "max_results": 4
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/musclewiki`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `search_exercises`: Search exercises. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-musclewiki https://api.fous.com/mcp/tools/musclewiki --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Find exercises for a specific muscle or body area
- Filter exercises by equipment and experience level
- Compare exercise instructions and target muscles
- Share exercise videos and page links with clients

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this MuscleWiki tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a MuscleWiki account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from musclewiki.com when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

### What exercises target a specific muscle?

Search exercises returns exercises for the supplied muscle or body area, including target muscles and other exercise details.

### Which exercises use dumbbells?

Search exercises can filter a muscle's exercises by equipment, such as dumbbells.

### What instructions and videos are available for an exercise?

Search exercises returns exercise instructions and video links alongside exercise names and page links.

## Related

- [Wikipedia API](https://fous.com/tools/wikipedia.md): Wikipedia returns article summaries, images, facts, relevant search matches, readable text and daily historical events, plus human-view counts from July 2015 onward.
- [Wiktionary API](https://fous.com/tools/wiktionary.md): A free, multilingual dictionary with word meanings and language information.
- [PubMed API](https://fous.com/tools/pubmed.md): PubMed searches medical and life-science articles by topic and retrieves one article’s abstract and publication details; abstracts and free full-text links may be unavailable.
- [Pexels API](https://fous.com/tools/pexels.md): Pexels offers free stock photos and videos, with searches returning up to 80 results in Pexels search order.
- [MIT OpenCourseWare API](https://fous.com/tools/mit-opencourseware.md): Free MIT course materials open to everyone.
- [Serious Eats API](https://fous.com/tools/serious-eats.md): Serious Eats offers recipes, cooking techniques, and food guides, with available ingredients, directions, timing, ratings, and nutrition; some details may be absent.
- [MedlinePlus API](https://fous.com/tools/medlineplus.md): MedlinePlus provides health information from the U.S. National Library of Medicine, including condition and symptom overviews and explanations of tests with matching pages.
- [UFC API](https://fous.com/tools/ufc.md): UFC provides events, fight cards, locations, start times, completed bout results, and fighter profiles with records, rankings, and statistics; upcoming events are soonest first and past events newest first.
- [All Health tools](https://fous.com/tools/category/health)
