The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the ExerciseBank listing page.
ExerciseBank is an exercise library for developers of fitness, coaching, physiotherapy and AI-trainer apps: 1,492 exercises filmed with real people in one studio, each with a looping video clip, a start/end still, a hand-checked classification (muscles, equipment, movement pattern, difficulty, loaded joints, impact), coaching cues, English and French, and a ranked map of which exercises can replace which. One REST API, JSON, a free sandbox key with no card.
This repository is working code for it.
| Folder | What it shows |
|---|---|
packages/exercisebank/ | The official JS/TS client, on npm as exercisebank: search, detail, substitutes, signed media, catalogue sync |
packages/exercisebank-mcp/ | An MCP server, on npm as exercisebank-mcp: Claude, Cursor and other agents search the catalogue directly |
node/ | Search, substitutes and signed media in 25 lines, no dependencies; a daily catalogue sync with ETag |
python/ | The same as a small requests client |
ai-workout-generator/ | Claude builds a workout from real exercises through tool calls; your server attaches the videos |
players/ | Playing a signed clip on the web, React Native, Swift and Kotlin |
openapi.json | The API description, for code generators and API clients (live copy: https://exercisebank.net/openapi.json) |
https://exercisebank.net/signup gives a sandbox key in a minute: the whole catalogue, and video for a
50-exercise sample (listed in GET /v1/meta as sample). The examples read it from EB_KEY.
media there says which assets
an exercise has ({ "mp4": true, "still": true }).POST /v1/media/urls, for a named person: header
X-End-User: <opaque stable id>, a hash of your own user id. Ask for what the screen shows.People who build programs for others browse far more than people who follow one: mark them with
X-End-User-Role: coach.
GET /v1/exercises/:id/substitutes answers with ranked replacements and the reason for each.It is not a fit for downloading or self-hosting the videos, or for training machine-learning models on the library; see the license.
POST /v1/feedback (docs)The example code is MIT licensed. The library itself is licensed through a plan.