Get DAT Treasury Time Series
curl --request GET \
--url https://api.messari.io/metrics/v2/protocols/dats/{datIdentifier}/metrics/treasury/time-series/{granularity} \
--header 'X-Messari-API-Key: <api-key>'import requests
url = "https://api.messari.io/metrics/v2/protocols/dats/{datIdentifier}/metrics/treasury/time-series/{granularity}"
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/metrics/v2/protocols/dats/{datIdentifier}/metrics/treasury/time-series/{granularity}', 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/metrics/v2/protocols/dats/{datIdentifier}/metrics/treasury/time-series/{granularity}",
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/metrics/v2/protocols/dats/{datIdentifier}/metrics/treasury/time-series/{granularity}"
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/metrics/v2/protocols/dats/{datIdentifier}/metrics/treasury/time-series/{granularity}")
.header("X-Messari-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.messari.io/metrics/v2/protocols/dats/{datIdentifier}/metrics/treasury/time-series/{granularity}")
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": {
"points": [
[
1785715200,
94.6276,
1314808853.696448,
388372974,
36750802434.4824,
52404433006.7724,
401295000,
37973582742,
53627213314.29,
2550000000,
6770777000,
11432853572.289999,
53447462891.35466,
0.6876061172293173,
0.7104842903243286,
0.9804849504886232,
1.0033631235836344
],
[
1785801600,
96.3525,
1466558873.7327795,
388372974,
37420706977.335,
53127524238.115,
401295000,
38665776487.5,
54372593748.28,
2550000000,
6770777000,
11486040260.78,
53452819103.028946,
0.7000698486118673,
0.7233627175579402,
0.9939143553067435,
1.0172072242528165
],
[
1785888000,
97.8714,
1340405520.083278,
388372974,
38010606687.543594,
53914076786.5936,
401295000,
39275303463,
55178773562.05,
2550000000,
6770777000,
11682693099.05,
53929956131.069305,
0.7048143446503844,
0.7282650734509556,
0.9997055561395763,
1.0231562849401474
]
]
},
"metadata": {
"pointSchemas": [
{
"name": "Timestamp",
"slug": "time",
"description": "Timestamp of the data point.",
"is_timestamp": true
},
{
"name": "Stock Price (USD)",
"slug": "price",
"description": "Latest stock price in USD.",
"is_timestamp": false
},
{
"name": "Volume (USD)",
"slug": "volumeUsd",
"description": "Dollar trading volume.",
"is_timestamp": false
},
{
"name": "Outstanding Shares",
"slug": "outstandingShares",
"description": "Shares currently issued and held by investors.",
"is_timestamp": false
},
{
"name": "Market Cap (USD)",
"slug": "marketCap",
"description": "Stock price times outstanding shares in USD.",
"is_timestamp": false
},
{
"name": "Enterprise Value (USD)",
"slug": "enterpriseValue",
"description": "Market cap plus debt minus cash in USD.",
"is_timestamp": false
},
{
"name": "Fully Diluted Shares",
"slug": "fullyDilutedShares",
"description": "All shares if options, warrants and convertibles are exercised.",
"is_timestamp": false
},
{
"name": "Fully Diluted Valuation (USD)",
"slug": "fullyDilutedValuation",
"description": "Stock price times fully diluted shares in USD.",
"is_timestamp": false
},
{
"name": "Fully Diluted Enterprise Value (USD)",
"slug": "fullyDilutedEnterpriseValue",
"description": "Enterprise value on a fully diluted share basis in USD.",
"is_timestamp": false
},
{
"name": "Cash (USD)",
"slug": "cash",
"description": "Cash and equivalents on the balance sheet in USD.",
"is_timestamp": false
},
{
"name": "Debt (USD)",
"slug": "debt",
"description": "Total debt on the balance sheet in USD.",
"is_timestamp": false
},
{
"name": "Preferred Market Cap (USD)",
"slug": "preferredMarketCap",
"description": "Market value of preferred stock in USD.",
"is_timestamp": false
},
{
"name": "NAV (USD)",
"slug": "nav",
"description": "Net asset value - crypto holdings at market value, net of liabilities, in USD.",
"is_timestamp": false
},
{
"name": "Outstanding mNAV",
"slug": "outstandingMnav",
"description": "Market cap divided by NAV - premium or discount to crypto NAV on outstanding shares.",
"is_timestamp": false
},
{
"name": "Fully Diluted mNAV",
"slug": "fullyDilutedMnav",
"description": "Fully diluted valuation divided by NAV.",
"is_timestamp": false
},
{
"name": "Outstanding EV mNAV",
"slug": "outstandingEvMnav",
"description": "Enterprise value divided by NAV on outstanding shares.",
"is_timestamp": false
},
{
"name": "Fully Diluted EV mNAV",
"slug": "fullyDilutedEvMnav",
"description": "Fully diluted enterprise value divided by NAV.",
"is_timestamp": false
}
],
"granularity": "1d"
}
}{
"data": "<unknown>",
"error": "<string>"
}{
"data": "<unknown>",
"error": "<string>"
}{
"data": "<unknown>",
"error": "<string>"
}DATs
Get DAT Treasury Time Series
Returns one company’s capital structure history: share counts, market cap, enterprise value, cash, debt, NAV and the four mNAV variants. The identifier is the company’s stock ticker (MSTR) or its Messari project slug. Only the 1d granularity is available for this dataset.
GET
/
metrics
/
v2
/
protocols
/
dats
/
{datIdentifier}
/
metrics
/
treasury
/
time-series
/
{granularity}
Get DAT Treasury Time Series
curl --request GET \
--url https://api.messari.io/metrics/v2/protocols/dats/{datIdentifier}/metrics/treasury/time-series/{granularity} \
--header 'X-Messari-API-Key: <api-key>'import requests
url = "https://api.messari.io/metrics/v2/protocols/dats/{datIdentifier}/metrics/treasury/time-series/{granularity}"
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/metrics/v2/protocols/dats/{datIdentifier}/metrics/treasury/time-series/{granularity}', 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/metrics/v2/protocols/dats/{datIdentifier}/metrics/treasury/time-series/{granularity}",
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/metrics/v2/protocols/dats/{datIdentifier}/metrics/treasury/time-series/{granularity}"
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/metrics/v2/protocols/dats/{datIdentifier}/metrics/treasury/time-series/{granularity}")
.header("X-Messari-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.messari.io/metrics/v2/protocols/dats/{datIdentifier}/metrics/treasury/time-series/{granularity}")
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": {
"points": [
[
1785715200,
94.6276,
1314808853.696448,
388372974,
36750802434.4824,
52404433006.7724,
401295000,
37973582742,
53627213314.29,
2550000000,
6770777000,
11432853572.289999,
53447462891.35466,
0.6876061172293173,
0.7104842903243286,
0.9804849504886232,
1.0033631235836344
],
[
1785801600,
96.3525,
1466558873.7327795,
388372974,
37420706977.335,
53127524238.115,
401295000,
38665776487.5,
54372593748.28,
2550000000,
6770777000,
11486040260.78,
53452819103.028946,
0.7000698486118673,
0.7233627175579402,
0.9939143553067435,
1.0172072242528165
],
[
1785888000,
97.8714,
1340405520.083278,
388372974,
38010606687.543594,
53914076786.5936,
401295000,
39275303463,
55178773562.05,
2550000000,
6770777000,
11682693099.05,
53929956131.069305,
0.7048143446503844,
0.7282650734509556,
0.9997055561395763,
1.0231562849401474
]
]
},
"metadata": {
"pointSchemas": [
{
"name": "Timestamp",
"slug": "time",
"description": "Timestamp of the data point.",
"is_timestamp": true
},
{
"name": "Stock Price (USD)",
"slug": "price",
"description": "Latest stock price in USD.",
"is_timestamp": false
},
{
"name": "Volume (USD)",
"slug": "volumeUsd",
"description": "Dollar trading volume.",
"is_timestamp": false
},
{
"name": "Outstanding Shares",
"slug": "outstandingShares",
"description": "Shares currently issued and held by investors.",
"is_timestamp": false
},
{
"name": "Market Cap (USD)",
"slug": "marketCap",
"description": "Stock price times outstanding shares in USD.",
"is_timestamp": false
},
{
"name": "Enterprise Value (USD)",
"slug": "enterpriseValue",
"description": "Market cap plus debt minus cash in USD.",
"is_timestamp": false
},
{
"name": "Fully Diluted Shares",
"slug": "fullyDilutedShares",
"description": "All shares if options, warrants and convertibles are exercised.",
"is_timestamp": false
},
{
"name": "Fully Diluted Valuation (USD)",
"slug": "fullyDilutedValuation",
"description": "Stock price times fully diluted shares in USD.",
"is_timestamp": false
},
{
"name": "Fully Diluted Enterprise Value (USD)",
"slug": "fullyDilutedEnterpriseValue",
"description": "Enterprise value on a fully diluted share basis in USD.",
"is_timestamp": false
},
{
"name": "Cash (USD)",
"slug": "cash",
"description": "Cash and equivalents on the balance sheet in USD.",
"is_timestamp": false
},
{
"name": "Debt (USD)",
"slug": "debt",
"description": "Total debt on the balance sheet in USD.",
"is_timestamp": false
},
{
"name": "Preferred Market Cap (USD)",
"slug": "preferredMarketCap",
"description": "Market value of preferred stock in USD.",
"is_timestamp": false
},
{
"name": "NAV (USD)",
"slug": "nav",
"description": "Net asset value - crypto holdings at market value, net of liabilities, in USD.",
"is_timestamp": false
},
{
"name": "Outstanding mNAV",
"slug": "outstandingMnav",
"description": "Market cap divided by NAV - premium or discount to crypto NAV on outstanding shares.",
"is_timestamp": false
},
{
"name": "Fully Diluted mNAV",
"slug": "fullyDilutedMnav",
"description": "Fully diluted valuation divided by NAV.",
"is_timestamp": false
},
{
"name": "Outstanding EV mNAV",
"slug": "outstandingEvMnav",
"description": "Enterprise value divided by NAV on outstanding shares.",
"is_timestamp": false
},
{
"name": "Fully Diluted EV mNAV",
"slug": "fullyDilutedEvMnav",
"description": "Fully diluted enterprise value divided by NAV.",
"is_timestamp": false
}
],
"granularity": "1d"
}
}{
"data": "<unknown>",
"error": "<string>"
}{
"data": "<unknown>",
"error": "<string>"
}{
"data": "<unknown>",
"error": "<string>"
}Authorizations
Path Parameters
Company stock ticker (MSTR) or Messari project slug (micro-strategy). Case-sensitive: a ticker is upper-case and a slug is lower-case, so mstr does not resolve.
Example:
"MSTR"
Granularity
Available options:
1d Example:
"1d"
Query Parameters
Time range start
Example:
"2026-08-01T00:00:00Z"
Time range end
Example:
"2026-08-21T00:00:00Z"
⌘I

