Get Chart Data
curl --request GET \
--url https://api.blockworks.com/v1/charts/{visualizationId}/data \
--header 'X-Blockworks-API-Key: <api-key>'import requests
url = "https://api.blockworks.com/v1/charts/{visualizationId}/data"
headers = {"X-Blockworks-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Blockworks-API-Key': '<api-key>'}};
fetch('https://api.blockworks.com/v1/charts/{visualizationId}/data', 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.blockworks.com/v1/charts/{visualizationId}/data",
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-Blockworks-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.blockworks.com/v1/charts/{visualizationId}/data"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Blockworks-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.blockworks.com/v1/charts/{visualizationId}/data")
.header("X-Blockworks-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockworks.com/v1/charts/{visualizationId}/data")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Blockworks-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"page": 1,
"total": 3,
"data": [
{
"date": "2026-09-18",
"issuer": "Tether",
"supply_usd": 171245638102.41
},
{
"date": "2026-09-18",
"issuer": "Circle",
"supply_usd": 74902117655.08
},
{
"date": "2026-09-18",
"issuer": "Ethena",
"supply_usd": 14538207391.6
}
]
}{
"statusCode": 400,
"message": "Invalid visualization id",
"error": "Bad Request"
}{
"statusCode": 401,
"message": "Unauthorized"
}{
"statusCode": 404,
"message": "Chart not found",
"error": "Not Found"
}{
"statusCode": 503,
"message": "Service Unavailable"
}Charts
Get Chart Data
Returns the rows behind one Blockworks Chart by id, with search, column selection, sorting and paging over the rows.
GET
/
v1
/
charts
/
{visualizationId}
/
data
Get Chart Data
curl --request GET \
--url https://api.blockworks.com/v1/charts/{visualizationId}/data \
--header 'X-Blockworks-API-Key: <api-key>'import requests
url = "https://api.blockworks.com/v1/charts/{visualizationId}/data"
headers = {"X-Blockworks-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Blockworks-API-Key': '<api-key>'}};
fetch('https://api.blockworks.com/v1/charts/{visualizationId}/data', 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.blockworks.com/v1/charts/{visualizationId}/data",
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-Blockworks-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.blockworks.com/v1/charts/{visualizationId}/data"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Blockworks-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.blockworks.com/v1/charts/{visualizationId}/data")
.header("X-Blockworks-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockworks.com/v1/charts/{visualizationId}/data")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Blockworks-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"page": 1,
"total": 3,
"data": [
{
"date": "2026-09-18",
"issuer": "Tether",
"supply_usd": 171245638102.41
},
{
"date": "2026-09-18",
"issuer": "Circle",
"supply_usd": 74902117655.08
},
{
"date": "2026-09-18",
"issuer": "Ethena",
"supply_usd": 14538207391.6
}
]
}{
"statusCode": 400,
"message": "Invalid visualization id",
"error": "Bad Request"
}{
"statusCode": 401,
"message": "Unauthorized"
}{
"statusCode": 404,
"message": "Chart not found",
"error": "Not Found"
}{
"statusCode": 503,
"message": "Service Unavailable"
}Authorizations
API key sent in the X-Blockworks-API-Key header. Send it on its own: the charts endpoints reject a request that carries a second credential.
Path Parameters
The chart id from List Charts.
Query Parameters
Page number, starting at 1.
Required range:
x >= 1Rows per page.
Required range:
1 <= x <= 100000Keeps only rows where some value, in any column, contains this term (case-insensitive). Applied before paging.
Comma-separated column names to keep in each row. Omit to return every column.
Column to sort the rows by. Without it, rows come back in the order the chart's query produced them.
Sort direction, used with order_by.
Available options:
asc, desc