curl --request GET \
--url https://api.blockworks.com/query/tabular/spot-dex-liquidity-balances \
--header 'X-Blockworks-API-Key: <api-key>'import requests
url = "https://api.blockworks.com/query/tabular/spot-dex-liquidity-balances"
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/spot-dex-liquidity-balances', 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/spot-dex-liquidity-balances",
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/spot-dex-liquidity-balances"
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/spot-dex-liquidity-balances")
.header("X-Blockworks-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockworks.com/query/tabular/spot-dex-liquidity-balances")
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": [
{
"chain": "<chain>",
"exchangeID": "<exchangeID>",
"exchangeType": "<exchangeType>",
"exchangeVersion": "<exchangeVersion>",
"id": "<id>",
"name": "<name>",
"networkID": "<networkID>",
"networkSlug": "<networkSlug>",
"slug": "<slug>",
"tokenAddress": "<tokenAddress>"
}
],
"error": null,
"metadata": {
"totalPages": 1,
"totalRows": 1
}
}{
"data": null,
"error": "unknown query parameter \"id\""
}{
"data": null,
"error": "this model requires authentication"
}{
"data": null,
"error": "this model requires the \"spot-dex-protocols-dataset\" permission; see https://app.blockworks.com/account/api for the public API permissions you hold"
}{
"data": null,
"error": "tabular model \"unknown-model\" not found"
}List Spot DEX Liquidity Balances
One row per token held as liquidity by one spot DEX deployment on one chain, keyed by chain, exchange, version, design and token address: the exchange, its version and design, the token, the chain and the mapped network record. The id is the series key of the spot-dex-liquidity-balances timeseries model.
curl --request GET \
--url https://api.blockworks.com/query/tabular/spot-dex-liquidity-balances \
--header 'X-Blockworks-API-Key: <api-key>'import requests
url = "https://api.blockworks.com/query/tabular/spot-dex-liquidity-balances"
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/spot-dex-liquidity-balances', 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/spot-dex-liquidity-balances",
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/spot-dex-liquidity-balances"
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/spot-dex-liquidity-balances")
.header("X-Blockworks-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.blockworks.com/query/tabular/spot-dex-liquidity-balances")
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": [
{
"chain": "<chain>",
"exchangeID": "<exchangeID>",
"exchangeType": "<exchangeType>",
"exchangeVersion": "<exchangeVersion>",
"id": "<id>",
"name": "<name>",
"networkID": "<networkID>",
"networkSlug": "<networkSlug>",
"slug": "<slug>",
"tokenAddress": "<tokenAddress>"
}
],
"error": null,
"metadata": {
"totalPages": 1,
"totalRows": 1
}
}{
"data": null,
"error": "unknown query parameter \"id\""
}{
"data": null,
"error": "this model requires authentication"
}{
"data": null,
"error": "this model requires the \"spot-dex-protocols-dataset\" permission; see https://app.blockworks.com/account/api for the public API permissions you hold"
}{
"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 open to everyone need no key.
Query Parameters
Spot DEX Liquidity Balance ID equals.
Spot DEX Liquidity Balance 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).
Chain equals.
Chain is one of (comma-separated).
Exchange ID equals.
Exchange ID is one of (comma-separated).
Exchange Version equals.
Exchange Version is one of (comma-separated).
Exchange Type equals.
Exchange Type is one of (comma-separated).
Token Address equals.
Token Address is one of (comma-separated).
Network ID equals.
Network ID is one of (comma-separated).
Network Slug equals.
Network Slug is one of (comma-separated).
Field to sort by; defaults to the model's default sort column.
name, slug, chain, exchangeID Sort direction.
asc, desc 1-based page number.
Rows per page (max 1000, default 100).
Comma-separated fields to return; defaults to all fields.
id, name, slug, chain, exchangeID, exchangeVersion, exchangeType, tokenAddress, networkID, networkSlug 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