curl --request GET \
--url https://staging.apimonaco.xyz/api/v1/market/pairs/{tradingPairId}/trader-metricsimport requests
url = "https://staging.apimonaco.xyz/api/v1/market/pairs/{tradingPairId}/trader-metrics"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://staging.apimonaco.xyz/api/v1/market/pairs/{tradingPairId}/trader-metrics', 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://staging.apimonaco.xyz/api/v1/market/pairs/{tradingPairId}/trader-metrics",
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://staging.apimonaco.xyz/api/v1/market/pairs/{tradingPairId}/trader-metrics"
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://staging.apimonaco.xyz/api/v1/market/pairs/{tradingPairId}/trader-metrics")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.apimonaco.xyz/api/v1/market/pairs/{tradingPairId}/trader-metrics")
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{
"tradingPairId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"quoteAssetSymbol": "USDC",
"asOf": 1736742000000,
"positionMetricsSuppressed": true,
"longAccountCount": 123,
"shortAccountCount": 123,
"longAccountShare": "<string>",
"shortAccountShare": "<string>",
"accountRatio": "<string>",
"activeTraderWindows": [
{
"window": "24h",
"activeTraderCount": 123,
"takerBuyerCount": 123,
"takerSellerCount": 123,
"suppressed": true
}
]
}Trader Metrics
Current public trader positioning and participation aggregates for a perp.
curl --request GET \
--url https://staging.apimonaco.xyz/api/v1/market/pairs/{tradingPairId}/trader-metricsimport requests
url = "https://staging.apimonaco.xyz/api/v1/market/pairs/{tradingPairId}/trader-metrics"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://staging.apimonaco.xyz/api/v1/market/pairs/{tradingPairId}/trader-metrics', 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://staging.apimonaco.xyz/api/v1/market/pairs/{tradingPairId}/trader-metrics",
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://staging.apimonaco.xyz/api/v1/market/pairs/{tradingPairId}/trader-metrics"
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://staging.apimonaco.xyz/api/v1/market/pairs/{tradingPairId}/trader-metrics")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.apimonaco.xyz/api/v1/market/pairs/{tradingPairId}/trader-metrics")
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{
"tradingPairId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"quoteAssetSymbol": "USDC",
"asOf": 1736742000000,
"positionMetricsSuppressed": true,
"longAccountCount": 123,
"shortAccountCount": 123,
"longAccountShare": "<string>",
"shortAccountShare": "<string>",
"accountRatio": "<string>",
"activeTraderWindows": [
{
"window": "24h",
"activeTraderCount": 123,
"takerBuyerCount": 123,
"takerSellerCount": 123,
"suppressed": true
}
]
}Path Parameters
Response
OK
Current public long/short account positioning and active trader aggregates. Accounts are classified by net position across OPEN risk buckets. Account identifiers are never returned; position metrics are null when either side has fewer than five accounts. Responses may be reused from a per-pair cache for up to 30 seconds.
Trading pair UUID
Quote asset symbol for this trading pair
"USDC"
Snapshot calculation time in Unix milliseconds
x >= 01736742000000
True when either net-long or net-short side has fewer than five margin accounts; all position split fields are then null
Distinct margin accounts with positive net position across OPEN risk buckets; null when suppressed
Distinct margin accounts with negative net position across OPEN risk buckets; null when suppressed
Long account count divided by long plus short account counts, rounded to six decimal places; null when suppressed
Short account count divided by long plus short account counts, rounded to six decimal places; null when suppressed
Net-long account count divided by net-short account count, rounded to six decimal places; null when suppressed
Active-trader counts grouped by rolling time window.
Show child attributes
Show child attributes
Was this page helpful?

