The exercise catalog endpoints are public — no authentication token is required. The API loads all exercises from JSON files (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/jaimegayo/KERNDOCUMENTATION/llms.txt
Use this file to discover all available pages before exploring further.
exercises_gym_id.json and exercises_home_id.json) into memory when the Vercel serverless function starts, so these endpoints respond quickly without any database queries.
GET /exercises/gym
Returns the complete list of gym-based exercises. These are the exercises used to populate routines created via the onboarding quiz and the routine editor in the Android app. Auth required: NoResponse — 200
Returns an array ofExercise objects. See the Exercise model below for the full field reference.
Example
GET /exercises/home
Returns the complete list of home-based exercises that require no gym equipment or only minimal equipment. Used for home workout routines. Auth required: NoResponse — 200
Returns an array ofExercise objects. Same shape as the gym response.
Example
GET /exercises/
Searches both the gym and home exercise lists by ID and returns the matching exercise. The combined list is searched so this endpoint works regardless of which catalog the exercise belongs to. Auth required: NoPath parameters
The numeric ID of the exercise to retrieve.
Response — 200
Returns a singleExercise object.
Errors
| Status | detail | Cause |
|---|---|---|
404 | "Ejercicio no encontrado" | No exercise with this ID exists in either catalog |
Example
Exercise object
All three endpoints share the sameExercise response shape, defined as a Pydantic model in app.py.
Unique numeric ID of the exercise within its JSON file.
Exercise name. This is the canonical identifier used when storing exercises in routines —
exercise_name in the routine_exercises table must match this value exactly for instructions and tips to be retrieved correctly.Primary muscle group targeted by the exercise (e.g.,
"Pecho", "Espalda", "Cuádriceps").Biomechanical movement category (e.g.,
"Empuje horizontal", "Tracción vertical", "Sentadilla", "Bisagra de cadera"). Used by the auto-routine generator to select exercises matching the user’s training plan.Equipment required (e.g.,
"Barra", "Mancuernas", "Peso corporal").Full step-by-step execution instructions shown in the Android workout view.
Array of expert coaching cues for better technique.
Array of frequent errors and how to avoid them.
Optional URL to a demonstration video.
null if no video is available.Exercises are loaded from JSON at startup for performance — there is no per-request database query. The
primary_muscle and movement_pattern fields drive the automatic routine generation logic in POST /users/complete-quiz.