GET /api/volume/aggregate
curl --request GET \
--url https://api.example.com/api/volume/aggregateimport requests
url = "https://api.example.com/api/volume/aggregate"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/volume/aggregate', 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.example.com/api/volume/aggregate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.example.com/api/volume/aggregate"
req, _ := http.NewRequest("GET", url, nil)
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.example.com/api/volume/aggregate")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/volume/aggregate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"totalVolume": "<string>",
"dailyBreakdown": [
{
"date": "<string>",
"volume": "<string>",
"trades": 123
}
],
"tokens": [
{
"mint": "<string>",
"symbol": "<string>",
"totalVolume": "<string>"
}
]
}API Reference
GET /api/volume/aggregate
Retrieve aggregate trading volume with daily breakdown for all DAO tokens
GET
/
api
/
volume
/
aggregate
GET /api/volume/aggregate
curl --request GET \
--url https://api.example.com/api/volume/aggregateimport requests
url = "https://api.example.com/api/volume/aggregate"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/volume/aggregate', 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.example.com/api/volume/aggregate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.example.com/api/volume/aggregate"
req, _ := http.NewRequest("GET", url, nil)
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.example.com/api/volume/aggregate")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/volume/aggregate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"totalVolume": "<string>",
"dailyBreakdown": [
{
"date": "<string>",
"volume": "<string>",
"trades": 123
}
],
"tokens": [
{
"mint": "<string>",
"symbol": "<string>",
"totalVolume": "<string>"
}
]
}Overview
The volume aggregate endpoint returns comprehensive trading volume data for all DAO tokens since launch, including daily breakdowns for detailed analysis.This endpoint aggregates volume data across all DAOs, providing a complete picture of trading activity on the Futarchy protocol.
Request
GET /api/volume/aggregate
No Parameters Required
This endpoint requires no query parameters. It automatically returns aggregate volume data for all active DAOs.Response
string
required
Total aggregate trading volume across all DAOs since launch (in USD)
array
required
array
required
Example Request
curl https://market-api.metadao.fi/api/volume/aggregate
const response = await fetch('https://market-api.metadao.fi/api/volume/aggregate');
const volumeData = await response.json();
console.log(volumeData);
import requests
response = requests.get('https://market-api.metadao.fi/api/volume/aggregate')
volume_data = response.json()
print(volume_data)
Example Response
{
"totalVolume": "5234567.89",
"dailyBreakdown": [
{
"date": "2024-01-15",
"volume": "125000.00",
"trades": 342
},
{
"date": "2024-01-14",
"volume": "98500.50",
"trades": 287
}
],
"tokens": [
{
"mint": "ZKFHiLAfAFMTcDAuCtjNW54VzpERvoe7PBF9mYgmeta",
"symbol": "ZKFG",
"totalVolume": "1250000.00"
},
{
"mint": "ANOTHER_TOKEN_MINT",
"symbol": "ABC",
"totalVolume": "875000.00"
}
]
}
Data Characteristics
Volume Calculation
Volume Calculation
Volume is derived from accumulated protocol fees, providing accurate trading activity metrics.Formula:
volume = protocolFees / feeRateUses the protocol fee rate of 0.25% for calculations.Daily Breakdown
Daily Breakdown
Daily volume data is tracked since each DAO’s launch date, providing historical trading patterns and trends.
Per-Token Aggregation
Per-Token Aggregation
Volume is aggregated per token, making it easy to compare trading activity across different DAOs.
Use Cases
Analytics Dashboards
Display historical volume trends and trading patterns
Market Research
Analyze trading activity across the Futarchy ecosystem
Protocol Metrics
Track overall protocol health and growth
Reporting
Generate volume reports for stakeholders
Rate Limiting
This endpoint is subject to the global rate limit of 60 requests per minute per IP address.Related Documentation
Tickers API
Get real-time pricing and volume for all DAOs
Supply API
Get token supply breakdown information
API Overview
Learn about the API architecture
⌘I
