GET /entity/{owner}: Multi-Wallet Entity Rollup
curl --request GET \
--url https://partner-api.bravadotrade.com/trader-analytics/entity/{owner}import requests
url = "https://partner-api.bravadotrade.com/trader-analytics/entity/{owner}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://partner-api.bravadotrade.com/trader-analytics/entity/{owner}', 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://partner-api.bravadotrade.com/trader-analytics/entity/{owner}",
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://partner-api.bravadotrade.com/trader-analytics/entity/{owner}"
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://partner-api.bravadotrade.com/trader-analytics/entity/{owner}")
.asString();require 'uri'
require 'net/http'
url = URI("https://partner-api.bravadotrade.com/trader-analytics/entity/{owner}")
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_bodyTrader Data API
GET /entity/{owner}: Multi-Wallet Entity Rollup
Aggregates R5/R6/R7 metrics across all controlled wallets registered under a beneficial owner.
GET
/
trader-analytics
/
entity
/
{owner}
GET /entity/{owner}: Multi-Wallet Entity Rollup
curl --request GET \
--url https://partner-api.bravadotrade.com/trader-analytics/entity/{owner}import requests
url = "https://partner-api.bravadotrade.com/trader-analytics/entity/{owner}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://partner-api.bravadotrade.com/trader-analytics/entity/{owner}', 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://partner-api.bravadotrade.com/trader-analytics/entity/{owner}",
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://partner-api.bravadotrade.com/trader-analytics/entity/{owner}"
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://partner-api.bravadotrade.com/trader-analytics/entity/{owner}")
.asString();require 'uri'
require 'net/http'
url = URI("https://partner-api.bravadotrade.com/trader-analytics/entity/{owner}")
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_bodySign each request with a fresh HMAC signature. The cURL and HTTP header values below are placeholders, not reusable credentials. For runnable signing code, use request signing examples. Python examples use the signed session from that page; Node.js examples use its
bravadoFetch helper.Statements are precomputed for a set of wallets. For any other wallet this endpoint returns
404 with "code": "STATEMENT_NOT_AVAILABLE", and retrying will not change the answer. For realized, unrealized and overall PnL of any wallet, including open positions that were never closed, use GET /traders/{address}.GET https://partner-api.bravadotrade.com/trader-analytics/entity/{owner}
Path Parameters
string
required
Beneficial owner identifier. Contact Bravado to register a multi-wallet entity and obtain an owner ID.
Response
Response structure mirrors/metrics but aggregates figures across all member wallets. The member_wallets array lists the addresses included.
Returns 503 with {"available": false} when data is not yet available for any member wallet.
Example
curl https://partner-api.bravadotrade.com/trader-analytics/entity/owner_01HXYZ \
-H "X-BRAVADO-API-KEY: $BRAVADO_API_KEY" \
-H "X-BRAVADO-TIMESTAMP: <unix-ms>" \
-H "X-BRAVADO-SIGNATURE: <signature-for-this-request>"
{
"owner": "owner_01HXYZ",
"member_wallets": [
"0xabc...",
"0x999..."
],
"r7": {
"nav_uusdc": "9800000000",
"trading_pnl_uusdc": "22100000000",
"roi": "0.4210",
"twr": "0.4580",
"win_rate": "0.6612"
}
}