Fitness Exercises
Browse 1,500+ exercises with step-by-step instructions, target muscles, secondary muscles, equipment requirements, and body part filters. Supports full-text search and pagination.
Descripción general
Casos de uso
- Fitness and workout apps
- Personal training platforms
- Health and wellness dashboards
- Exercise recommendation engines
- Gym management software
Funcionalidades
Puntos finales de la API
List Exercises
Returns a paginated list of exercises. All filter parameters are optional and combinable.
https://requiems.xyz/v1/health/exercises
Parámetros
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| body_part | string |
Opcional | Filter by body part (e.g. chest, back, upper legs). Use /v1/health/body-parts for valid values. |
| equipment | string |
Opcional | Filter by equipment type (e.g. barbell, dumbbell, body weight). Use /v1/health/equipment for valid values. |
| muscle | string |
Opcional | Filter by target or secondary muscle (e.g. biceps, glutes). Use /v1/health/muscles for valid values. |
| search | string |
Opcional | Full-text search on exercise name. |
| page | integer |
Opcional | Page number (default: 1) |
| per_page | integer |
Opcional | Results per page, 1–100 (default: 20) |
Pruébalo
Demostración en vivoSolicitud
Filter by body part (e.g. chest, back, upper legs). Use /v1/health/body-parts for valid values.
Filter by equipment type (e.g. barbell, dumbbell, body weight). Use /v1/health/equipment for valid values.
Filter by target or secondary muscle (e.g. biceps, glutes). Use /v1/health/muscles for valid values.
Full-text search on exercise name.
Page number (default: 1)
Results per page, 1–100 (default: 20)
Campos de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| items | array<object> |
Array of exercise objects for the current page |
| items[].id | integer |
Unique exercise identifier |
| items[].name | string |
Exercise name |
| items[].body_parts | array<string> |
Body part categories involved |
| items[].equipment | array<string> |
Equipment required |
| items[].target_muscles | array<string> |
Primary muscles targeted |
| items[].secondary_muscles | array<string> |
Secondary muscles engaged |
| items[].instructions | array<string> |
Ordered step-by-step instructions |
| total | integer |
Total number of exercises matching the filters |
| page | integer |
Current page number |
| per_page | integer |
Number of results per page |
Ejemplos de código
curl "https://requiems.xyz/v1/health/exercises?body_part=chest&equipment=barbell&per_page=10" \
-H "requiems-api-key: YOUR_API_KEY"
import requests
url = "https://requiems.xyz/v1/health/exercises"
headers = {"requiems-api-key": "YOUR_API_KEY"}
params = {"body_part": "chest", "equipment": "barbell", "per_page": 10}
response = requests.get(url, headers=headers, params=params)
data = response.json()
for exercise in data["data"]["items"]:
print(exercise["name"])
const params = new URLSearchParams({ body_part: 'chest', equipment: 'barbell', per_page: 10 });
const response = await fetch(`https://requiems.xyz/v1/health/exercises?${params}`, {
headers: { 'requiems-api-key': 'YOUR_API_KEY' }
});
const { data } = await response.json();
data.items.forEach(e => console.log(e.name));
require 'net/http'
require 'json'
uri = URI('https://requiems.xyz/v1/health/exercises')
uri.query = URI.encode_www_form(body_part: 'chest', equipment: 'barbell', per_page: 10)
request = Net::HTTP::Get.new(uri)
request['requiems-api-key'] = 'YOUR_API_KEY'
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(request) }
data = JSON.parse(response.body)
data['data']['items'].each { |e| puts e['name'] }
Respuestas de error
A query parameter has an invalid value (e.g. per_page out of range).
Unexpected server error.
Exercise by ID
Returns a single exercise by its numeric ID.
https://requiems.xyz/v1/health/exercises/{id}
Parámetros
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| id | integer |
Obligatorio | Numeric exercise ID |
Pruébalo
Demostración en vivoSolicitud
Numeric exercise ID
Campos de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| id | integer |
Unique exercise identifier |
| name | string |
Exercise name |
| body_parts | array<string> |
Body part categories involved |
| equipment | array<string> |
Equipment required |
| target_muscles | array<string> |
Primary muscles targeted |
| secondary_muscles | array<string> |
Secondary muscles engaged |
| instructions | array<string> |
Ordered step-by-step instructions |
Ejemplos de código
curl https://requiems.xyz/v1/health/exercises/1 \
-H "requiems-api-key: YOUR_API_KEY"
import requests
response = requests.get(
"https://requiems.xyz/v1/health/exercises/1",
headers={"requiems-api-key": "YOUR_API_KEY"}
)
print(response.json()["data"]["name"])
const response = await fetch('https://requiems.xyz/v1/health/exercises/1', {
headers: { 'requiems-api-key': 'YOUR_API_KEY' }
});
const { data } = await response.json();
console.log(data.name);
require 'net/http'
require 'json'
uri = URI('https://requiems.xyz/v1/health/exercises/1')
request = Net::HTTP::Get.new(uri)
request['requiems-api-key'] = 'YOUR_API_KEY'
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(request) }
puts JSON.parse(response.body)['data']['name']
Respuestas de error
The id parameter is not a positive integer.
No exercise exists with the given ID.
Unexpected server error.
Random Exercise
Returns a single randomly selected exercise. Accepts the same filter parameters as the list endpoint, so you can get a random chest exercise, a random bodyweight exercise, etc.
https://requiems.xyz/v1/health/exercises/random
Parámetros
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| body_part | string |
Opcional | Restrict random selection to this body part. |
| equipment | string |
Opcional | Restrict random selection to this equipment type. |
| muscle | string |
Opcional | Restrict random selection to exercises targeting this muscle. |
| search | string |
Opcional | Restrict random selection to exercises matching this search term. |
Pruébalo
Demostración en vivoSolicitud
Restrict random selection to this body part.
Restrict random selection to this equipment type.
Restrict random selection to exercises targeting this muscle.
Restrict random selection to exercises matching this search term.
Ejemplos de código
curl "https://requiems.xyz/v1/health/exercises/random?body_part=back" \
-H "requiems-api-key: YOUR_API_KEY"
import requests
response = requests.get(
"https://requiems.xyz/v1/health/exercises/random",
headers={"requiems-api-key": "YOUR_API_KEY"},
params={"body_part": "back"}
)
print(response.json()["data"]["name"])
const response = await fetch(
'https://requiems.xyz/v1/health/exercises/random?body_part=back',
{ headers: { 'requiems-api-key': 'YOUR_API_KEY' } }
);
const { data } = await response.json();
console.log(data.name, data.instructions);
require 'net/http'
require 'json'
uri = URI('https://requiems.xyz/v1/health/exercises/random')
uri.query = URI.encode_www_form(body_part: 'back')
request = Net::HTTP::Get.new(uri)
request['requiems-api-key'] = 'YOUR_API_KEY'
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(request) }
puts JSON.parse(response.body)['data']['name']
Respuestas de error
No exercises match the given filters.
Unexpected server error.
List Body Parts
Returns a sorted list of all distinct body part values present in the dataset. Use these as valid values for the body_part filter.
https://requiems.xyz/v1/health/body-parts
Pruébalo
Demostración en vivoSolicitud
Campos de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| items | array<string> |
Sorted list of all distinct body part names |
| total | integer |
Total number of distinct body parts |
Ejemplos de código
curl https://requiems.xyz/v1/health/body-parts \
-H "requiems-api-key: YOUR_API_KEY"
import requests
response = requests.get(
"https://requiems.xyz/v1/health/body-parts",
headers={"requiems-api-key": "YOUR_API_KEY"}
)
print(response.json()["data"]["items"])
const response = await fetch('https://requiems.xyz/v1/health/body-parts', {
headers: { 'requiems-api-key': 'YOUR_API_KEY' }
});
const { data } = await response.json();
console.log(data.items);
require 'net/http'
require 'json'
uri = URI('https://requiems.xyz/v1/health/body-parts')
request = Net::HTTP::Get.new(uri)
request['requiems-api-key'] = 'YOUR_API_KEY'
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(request) }
puts JSON.parse(response.body)['data']['items'].inspect
Respuestas de error
Unexpected server error.
List Equipment
Returns a sorted list of all distinct equipment types. Use these as valid values for the equipment filter.
https://requiems.xyz/v1/health/equipment
Pruébalo
Demostración en vivoSolicitud
Campos de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| items | array<string> |
Sorted list of all distinct equipment names |
| total | integer |
Total number of distinct equipment types |
Ejemplos de código
curl https://requiems.xyz/v1/health/equipment \
-H "requiems-api-key: YOUR_API_KEY"
import requests
response = requests.get(
"https://requiems.xyz/v1/health/equipment",
headers={"requiems-api-key": "YOUR_API_KEY"}
)
print(response.json()["data"]["items"])
const response = await fetch('https://requiems.xyz/v1/health/equipment', {
headers: { 'requiems-api-key': 'YOUR_API_KEY' }
});
const { data } = await response.json();
console.log(data.items);
require 'net/http'
require 'json'
uri = URI('https://requiems.xyz/v1/health/equipment')
request = Net::HTTP::Get.new(uri)
request['requiems-api-key'] = 'YOUR_API_KEY'
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(request) }
puts JSON.parse(response.body)['data']['items'].inspect
Respuestas de error
Unexpected server error.
List Muscles
Returns a sorted list of all distinct muscle names (combining target and secondary muscles). Use these as valid values for the muscle filter.
https://requiems.xyz/v1/health/muscles
Pruébalo
Demostración en vivoSolicitud
Campos de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| items | array<string> |
Sorted list of all distinct muscle names |
| total | integer |
Total number of distinct muscles |
Ejemplos de código
curl https://requiems.xyz/v1/health/muscles \
-H "requiems-api-key: YOUR_API_KEY"
import requests
response = requests.get(
"https://requiems.xyz/v1/health/muscles",
headers={"requiems-api-key": "YOUR_API_KEY"}
)
print(response.json()["data"]["items"])
const response = await fetch('https://requiems.xyz/v1/health/muscles', {
headers: { 'requiems-api-key': 'YOUR_API_KEY' }
});
const { data } = await response.json();
console.log(data.items);
require 'net/http'
require 'json'
uri = URI('https://requiems.xyz/v1/health/muscles')
request = Net::HTTP::Get.new(uri)
request['requiems-api-key'] = 'YOUR_API_KEY'
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(request) }
puts JSON.parse(response.body)['data']['items'].inspect
Respuestas de error
Unexpected server error.
Batch Get Exercises
Fetches up to 50 exercises by their numeric IDs in a single request. IDs that do not exist are silently skipped. Results are returned in the same order as the input array.
https://requiems.xyz/v1/health/exercises/batch
Parámetros
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| ids | array<number> |
Obligatorio | Array of numeric exercise IDs to fetch. Must contain between 1 and 50 items. Each ID must be a positive integer. |
Pruébalo
Demostración en vivoSolicitud
Array of numeric exercise IDs to fetch. Must contain between 1 and 50 items. Each ID must be a positive integer.
Campos de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| results | array<object> |
Exercises found for the given IDs, in input order. IDs not found are omitted. |
| results[].id | integer |
Unique exercise identifier |
| results[].name | string |
Exercise name |
| results[].body_parts | array<string> |
Body part categories involved |
| results[].equipment | array<string> |
Equipment required |
| results[].target_muscles | array<string> |
Primary muscles targeted |
| results[].secondary_muscles | array<string> |
Secondary muscles engaged |
| results[].instructions | array<string> |
Ordered step-by-step instructions |
| total | integer |
Number of exercises returned |
Ejemplos de código
curl -X POST https://requiems.xyz/v1/health/exercises/batch \
-H "requiems-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ids": [1, 7, 42]}'
import requests
response = requests.post(
"https://requiems.xyz/v1/health/exercises/batch",
headers={"requiems-api-key": "YOUR_API_KEY"},
json={"ids": [1, 7, 42]}
)
for exercise in response.json()["data"]["results"]:
print(exercise["name"])
const response = await fetch('https://requiems.xyz/v1/health/exercises/batch', {
method: 'POST',
headers: {
'requiems-api-key': 'YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ ids: [1, 7, 42] })
});
const { data } = await response.json();
data.results.forEach(e => console.log(e.name));
require 'net/http'
require 'json'
uri = URI('https://requiems.xyz/v1/health/exercises/batch')
request = Net::HTTP::Post.new(uri)
request['requiems-api-key'] = 'YOUR_API_KEY'
request['Content-Type'] = 'application/json'
request.body = { ids: [1, 7, 42] }.to_json
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(request) }
JSON.parse(response.body)['data']['results'].each { |e| puts e['name'] }
Respuestas de error
The request body is missing or not valid JSON.
The ids array is empty, exceeds 50 items, or contains a non-positive integer.