curl --request GET \
--url https://api.blockworks.com/query/tabular/assets \
--header 'X-Blockworks-API-Key: <api-key>'import requests
url = "https://api.blockworks.com/query/tabular/assets"
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/query/tabular/assets', 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/query/tabular/assets",
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/query/tabular/assets"
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/query/tabular/assets")
.header("X-Blockworks-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockworks.com/query/tabular/assets")
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{
"data": [
{
"assetID": "<string>",
"assetSerialID": 123,
"circulatingMarketcap": 123,
"circulatingMarketcapRank": 123,
"coveredByIntel": true,
"isStablecoin": true,
"isWrappedAsset": true,
"logoURL": "<string>",
"name": "<string>",
"platformContracts": [
{}
],
"primaryProjectID": "<string>",
"primaryProjectLinks": [
{}
],
"primaryProjectLogoURL": "<string>",
"primaryProjectName": "<string>",
"primaryProjectOverview": "<string>",
"primaryProjectSlug": "<string>",
"primaryProjectTagline": "<string>",
"prioritySymbol": "<string>",
"sector": "<string>",
"sectorsV2": [
"<string>"
],
"slug": "<string>",
"subSectorsV2": [
"<string>"
],
"symbol": "<string>"
}
],
"metadata": {
"totalPages": 123,
"totalRows": 123
},
"error": "<string>"
}{
"data": null,
"error": "unknown query parameter \"assetID\""
}{
"data": null,
"error": "this model requires authentication"
}{
"data": null,
"error": "this model requires a paid subscription or the \"market_data_unified\" permission"
}{
"data": null,
"error": "tabular model \"unknown-model\" not found"
}List Assets
One row per crypto asset, keyed by assetID and also found by slug or ticker: name, symbol, logo, sector taxonomy, stablecoin and wrapped-asset flags, the primary project, onchain contracts, and circulating market cap with its rank. The assetID is the series key of the per-asset timeseries models.
curl --request GET \
--url https://api.blockworks.com/query/tabular/assets \
--header 'X-Blockworks-API-Key: <api-key>'import requests
url = "https://api.blockworks.com/query/tabular/assets"
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/query/tabular/assets', 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/query/tabular/assets",
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/query/tabular/assets"
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/query/tabular/assets")
.header("X-Blockworks-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockworks.com/query/tabular/assets")
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{
"data": [
{
"assetID": "<string>",
"assetSerialID": 123,
"circulatingMarketcap": 123,
"circulatingMarketcapRank": 123,
"coveredByIntel": true,
"isStablecoin": true,
"isWrappedAsset": true,
"logoURL": "<string>",
"name": "<string>",
"platformContracts": [
{}
],
"primaryProjectID": "<string>",
"primaryProjectLinks": [
{}
],
"primaryProjectLogoURL": "<string>",
"primaryProjectName": "<string>",
"primaryProjectOverview": "<string>",
"primaryProjectSlug": "<string>",
"primaryProjectTagline": "<string>",
"prioritySymbol": "<string>",
"sector": "<string>",
"sectorsV2": [
"<string>"
],
"slug": "<string>",
"subSectorsV2": [
"<string>"
],
"symbol": "<string>"
}
],
"metadata": {
"totalPages": 123,
"totalRows": 123
},
"error": "<string>"
}{
"data": null,
"error": "unknown query parameter \"assetID\""
}{
"data": null,
"error": "this model requires authentication"
}{
"data": null,
"error": "this model requires a paid subscription or the \"market_data_unified\" permission"
}{
"data": null,
"error": "tabular model \"unknown-model\" not found"
}Authorizations
API key sent in the X-Blockworks-API-Key header; x-messari-api-key is accepted for existing integrations. The catalog endpoints and models on the public access tier need no key.
Query Parameters
Asset ID equals.
Asset ID is one of (comma-separated).
Asset ID is not one of (comma-separated).
Asset Serial ID equals.
Asset Serial ID is one of (comma-separated).
Name equals.
Name is one of (comma-separated).
Name contains (case-insensitive substring).
Slug equals.
Slug is one of (comma-separated).
Symbol equals.
Symbol is one of (comma-separated).
Symbol is not one of (comma-separated).
Symbol contains (case-insensitive substring).
Priority Symbol equals.
Priority Symbol is one of (comma-separated).
Sector equals.
Sector is one of (comma-separated).
Sector is not one of (comma-separated).
Sectors array includes.
Sectors array does not include.
Sectors array includes any of (comma-separated).
Sectors array includes none of (comma-separated).
Sub Sectors array includes.
Sub Sectors array does not include.
Sub Sectors array includes any of (comma-separated).
Sub Sectors array includes none of (comma-separated).
Is Stablecoin equals.
Is Stablecoin does not equal.
Is Wrapped Asset equals.
Is Wrapped Asset does not equal.
Covered By Intel equals.
Covered By Intel does not equal.
Primary Project ID equals.
Primary Project ID is one of (comma-separated).
Primary Project Slug equals.
Primary Project Slug is one of (comma-separated).
Circulating Marketcap is greater than.
Circulating Marketcap is greater than or equal to.
Circulating Marketcap is less than.
Circulating Marketcap is less than or equal to.
Circulating Marketcap Rank is greater than.
Circulating Marketcap Rank is greater than or equal to.
Circulating Marketcap Rank is less than.
Circulating Marketcap Rank is less than or equal to.
Circulating Marketcap Rank is one of (comma-separated).
Field to sort by; defaults to the model's default sort column.
name, slug, symbol, circulatingMarketcap, circulatingMarketcapRank Sort direction.
asc, desc 1-based page number.
Rows per page (max 1000, default 100).
Comma-separated fields to return; defaults to all fields.
assetID, assetSerialID, name, slug, symbol, prioritySymbol, logoURL, sector, sectorsV2, subSectorsV2, isStablecoin, isWrappedAsset, coveredByIntel, primaryProjectID, primaryProjectSlug, primaryProjectName, primaryProjectTagline, primaryProjectOverview, primaryProjectLogoURL, primaryProjectLinks, platformContracts, circulatingMarketcap, circulatingMarketcapRank Response format, overriding the Accept header: json (default), csv, or jsonl (NDJSON). csv and jsonl return the rows as a downloadable file.
json, csv, jsonl