exercises
GetExercisesByMuscles
Filter exercises by muscles with cursor-based pagination.
GET
https://edb-with-gifs-and-images-by-ascendapi.p.rapidapi.com
/
api
/
v1
/
exercises
/
muscles
GetExercisesByMuscles
curl --request GET \
--url https://edb-with-gifs-and-images-by-ascendapi.p.rapidapi.com/api/v1/exercises/muscles \
--header 'X-RapidAPI-Key: <api-key>'import requests
url = "https://edb-with-gifs-and-images-by-ascendapi.p.rapidapi.com/api/v1/exercises/muscles"
headers = {"X-RapidAPI-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-RapidAPI-Key': '<api-key>'}};
fetch('https://edb-with-gifs-and-images-by-ascendapi.p.rapidapi.com/api/v1/exercises/muscles', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://edb-with-gifs-and-images-by-ascendapi.p.rapidapi.com/api/v1/exercises/muscles",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-RapidAPI-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://edb-with-gifs-and-images-by-ascendapi.p.rapidapi.com/api/v1/exercises/muscles"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-RapidAPI-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://edb-with-gifs-and-images-by-ascendapi.p.rapidapi.com/api/v1/exercises/muscles")
.header("X-RapidAPI-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://edb-with-gifs-and-images-by-ascendapi.p.rapidapi.com/api/v1/exercises/muscles")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-RapidAPI-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"meta": {
"total": 2289,
"hasNextPage": true,
"hasPreviousPage": false,
"nextCursor": "<string>",
"previousCursor": "<string>"
},
"data": [
{
"exerciseId": "edb_T5uXtLj",
"name": "Bench Press",
"equipments": [
"Barbell"
],
"bodyParts": [
"Chest"
],
"exerciseTypes": [
"strength"
],
"difficulty": "intermediate",
"targetMuscles": [
"pectorals"
],
"secondaryMuscles": [
"triceps",
"shoulders"
],
"imageUrl": ""
}
]
}{
"error": {
"code": "BAD_REQUEST",
"docs": "https://docs.exercisedb.dev/errors/code/BAD_REQUEST",
"message": "<string>",
"requestId": "req_12345"
}
}{
"error": {
"code": "UNAUTHORIZED",
"docs": "https://docs.exercisedb.dev/errors/code/UNAUTHORIZED",
"message": "<string>",
"requestId": "req_12345"
}
}{
"error": {
"code": "FORBIDDEN",
"docs": "https://docs.exercisedb.dev/errors/code/FORBIDDEN",
"message": "<string>",
"requestId": "req_12345"
}
}{
"error": {
"code": "NOT_FOUND",
"docs": "https://docs.exercisedb.dev/errors/code/NOT_FOUND",
"message": "<string>",
"requestId": "req_12345"
}
}{
"error": {
"code": "METHOD_NOT_ALLOWED",
"docs": "https://docs.exercisedb.dev/errors/code/METHOD_NOT_ALLOWED",
"message": "<string>",
"requestId": "req_12345"
}
}{
"error": {
"code": "CONFLICT",
"docs": "https://docs.exercisedb.dev/errors/code/CONFLICT",
"message": "<string>",
"requestId": "req_12345"
}
}{
"error": {
"code": "PRECONDITION_FAILED",
"docs": "https://docs.exercisedb.dev/errors/code/PRECONDITION_FAILED",
"message": "<string>",
"requestId": "req_12345"
}
}{
"error": {
"code": "TOO_MANY_REQUESTS",
"docs": "https://docs.exercisedb.dev/errors/code/TOO_MANY_REQUESTS",
"message": "<string>",
"requestId": "req_12345"
}
}{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"docs": "https://docs.exercisedb.dev/errors/code/INTERNAL_SERVER_ERROR",
"message": "<string>",
"requestId": "req_12345"
}
}Authorizations
Enter your RapidAPI key in the X-RapidAPI-Key header.
Query Parameters
Filter exercises by primary target muscles. Use comma-separated values for multiple muscles.
Example:
"pectorals,shoulders"
Filter exercises by secondary muscles. Use comma-separated values for multiple muscles.
Example:
"abs,trapezius"
Maximum number of results to return (min: 1, max: 25, default: 10)
Example:
"10"
Exercise ID to paginate after (for forward pagination)
Exercise ID to paginate before (for backward pagination)
Response
Retrieve exercises by search filters
Indicates whether the request was successful
Example:
true
Metadata about cursor-based pagination
Show child attributes
Show child attributes
Array of exercises matching the filter criteria
Show child attributes
Show child attributes
Last modified on March 23, 2026
Was this page helpful?
⌘I
GetExercisesByMuscles
curl --request GET \
--url https://edb-with-gifs-and-images-by-ascendapi.p.rapidapi.com/api/v1/exercises/muscles \
--header 'X-RapidAPI-Key: <api-key>'import requests
url = "https://edb-with-gifs-and-images-by-ascendapi.p.rapidapi.com/api/v1/exercises/muscles"
headers = {"X-RapidAPI-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-RapidAPI-Key': '<api-key>'}};
fetch('https://edb-with-gifs-and-images-by-ascendapi.p.rapidapi.com/api/v1/exercises/muscles', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://edb-with-gifs-and-images-by-ascendapi.p.rapidapi.com/api/v1/exercises/muscles",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-RapidAPI-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://edb-with-gifs-and-images-by-ascendapi.p.rapidapi.com/api/v1/exercises/muscles"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-RapidAPI-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://edb-with-gifs-and-images-by-ascendapi.p.rapidapi.com/api/v1/exercises/muscles")
.header("X-RapidAPI-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://edb-with-gifs-and-images-by-ascendapi.p.rapidapi.com/api/v1/exercises/muscles")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-RapidAPI-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"meta": {
"total": 2289,
"hasNextPage": true,
"hasPreviousPage": false,
"nextCursor": "<string>",
"previousCursor": "<string>"
},
"data": [
{
"exerciseId": "edb_T5uXtLj",
"name": "Bench Press",
"equipments": [
"Barbell"
],
"bodyParts": [
"Chest"
],
"exerciseTypes": [
"strength"
],
"difficulty": "intermediate",
"targetMuscles": [
"pectorals"
],
"secondaryMuscles": [
"triceps",
"shoulders"
],
"imageUrl": ""
}
]
}{
"error": {
"code": "BAD_REQUEST",
"docs": "https://docs.exercisedb.dev/errors/code/BAD_REQUEST",
"message": "<string>",
"requestId": "req_12345"
}
}{
"error": {
"code": "UNAUTHORIZED",
"docs": "https://docs.exercisedb.dev/errors/code/UNAUTHORIZED",
"message": "<string>",
"requestId": "req_12345"
}
}{
"error": {
"code": "FORBIDDEN",
"docs": "https://docs.exercisedb.dev/errors/code/FORBIDDEN",
"message": "<string>",
"requestId": "req_12345"
}
}{
"error": {
"code": "NOT_FOUND",
"docs": "https://docs.exercisedb.dev/errors/code/NOT_FOUND",
"message": "<string>",
"requestId": "req_12345"
}
}{
"error": {
"code": "METHOD_NOT_ALLOWED",
"docs": "https://docs.exercisedb.dev/errors/code/METHOD_NOT_ALLOWED",
"message": "<string>",
"requestId": "req_12345"
}
}{
"error": {
"code": "CONFLICT",
"docs": "https://docs.exercisedb.dev/errors/code/CONFLICT",
"message": "<string>",
"requestId": "req_12345"
}
}{
"error": {
"code": "PRECONDITION_FAILED",
"docs": "https://docs.exercisedb.dev/errors/code/PRECONDITION_FAILED",
"message": "<string>",
"requestId": "req_12345"
}
}{
"error": {
"code": "TOO_MANY_REQUESTS",
"docs": "https://docs.exercisedb.dev/errors/code/TOO_MANY_REQUESTS",
"message": "<string>",
"requestId": "req_12345"
}
}{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"docs": "https://docs.exercisedb.dev/errors/code/INTERNAL_SERVER_ERROR",
"message": "<string>",
"requestId": "req_12345"
}
}