Get Asset
curl --request GET \
--url https://api.blockworks.com/query/tabular/assets/{assetID} \
--header 'X-Blockworks-API-Key: <api-key>'import requests
url = "https://api.blockworks.com/query/tabular/assets/{assetID}"
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/{assetID}', 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/{assetID}",
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/{assetID}"
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/{assetID}")
.header("X-Blockworks-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockworks.com/query/tabular/assets/{assetID}")
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": "<assetID>",
"assetSerialID": 123,
"circulatingMarketcap": 123.45,
"circulatingMarketcapRank": 123,
"coveredByIntel": true,
"isStablecoin": true,
"isWrappedAsset": true,
"logoURL": "<logoURL>",
"name": "<name>",
"platformContracts": [
{}
],
"primaryProjectID": "<primaryProjectID>",
"primaryProjectLinks": [
{}
],
"primaryProjectLogoURL": "<primaryProjectLogoURL>",
"primaryProjectName": "<primaryProjectName>",
"primaryProjectOverview": "<primaryProjectOverview>",
"primaryProjectSlug": "<primaryProjectSlug>",
"primaryProjectTagline": "<primaryProjectTagline>",
"prioritySymbol": "<prioritySymbol>",
"sector": "<sector>",
"sectorsV2": [
"<sectorsV2>"
],
"slug": "<slug>",
"subSectorsV2": [
"<subSectorsV2>"
],
"symbol": "<symbol>"
},
"error": null,
"metadata": {
"matchedField": "assetID"
}
}{
"data": null,
"error": "unknown selection field \"nope\""
}{
"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": "no row found matching \"unknown\""
}Assets
Get Asset
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.
GET
/
query
/
tabular
/
assets
/
{assetID}
Get Asset
curl --request GET \
--url https://api.blockworks.com/query/tabular/assets/{assetID} \
--header 'X-Blockworks-API-Key: <api-key>'import requests
url = "https://api.blockworks.com/query/tabular/assets/{assetID}"
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/{assetID}', 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/{assetID}",
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/{assetID}"
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/{assetID}")
.header("X-Blockworks-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockworks.com/query/tabular/assets/{assetID}")
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": "<assetID>",
"assetSerialID": 123,
"circulatingMarketcap": 123.45,
"circulatingMarketcapRank": 123,
"coveredByIntel": true,
"isStablecoin": true,
"isWrappedAsset": true,
"logoURL": "<logoURL>",
"name": "<name>",
"platformContracts": [
{}
],
"primaryProjectID": "<primaryProjectID>",
"primaryProjectLinks": [
{}
],
"primaryProjectLogoURL": "<primaryProjectLogoURL>",
"primaryProjectName": "<primaryProjectName>",
"primaryProjectOverview": "<primaryProjectOverview>",
"primaryProjectSlug": "<primaryProjectSlug>",
"primaryProjectTagline": "<primaryProjectTagline>",
"prioritySymbol": "<prioritySymbol>",
"sector": "<sector>",
"sectorsV2": [
"<sectorsV2>"
],
"slug": "<slug>",
"subSectorsV2": [
"<subSectorsV2>"
],
"symbol": "<symbol>"
},
"error": null,
"metadata": {
"matchedField": "assetID"
}
}{
"data": null,
"error": "unknown selection field \"nope\""
}{
"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": "no row found matching \"unknown\""
}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.
Path Parameters
The Asset ID identifying the row. Falls back to the alternative identifier fields (slug, prioritySymbol, tried in that order) when no Asset ID matches; metadata.matchedField says which one matched.
Query Parameters
Comma-separated fields to return; defaults to all fields.
Available options:
assetID, assetSerialID, name, slug, symbol, prioritySymbol, logoURL, sector, sectorsV2, subSectorsV2, isStablecoin, isWrappedAsset, coveredByIntel, primaryProjectID, primaryProjectSlug, primaryProjectName, primaryProjectTagline, primaryProjectOverview, primaryProjectLogoURL, primaryProjectLinks, platformContracts, circulatingMarketcap, circulatingMarketcapRank