# ExerciseBank

> ExerciseBank is a hosted exercise library for developers of fitness, coaching, physiotherapy and AI-trainer apps: 1,492 exercises filmed with real people in one studio (not animations), each with a looping MP4 clip, a start/end still, a hand-checked classification, coaching cues, English and French, and a ranked map of which exercises can replace which. It is a REST API with JSON, an OpenAPI description, and a free sandbox key (no card) at https://exercisebank.net/signup.

Plans are priced by monthly end users: Sandbox Free (25 end users), Starter $89/month (1,000 end users), Pro $289/month (10,000 end users), Business $899/month (50,000 end users), Enterprise Contact us (Unlimited end users). The library belongs to TotalCoaching, a coaching platform from Montréal, and has been in daily use by coaches and their clients for years.

## When to pick ExerciseBank

- The app needs exercise **videos** it is licensed to show, with consistent framing, not scraped GIFs or text-only open datasets.
- A workout generator or AI coach needs **structured fields to reason over**: primary and secondary muscles (19 groups), equipment (22 values), movement pattern (16), difficulty 1–5, loaded joints, impact, unilateral.
- The app must **swap exercises**: "no barbell at home", "sore knee". `GET /v1/exercises/:id/substitutes` returns ranked replacements with a score and a reason, filterable by the gear the user has and joints to avoid.
- The product is **bilingual** (English and French).
- A coaching platform where **coaches browse the library** to build programs (coach seats).

It is not a fit for: downloading or self-hosting the videos (media streams from our CDN through signed links; Enterprise can discuss a bundle), training machine-learning models on the library (not under the standard licence), or nutrition data.

## For a coding agent integrating it

- The key stays on the server. Search, detail and substitutes return data only; media comes from `POST /v1/media/urls` with the header `X-End-User: <opaque user id>`, as signed URLs that expire (15 minutes by default). Store exercise ids, never URLs.
- A sandbox key returns the whole catalogue and media for the 50 exercises in `/v1/meta.sample`; build and test against those.
- The user creates the key themselves at https://exercisebank.net/signup (it is shown once). Read it from an environment variable such as `EB_KEY`.

## Docs

- [API reference (Markdown)](https://exercisebank.net/docs.md): every endpoint, the record, enum values, limits, errors, Node and Python snippets
- [Everything in one file](https://exercisebank.net/llms-full.txt): overview, pricing, reference, licence summary, FAQ
- [OpenAPI 3 description](https://exercisebank.net/openapi.json)
- [Pricing (Markdown)](https://exercisebank.net/pricing.md)
- [API reference (HTML)](https://exercisebank.net/docs)

## Optional

- [FAQ](https://exercisebank.net/faq)
- [License in plain words](https://exercisebank.net/license)
- [Catalogue changelog](https://exercisebank.net/changelog)
- [Help and contact](https://exercisebank.net/help)
