GET /traders/{address}/statements/r1: R1 Dispositions
curl --request GET \
--url https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/statements/r1import requests
url = "https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/statements/r1"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/statements/r1', 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/traders/{address}/statements/r1",
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/traders/{address}/statements/r1"
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/traders/{address}/statements/r1")
.asString();require 'uri'
require 'net/http'
url = URI("https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/statements/r1")
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{
"asset": {
"market": "<string>",
"outcome_label": "<string>",
"token_id": "<string>"
}
}Trader Data API
GET /traders/{address}/statements/r1: R1 Dispositions
Paginated R1 Form-8949-style disposition rows for heavy wallets.
GET
/
trader-analytics
/
traders
/
{address}
/
statements
/
r1
GET /traders/{address}/statements/r1: R1 Dispositions
curl --request GET \
--url https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/statements/r1import requests
url = "https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/statements/r1"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/statements/r1', 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/traders/{address}/statements/r1",
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/traders/{address}/statements/r1"
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/traders/{address}/statements/r1")
.asString();require 'uri'
require 'net/http'
url = URI("https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/statements/r1")
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{
"asset": {
"market": "<string>",
"outcome_label": "<string>",
"token_id": "<string>"
}
}Sign 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}./statements response is too large.
GET https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/statements/r1
Path Parameters
Query Parameters
Response: R1 Disposition Row Fields
object
Example
curl -G https://partner-api.bravadotrade.com/trader-analytics/traders/0xabc.../statements/r1 \
-H "X-BRAVADO-API-KEY: $BRAVADO_API_KEY" \
-H "X-BRAVADO-TIMESTAMP: <unix-ms>" \
-H "X-BRAVADO-SIGNATURE: <signature-for-this-request>" \
-d limit=50 \
-d offset=0
{
"trader": "0xabc...",
"total": 842,
"limit": 50,
"offset": 0,
"rows": [
{
"acquire_tx": "0xacquire...",
"dispose_tx": "0xdispose...",
"date_acquired": "2024-03-15T09:22:00Z",
"date_disposed": "2024-04-02T14:05:00Z",
"disposal_kind": "SELL",
"gain_loss_uusdc": "135100000",
"term": "SHORT",
"taxable": true,
"evidence_level": "A"
}
]
}