Generate heatmap muscle visualization
Returns an image where each muscle group can have its own unique color. Ideal for intensity visualization, progress tracking, and muscle fatigue mapping.
curl --request GET \
--url https://muscle-visualizer-api.p.rapidapi.com/api/v1/visualize/heatmap \
--header 'X-RapidAPI-Key: <api-key>'import requests
url = "https://muscle-visualizer-api.p.rapidapi.com/api/v1/visualize/heatmap"
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://muscle-visualizer-api.p.rapidapi.com/api/v1/visualize/heatmap', 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://muscle-visualizer-api.p.rapidapi.com/api/v1/visualize/heatmap",
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://muscle-visualizer-api.p.rapidapi.com/api/v1/visualize/heatmap"
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://muscle-visualizer-api.p.rapidapi.com/api/v1/visualize/heatmap")
.header("X-RapidAPI-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://muscle-visualizer-api.p.rapidapi.com/api/v1/visualize/heatmap")
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"<string>"{
"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
Comma-separated list of muscle groups
1"BICEPS,TRICEPS,CHEST"
Comma-separated list of hex or RGB colors (must match number of muscles)
1"#E74C3C,#F39C12,#3498DB"
Body type to display
male, female "male"
Background style: 'white', 'transparent', HEX color (e.g., '#f0f0f0'), or RGB color (e.g., 'rgb(240, 240, 240)'). No alpha channel allowed.
^(white|transparent|#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})|rgb\(\s*\d{1,3}\s*,\s*\d{1,3}\s*,\s*\d{1,3}\s*\))$"white"
Image dimensions - small (360x360), medium (480x480), large (720x720), xlarge (1080x1080)
small, medium, large, xlarge "medium"
Output image format
jpeg, png, webp "jpeg"
Response
Successfully generated heatmap visualization image
The response is of type file.
Was this page helpful?
curl --request GET \
--url https://muscle-visualizer-api.p.rapidapi.com/api/v1/visualize/heatmap \
--header 'X-RapidAPI-Key: <api-key>'import requests
url = "https://muscle-visualizer-api.p.rapidapi.com/api/v1/visualize/heatmap"
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://muscle-visualizer-api.p.rapidapi.com/api/v1/visualize/heatmap', 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://muscle-visualizer-api.p.rapidapi.com/api/v1/visualize/heatmap",
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://muscle-visualizer-api.p.rapidapi.com/api/v1/visualize/heatmap"
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://muscle-visualizer-api.p.rapidapi.com/api/v1/visualize/heatmap")
.header("X-RapidAPI-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://muscle-visualizer-api.p.rapidapi.com/api/v1/visualize/heatmap")
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"<string>"{
"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"
}
}