exercises
GetExercisesByBodyparts
Filter exercises by bodyparts with cursor-based pagination.
GET
https://edb-with-gifs-and-images-by-ascendapi.p.rapidapi.com
/
api
/
v1
/
exercises
/
bodyparts
GetExercisesByBodyparts
curl --request GET \
--url https://edb-with-gifs-and-images-by-ascendapi.p.rapidapi.com/api/v1/exercises/bodyparts \
--header 'X-RapidAPI-Key: <api-key>'import requests
url = "https://edb-with-gifs-and-images-by-ascendapi.p.rapidapi.com/api/v1/exercises/bodyparts"
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/bodyparts', 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/bodyparts",
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/bodyparts"
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/bodyparts")
.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/bodyparts")
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 body parts. Use comma-separated values for multiple body parts.
Example:
"Chest,Shoulders"
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
GetExercisesByBodyparts
curl --request GET \
--url https://edb-with-gifs-and-images-by-ascendapi.p.rapidapi.com/api/v1/exercises/bodyparts \
--header 'X-RapidAPI-Key: <api-key>'import requests
url = "https://edb-with-gifs-and-images-by-ascendapi.p.rapidapi.com/api/v1/exercises/bodyparts"
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/bodyparts', 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/bodyparts",
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/bodyparts"
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/bodyparts")
.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/bodyparts")
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"
}
}