Comienza a construir tu proyecto usando la API MuscleLib
URL base
Todos los endpoints utilizan la URL base. La URL base de MuscleLib API es:
https://libapi.vercel.app/api
Primeros pasos
Todos los ejercicios
Obtiene una lista de todos los ejercicios disponibles en la base de datos. Este endpoint admite varios parámetros de consulta para filtros y paginación.
https://libapi.vercel.app/api/exercises
Ejemplos de respuesta
RESPONSE SCHEMA: application/json
-
type: array
-
items: object
- _id: string
- name: string (localized by
lang) - force: string (localized by
lang) - level: string (localized by
lang) - mechanic: string (localized by
lang) - equipment: string (localized by
lang) - primaryMuscles: array (items: string, localized by
lang) - secondaryMuscles: array (items: string, localized by
lang) - instructions: array (items: string, localized by
lang) - category: string (localized by
lang) - images: array (items: string)
- id: string
-
items: object
RESPONSE SCHEMA: application/json
-
type: object
-
properties:
- message: string
- error: string
-
properties:
{
"_id": "677471831533c77a3a55b2e0",
"name": "Abdominal 3/4",
"force": "tirar",
"level": "principiante",
"mechanic": "compuesto",
"equipment": "peso corporal",
"primaryMuscles": [
"abdominales"
],
"secondaryMuscles": [],
"instructions": [
"Acuéstese en el suelo y asegure los pies."
],
"category": "fuerza",
"images": [
"3_4_Sit-Up/0.jpg",
"3_4_Sit-Up/1.jpg"
],
"id": "3_4_Sit-Up"
}
{
"message": "Error al obtener los ejercicios.",
"error": "Error al obtener los ejercicios."
}
Idioma
Idioma de la respuesta. El valor predeterminado es en. Valores admitidos: en, pt, es. Si se omite, la API puede utilizar el encabezado Accept-Language.
Ejemplo de solicitud:
https://libapi.vercel.app/api/exercises?lang=es
Ejemplos de respuesta
RESPONSE SCHEMA: application/json
-
type: array
-
items: object
- _id: string
- name: string (localized by
lang) - force: string (localized by
lang) - level: string (localized by
lang) - mechanic: string (localized by
lang) - equipment: string (localized by
lang) - primaryMuscles: array (items: string, localized by
lang) - secondaryMuscles: array (items: string, localized by
lang) - instructions: array (items: string, localized by
lang) - category: string (localized by
lang) - images: array (items: string)
- id: string
-
items: object
RESPONSE SCHEMA: application/json
-
type: object
-
properties:
- message: string
-
properties:
[
{
"_id": "677471841533c77a3a55b2e6",
"name": "Molino avanzado con pesa rusa",
"force": "empuje",
"level": "intermedio",
"mechanic": "aislamiento",
"equipment": "pesas rusas",
"primaryMuscles": [
"abdominales"
],
"secondaryMuscles": [
"glúteos",
"isquiotibiales",
"hombros"
],
"instructions": [
"Limpie y presione una pesa rusa por encima de la cabeza con un brazo."
],
"category": "fuerza",
"images": [
"Advanced_Kettlebell_Windmill/0.jpg",
"Advanced_Kettlebell_Windmill/1.jpg"
],
"id": "Advanced_Kettlebell_Windmill"
}
]
{
"message": "Idioma no válido. Use 'en', 'pt' o 'es'."
}
Campos
Lista de campos separados por comas que se devolverán. Ej.: (name,instructions).
Ejemplo de solicitud:
https://libapi.vercel.app/api/exercises?fields=instructions
Ejemplos de respuesta
RESPONSE SCHEMA: application/json
-
type: object
-
items: object
- _id: string
- name: string (localized by
lang) - instructions: array (items: string, localized by
lang)
-
items: object
RESPONSE SCHEMA: application/json
-
type: object
-
properties:
- message: string
-
properties:
{
"_id": "677471841533c77a3a55b2e9",
"name": "Curl de Martillo Alternado",
"instructions": [
"Póngase de pie con el torso erguido y una mancuerna en cada mano.",
"Las palmas de las manos deben estar orientadas hacia el torso."
]
}
{
"message": "El/los parámetro(s) de campo(s) no puede(n) estar vacío(s). Los campos válidos son: force, level, mechanic, equipment, primaryMuscles, secondaryMuscles, instructions, category, images, name."
}
Página
El número de página debe ser un entero ≥ 1. El valor predeterminado es 1.
Ejemplo de solicitud:
https://libapi.vercel.app/api/exercises?page=10
Ejemplos de respuesta
RESPONSE SCHEMA: application/json
-
type: array
-
items: object
- _id: string
- name: string (localized by
lang) - force: string (localized by
lang) - level: string (localized by
lang) - mechanic: string (localized by
lang) - equipment: string (localized by
lang) - primaryMuscles: array (items: sstring)
- secondaryMuscles: array (items: object - details not specified)
- instructions: array (items: string, localized by
lang) - category: string (localized by
lang) - images: array (items: string)
- id: string
-
items: object
RESPONSE SCHEMA: application/json
-
type: obeject
-
properties:
- message: string
-
properties:
{
"_id": "677471841533c77a3a55b4d4",
"name": "Clean con kettlebell a una mano y palma abierta",
"force": "tirar",
"level": "intermedio",
"mechanic": "compuesto",
"equipment": "pesas rusas",
"primaryMuscles": [
"isquiotibiales"
],
"secondaryMuscles": [
"antebrazos",
"glúteos",
"zona lumbar",
"cuádriceps",
"hombros"
],
"instructions": [
"Coloque una pesa rusa entre los pies."
],
"category": "fuerza",
"images": [
"One-Arm_Open_Palm_Kettlebell_Clean/0.jpg",
"One-Arm_Open_Palm_Kettlebell_Clean/1.jpg"
],
"id": "One-Arm_Open_Palm_Kettlebell_Clean",
"__v": 0
}
{
"message": "El parámetro 'page' no es válido. use un valor mayor o igual a 0."
}
Límite
Número de elementos por página. Debe ser un entero ≥ 1. El valor predeterminado es 10.
Ejemplo de solicitud:
https://libapi.vercel.app/api/exercises?limit=5
Ejemplos de respuesta
RESPONSE SCHEMA: application/json
-
type: array
-
items: object
- _id: string
- name: string (localized by
lang) - force: string (localized by
lang) - level: string (localized by
lang) - mechanic: string (localized by
lang) - equipment: string (localized by
lang) - primaryMuscles: array
- secondaryMuscles: array
- instructions: array
- category: string (localized by
lang) - images: array
- id: string
-
items: object
RESPONSE SCHEMA: application/json
-
type: object
-
properties:
- message: string
-
properties:
[
{
"_id": "677471841533c77a3a55b4c1",
"name": "Remo inclinado con barra larga a dos brazos",
"force": "tirar"
}
]
{
"message": "El parámetro 'limit' debe ser mayor que 0"
}
Filtros dinámicos
Aplica filtros según los atributos de los ejercicios. Ejemplo: (level=expert&force=push&primaryMuscles=chest).
Ejemplo de solicitud:
https://libapi.vercel.app/api/exercises?level=expert&force=push&primaryMuscles=chest
Ejemplos de respuesta
RESPONSE SCHEMA: application/json
-
type: array
-
items: object
- _id: string
- name: string (localized by
lang) - force: string (localized by
lang) - level: string (localized by
lang) - mechanic: string (localized by
lang) - equipment: string (localized by
lang) - primaryMuscles: array (items: string, localized by
lang) - secondaryMuscles: array (items: object - details not specified)
- instructions: array (items: string, localized by
lang) - category: string (localized by
lang) - images: array (items: string)
- id: string
-
items: object
RESPONSE SCHEMA: application/json
-
type: object
-
properties:
- message: string
-
properties:
[
{
"_id": "677471831533c77a3a55b4ff",
"name": "Flexiones pliométricas con pesa rusa",
"force": "empuje",
"level": "experto",
"mechanic": "compuesto",
"equipment": "pesas rusas",
"primaryMuscles": [
"pecho"
],
"secondaryMuscles": [
"hombros",
"tríceps"
],
"instructions": [
"Coloque una pesa rusa en el suelo y adopte la posición de flexión."
],
"category": "fuerza",
"images": [
"Plyo_Kettlebell_Pushups/0.jpg",
"Plyo_Kettlebell_Pushups/1.jpg"
],
"id": "Plyo_Kettlebell_Pushups",
"__v": 0
}
]
{
"message": "No se encontraron ejercicios."
}
Búsqueda
Este endpoint permite buscar ejercicios en la base de datos de MuscleLib API. Admite varios parámetros para filtrar y paginar los resultados.
Ejemplo de solicitud:
https://libapi.vercel.app/api/exercises/search?query=push
Ejemplos de respuesta
RESPONSE SCHEMA: application/json
- type: object
- exercises: array (items: object)
RESPONSE SCHEMA: application/json
- type: object
- properties: object
- message: string
- properties: object
{
"exercises": [
{
"_id": "677471831533c77a3a55b2e0",
"name": "Abdominal 3/4",
"force": "tirar",
"level": "principiante",
"mechanic": "compuesto",
"equipment": "peso corporal",
"primaryMuscles": [
"abdominales"
],
"secondaryMuscles": [],
"instructions": [
"Acuéstese en el suelo y asegure los pies."
],
"category": "fuerza",
"images": [
"3_4_Sit-Up/0.jpg",
"3_4_Sit-Up/1.jpg"
],
"id": "3_4_Sit-Up"
}
]
}{
"message": "Por favor, introduzca un término de búsqueda."
}Obtener imágenes de ejercicios
Este endpoint permite obtener las imágenes asociadas a los ejercicios de MuscleLib API. Cada ejercicio tiene sus imágenes almacenadas en un directorio específico.
https://libapi.vercel.app/api/exercises/Stiff-Legged_Barbell_Deadlift/0.jpg
Ejemplos de respuesta
RESPONSE SCHEMA: image/jpeg
RESPONSE SCHEMA: application/json
-
type: object
-
properties:
- message: string
-
availableOptions: array
- items: string
-
properties:
{
"message": "El $exerciseName proporcionado es incorrecto o no existe en la base de datos. Pruebe:",
"availableOptions": [
"Stiff-Legged_Barbell_Deadlift"
]
}
Estructura de las imágenes
Las imágenes de los ejercicios están organizadas en carpetas, donde cada carpeta corresponde a un ejercicio. Dentro de cada carpeta hay dos imágenes llamadas 0.jpg y 1.jpg.
Por ejemplo:
- Rutas de imágenes para el ejercicio "3/4 Sit-Up":
-
0.jpg
1.jpghttps://libapi.vercel.app/api/exercises/3_4_Sit-Up/0.jpghttps://libapi.vercel.app/api/exercises/3_4_Sit-Up/1.jpg - Rutas de imágenes para el ejercicio "Stiff-Legged_Barbell_Deadlift":
-
0.jpg
1.jpghttps://libapi.vercel.app/api/exercises/Stiff-Legged_Barbell_Deadlift/0.jpghttps://libapi.vercel.app/api/exercises/Stiff-Legged_Barbell_Deadlift/1.jpg