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.
Vue d'ensemble
Cas d'utilisation
- Fitness and workout apps
- Personal training platforms
- Health and wellness dashboards
- Exercise recommendation engines
- Gym management software
Fonctionnalités
Points de terminaison de l'API
List Exercises
Returns a paginated list of exercises. All filter parameters are optional and combinable.
https://requiems.xyz/v1/health/exercises
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| body_part | string |
Facultatif | Filter by body part (e.g. chest, back, upper legs). Use /v1/health/body-parts for valid values. |
| equipment | string |
Facultatif | Filter by equipment type (e.g. barbell, dumbbell, body weight). Use /v1/health/equipment for valid values. |
| muscle | string |
Facultatif | Filter by target or secondary muscle (e.g. biceps, glutes). Use /v1/health/muscles for valid values. |
| search | string |
Facultatif | Full-text search on exercise name. |
| page | integer |
Facultatif | Page number (default: 1) |
| per_page | integer |
Facultatif | Results per page, 1–100 (default: 20) |
Essayez-le
Démo en directRequête
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)
Champs de réponse
| Champ | Type | Description |
|---|---|---|
| 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 |
Exemples de code
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'] }
Réponses d'erreur
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}
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| id | integer |
Requis | Numeric exercise ID |
Essayez-le
Démo en directRequête
Numeric exercise ID
Champs de réponse
| Champ | Type | Description |
|---|---|---|
| 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 |
Exemples de code
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']
Réponses d'erreur
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
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| body_part | string |
Facultatif | Restrict random selection to this body part. |
| equipment | string |
Facultatif | Restrict random selection to this equipment type. |
| muscle | string |
Facultatif | Restrict random selection to exercises targeting this muscle. |
| search | string |
Facultatif | Restrict random selection to exercises matching this search term. |
Essayez-le
Démo en directRequête
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.
Exemples de code
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']
Réponses d'erreur
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
Essayez-le
Démo en directRequête
Champs de réponse
| Champ | Type | Description |
|---|---|---|
| items | array<string> |
Sorted list of all distinct body part names |
| total | integer |
Total number of distinct body parts |
Exemples de code
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
Réponses d'erreur
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
Essayez-le
Démo en directRequête
Champs de réponse
| Champ | Type | Description |
|---|---|---|
| items | array<string> |
Sorted list of all distinct equipment names |
| total | integer |
Total number of distinct equipment types |
Exemples de code
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
Réponses d'erreur
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
Essayez-le
Démo en directRequête
Champs de réponse
| Champ | Type | Description |
|---|---|---|
| items | array<string> |
Sorted list of all distinct muscle names |
| total | integer |
Total number of distinct muscles |
Exemples de code
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
Réponses d'erreur
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
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| ids | array<number> |
Requis | Array of numeric exercise IDs to fetch. Must contain between 1 and 50 items. Each ID must be a positive integer. |
Essayez-le
Démo en directRequête
Array of numeric exercise IDs to fetch. Must contain between 1 and 50 items. Each ID must be a positive integer.
Champs de réponse
| Champ | Type | Description |
|---|---|---|
| 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 |
Exemples de code
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'] }
Réponses d'erreur
The request body is missing or not valid JSON.
The ids array is empty, exceeds 50 items, or contains a non-positive integer.