Fetching latest headlines…
Free exercise data for your fitness app (JSON + images, EN/DE/ES)
NORTH AMERICA
🇺🇸 United StatesJune 29, 2026

Free exercise data for your fitness app (JSON + images, EN/DE/ES)

0 views0 likes0 comments
Originally published byDev.to

For all vibecoders in here! If you've ever started building a fitness app, you hit the same wall I did: where do I get the exercise data? Names, target muscles, equipment, instructions, and — the hard part — consistent images.

I ended up building a curated dataset for this, and I've put a free slice of it on GitHub so you can drop it straight into a prototype.

What's in it

A free, ready-to-use sample — 21 exercises, each with:

  • Two image styles: classic (3D-render look on a transparent background, drops onto any UI) and flat (solid background). Start + peak pose for each.
  • Target muscles, equipment, MET, difficulty, force type, mechanic, tags.
  • Step-by-step instructions in English, German, and Spanish.
  • Delivered as plain JSON + CSV + WebP — no API, no key, no rate limit.

🔗 Repo: https://github.com/sergei-argutin/exercise-dataset
🔍 Browse it: https://sergei-argutin.github.io/exercise-dataset/

Use it in 5 lines

const data = await fetch(
  "https://raw.githubusercontent.com/sergei-argutin/exercise-dataset/main/exercises.json"
).then(r => r.json());

const ex = data.exercises[0];
console.log(ex.name_en, ex.body_part, ex.equipment);   // "Arnold Press" chest dumbbell
console.log(ex.images.classic.peak);                   // images/classic/arnold-press-peak.webp
import json, urllib.request
url = "https://raw.githubusercontent.com/sergei-argutin/exercise-dataset/main/exercises.json"
data = json.load(urllib.request.urlopen(url))
for ex in data["exercises"]:
    print(ex["id"], "", ex["primary_muscles"])

One thing worth checking before you ship: the license

This is the part most people skip. A few popular exercise datasets are genuinely public domain (e.g. free-exercise-db) and you can ship them commercially with a clear conscience. But two traps catch teams:

  1. Commercial APIs with a free tier often restrict redistributing/bundling the data offline — exactly what you do in an app. Read the ToS for "redistribute" and "cache".
  2. Scraped datasets can be "free" while the images inside were never licensed. The data being free ≠ the images being cleared.

So: verify the image license specifically, not just the dataset's. I wrote up the full breakdown here → Can you use a free exercise dataset commercially?

Disclosure

I'm the creator. The dataset above is a free 21-exercise sample under CC BY-NC 4.0 — use it for prototyping and non-commercial projects. There's also a full 400+ exercise version with a commercial license at repdb.co if you end up shipping something that earns money. Either way, the licensing checklist above applies — hopefully it saves you a headache.

Happy building 💪

Comments (0)

Sign in to join the discussion

Be the first to comment!