Get Filtered Assets with Allocation information
curl --request GET \
--url https://api.messari.io/token-unlocks/v1/assets \
--header 'X-Messari-API-Key: <api-key>'import requests
url = "https://api.messari.io/token-unlocks/v1/assets"
headers = {"X-Messari-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Messari-API-Key': '<api-key>'}};
fetch('https://api.messari.io/token-unlocks/v1/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.messari.io/token-unlocks/v1/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-Messari-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.messari.io/token-unlocks/v1/assets"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Messari-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.messari.io/token-unlocks/v1/assets")
.header("X-Messari-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.messari.io/token-unlocks/v1/assets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Messari-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"error": null,
"data": [
{
"id": "1c077d6e-99c7-491c-b24d-1d359011cd81",
"serialId": 609,
"symbol": "TRX",
"name": "TRON",
"genesisDate": "2017-09-13T00:00:00Z",
"projectedEndDate": "2017-09-13T00:00:00Z",
"slug": "tron",
"category": "Networks",
"sector": "Smart Contract Platform",
"tags": [
"EVM",
"Proof-of-Stake",
"SEC Alleged Securities",
"Stakeable"
],
"otherInfo": null
},
{
"id": "7c435a77-5be9-4424-b5d1-1c02b968c56f",
"serialId": 378,
"symbol": "XLM",
"name": "Stellar",
"genesisDate": "2015-11-24T00:00:00Z",
"projectedEndDate": "2023-04-05T00:00:00Z",
"slug": "stellar",
"category": "Financial Services",
"sector": "Payments",
"tags": null,
"otherInfo": null
},
{
"id": "99b6a5f4-2200-4098-82fd-53d091bdee70",
"serialId": 756013,
"symbol": "HYPE",
"name": "Hyperliquid",
"genesisDate": "2024-11-29T00:00:00Z",
"projectedEndDate": "2027-10-28T00:00:00Z",
"slug": "hyperliquid",
"category": "Marketplaces",
"sector": "Exchange",
"tags": [
"Decentralized Exchange",
"DeFi",
"Perpetuals"
],
"otherInfo": null
},
{
"id": "78c4b0c5-8cbe-4f05-b639-0eb942e86dd5",
"serialId": 21023,
"symbol": "SUI",
"name": "Sui",
"genesisDate": "2023-05-01T00:00:00Z",
"projectedEndDate": "2030-05-01T00:00:00Z",
"slug": "sui",
"category": "Networks",
"sector": "Smart Contract Platform",
"tags": null,
"otherInfo": "Sui unlock data is only supported up to 2030 (47.83% of the total allocation), as the project only released data for the next 7 years; therefore, the unlock data for Mysten Labs Treasury, Early Contributors, Community Reserve is incomplete in the vesting schedule. Furthermore, tokens allocated to inflationary categories (Stake Subsidies) are not accounted for in the unlock data below. "
},
{
"id": "2db6b38a-681a-4514-9d67-691e319597ee",
"serialId": 1265,
"symbol": "AVAX",
"name": "Avalanche",
"genesisDate": "2020-09-21T00:00:00Z",
"projectedEndDate": "2030-07-20T00:00:00Z",
"slug": "avalanche",
"category": "Networks",
"sector": "Layer-0",
"tags": [
"Proof-of-Stake",
"Stakeable"
],
"otherInfo": null
}
]
}{
"data": "<unknown>",
"error": "<string>"
}{
"data": "<unknown>",
"error": "<string>"
}{
"data": "<unknown>",
"error": "<string>"
}Token Unlocks
Get Assets
Returns assets with allocation information given a set of filters
GET
/
token-unlocks
/
v1
/
assets
Get Filtered Assets with Allocation information
curl --request GET \
--url https://api.messari.io/token-unlocks/v1/assets \
--header 'X-Messari-API-Key: <api-key>'import requests
url = "https://api.messari.io/token-unlocks/v1/assets"
headers = {"X-Messari-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Messari-API-Key': '<api-key>'}};
fetch('https://api.messari.io/token-unlocks/v1/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.messari.io/token-unlocks/v1/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-Messari-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.messari.io/token-unlocks/v1/assets"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Messari-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.messari.io/token-unlocks/v1/assets")
.header("X-Messari-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.messari.io/token-unlocks/v1/assets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Messari-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"error": null,
"data": [
{
"id": "1c077d6e-99c7-491c-b24d-1d359011cd81",
"serialId": 609,
"symbol": "TRX",
"name": "TRON",
"genesisDate": "2017-09-13T00:00:00Z",
"projectedEndDate": "2017-09-13T00:00:00Z",
"slug": "tron",
"category": "Networks",
"sector": "Smart Contract Platform",
"tags": [
"EVM",
"Proof-of-Stake",
"SEC Alleged Securities",
"Stakeable"
],
"otherInfo": null
},
{
"id": "7c435a77-5be9-4424-b5d1-1c02b968c56f",
"serialId": 378,
"symbol": "XLM",
"name": "Stellar",
"genesisDate": "2015-11-24T00:00:00Z",
"projectedEndDate": "2023-04-05T00:00:00Z",
"slug": "stellar",
"category": "Financial Services",
"sector": "Payments",
"tags": null,
"otherInfo": null
},
{
"id": "99b6a5f4-2200-4098-82fd-53d091bdee70",
"serialId": 756013,
"symbol": "HYPE",
"name": "Hyperliquid",
"genesisDate": "2024-11-29T00:00:00Z",
"projectedEndDate": "2027-10-28T00:00:00Z",
"slug": "hyperliquid",
"category": "Marketplaces",
"sector": "Exchange",
"tags": [
"Decentralized Exchange",
"DeFi",
"Perpetuals"
],
"otherInfo": null
},
{
"id": "78c4b0c5-8cbe-4f05-b639-0eb942e86dd5",
"serialId": 21023,
"symbol": "SUI",
"name": "Sui",
"genesisDate": "2023-05-01T00:00:00Z",
"projectedEndDate": "2030-05-01T00:00:00Z",
"slug": "sui",
"category": "Networks",
"sector": "Smart Contract Platform",
"tags": null,
"otherInfo": "Sui unlock data is only supported up to 2030 (47.83% of the total allocation), as the project only released data for the next 7 years; therefore, the unlock data for Mysten Labs Treasury, Early Contributors, Community Reserve is incomplete in the vesting schedule. Furthermore, tokens allocated to inflationary categories (Stake Subsidies) are not accounted for in the unlock data below. "
},
{
"id": "2db6b38a-681a-4514-9d67-691e319597ee",
"serialId": 1265,
"symbol": "AVAX",
"name": "Avalanche",
"genesisDate": "2020-09-21T00:00:00Z",
"projectedEndDate": "2030-07-20T00:00:00Z",
"slug": "avalanche",
"category": "Networks",
"sector": "Layer-0",
"tags": [
"Proof-of-Stake",
"Stakeable"
],
"otherInfo": null
}
]
}{
"data": "<unknown>",
"error": "<string>"
}{
"data": "<unknown>",
"error": "<string>"
}{
"data": "<unknown>",
"error": "<string>"
}x402 Support: Supported.
See the x402 guide.
Authorizations
Query Parameters
Page number for pagination
Example:
1
Number of results per page
Example:
10
Comma-separated list of asset IDs (UUIDs) to filter by
Example:
"7e532302-9ced-4e90-8c8a-218a38e1dbba,1c077d6e-99c7-491c-b24d-1d359011cd81"
Comma-separated list of categories to filter by
Example:
"Networks,DeFi"
Comma-separated list of sectors to filter by
Example:
"Smart Contract Platform"
Comma-separated list of tags to filter by
Example:
"Proof-of-Stake,EVM"
⌘I

