Exchange Monthly Volume Chart
curl --request GET \
--url https://api.cryptorank.io/v3/exchanges/{id}/volume-chart/monthly \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.cryptorank.io/v3/exchanges/{id}/volume-chart/monthly"
headers = {"X-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://api.cryptorank.io/v3/exchanges/{id}/volume-chart/monthly', 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://api.cryptorank.io/v3/exchanges/{id}/volume-chart/monthly",
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-Api-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://api.cryptorank.io/v3/exchanges/{id}/volume-chart/monthly"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-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://api.cryptorank.io/v3/exchanges/{id}/volume-chart/monthly")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cryptorank.io/v3/exchanges/{id}/volume-chart/monthly")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"time": 1748736000000,
"adjustedVolume": "1180000000000",
"reportedVolume": "1260000000000",
"adjustedVolumeBtc": "19500000",
"reportedVolumeBtc": "20800000"
}
],
"status": {
"usedCredits": 1,
"timestamp": 1780000000000
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"status": 400
}
}{
"error": {
"code": "API_KEY_MISSING",
"message": "API key is missing",
"status": 401
}
}{
"error": {
"code": "NO_ACTIVE_SUBSCRIPTION",
"message": "No active subscription found",
"status": 403
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"status": 404
}
}{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded",
"status": 429
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error",
"status": 500
}
}Exchanges
Exchange Monthly Volume Chart
Monthly adjusted and reported trading volumes (USD and BTC) over the selected multi-year period. Complements the daily Exchange Volume Chart.
Available from: Advanced
Cost: 1 credit per request
GET
/
v3
/
exchanges
/
{id}
/
volume-chart
/
monthly
Exchange Monthly Volume Chart
curl --request GET \
--url https://api.cryptorank.io/v3/exchanges/{id}/volume-chart/monthly \
--header 'X-Api-Key: <api-key>'import requests
url = "https://api.cryptorank.io/v3/exchanges/{id}/volume-chart/monthly"
headers = {"X-Api-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<api-key>'}};
fetch('https://api.cryptorank.io/v3/exchanges/{id}/volume-chart/monthly', 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://api.cryptorank.io/v3/exchanges/{id}/volume-chart/monthly",
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-Api-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://api.cryptorank.io/v3/exchanges/{id}/volume-chart/monthly"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-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://api.cryptorank.io/v3/exchanges/{id}/volume-chart/monthly")
.header("X-Api-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.cryptorank.io/v3/exchanges/{id}/volume-chart/monthly")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"time": 1748736000000,
"adjustedVolume": "1180000000000",
"reportedVolume": "1260000000000",
"adjustedVolumeBtc": "19500000",
"reportedVolumeBtc": "20800000"
}
],
"status": {
"usedCredits": 1,
"timestamp": 1780000000000
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"status": 400
}
}{
"error": {
"code": "API_KEY_MISSING",
"message": "API key is missing",
"status": 401
}
}{
"error": {
"code": "NO_ACTIVE_SUBSCRIPTION",
"message": "No active subscription found",
"status": 403
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"status": 404
}
}{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded",
"status": 429
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error",
"status": 500
}
}The current calendar month is partial — it holds the volume accumulated so far and updates daily. The deepest available period is capped by your plan.
Authorizations
Path Parameters
Exchange ID. Resolve via /exchanges/map
Required range:
x >= 1Example:
200
Query Parameters
Look-back period. The deepest allowed value is capped by your plan (Advanced up to 2y, Pro up to 5y, Business up to all). ytd covers the current calendar year.
Available options:
1y, 2y, 3y, 5y, ytd, all ⌘I