How do I add an exercise API to a Flutter app?
WorkoutDB is plain REST, so a Flutter app calls it with the http or dio package and an X-API-Key header — no platform channel or native plugin needed. Each exercise response includes video, GIF, and photo URLs you render with video_player or Image.network.
The integration in practice
Because the API is transport-agnostic JSON over HTTPS, Flutter treats it like any other backend. Make a GET to /v1/exercises/search?query=squat with your key in the X-API-Key header, decode the response, and map each item into your model. The envelope is always { data, meta, requestId }, so your parsing code is identical across every endpoint.
For the demonstration clip, feed the returned mp4 URL straight into the video_player package; for a lightweight thumbnail loop, use the GIF URL with Image.network. The media is served over a CDN, so it streams the same on iOS and Android.
- No SDK lock-in — any HTTP client (http, dio, chopper) works.
- Stable slugs and ids let you cache responses and deep-link exercises.
- Switch language per request with ?lang=es|pt|fr for a localized UI.
- GET /v1/meta returns every filterable value in one call to build filter dropdowns.
Related questions
- Is there a Flutter/Dart SDK?
- There is no Dart package, but you do not need one — the API is standard REST/JSON and works with http or dio in a few lines. An OpenAPI 3.1 spec is published if you prefer to generate a Dart client.
- Will the videos play on both iOS and Android?
- Yes. Videos are mp4 (with webm on higher tiers) served over a CDN, which the video_player package plays natively on both platforms.
Build it on WorkoutDB
~873 exercises with demo video, ranked search, and four languages — over a clean REST API. Start free: 5,000 requests/month, no credit card.