Get wallet overview
curl --request GET \
--url https://api.reperp.xyz/api/v1/positions/overview/{owner} \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.reperp.xyz/api/v1/positions/overview/{owner}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.reperp.xyz/api/v1/positions/overview/{owner}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"status": "success",
"data": {
"7D": {
"total_profit": 123,
"total_loss": 123,
"total_fee_paid": 123,
"total_pnl_after_fee": 123,
"total_long_pnl": 123,
"total_short_pnl": 123,
"total_trades": 123,
"avg_trade_size": 123,
"total_volume": 123,
"total_long_volume": 123,
"total_short_volume": 123,
"win_rate": 123,
"expected_value": 123,
"max_drawdown": 123
},
"1M": {
"total_profit": 123,
"total_loss": 123,
"total_fee_paid": 123,
"total_pnl_after_fee": 123,
"total_long_pnl": 123,
"total_short_pnl": 123,
"total_trades": 123,
"avg_trade_size": 123,
"total_volume": 123,
"total_long_volume": 123,
"total_short_volume": 123,
"win_rate": 123,
"expected_value": 123,
"max_drawdown": 123
},
"3M": {
"total_profit": 123,
"total_loss": 123,
"total_fee_paid": 123,
"total_pnl_after_fee": 123,
"total_long_pnl": 123,
"total_short_pnl": 123,
"total_trades": 123,
"avg_trade_size": 123,
"total_volume": 123,
"total_long_volume": 123,
"total_short_volume": 123,
"win_rate": 123,
"expected_value": 123,
"max_drawdown": 123
},
"1Y": {
"total_profit": 123,
"total_loss": 123,
"total_fee_paid": 123,
"total_pnl_after_fee": 123,
"total_long_pnl": 123,
"total_short_pnl": 123,
"total_trades": 123,
"avg_trade_size": 123,
"total_volume": 123,
"total_long_volume": 123,
"total_short_volume": 123,
"win_rate": 123,
"expected_value": 123,
"max_drawdown": 123
},
"YTD": {
"total_profit": 123,
"total_loss": 123,
"total_fee_paid": 123,
"total_pnl_after_fee": 123,
"total_long_pnl": 123,
"total_short_pnl": 123,
"total_trades": 123,
"avg_trade_size": 123,
"total_volume": 123,
"total_long_volume": 123,
"total_short_volume": 123,
"win_rate": 123,
"expected_value": 123,
"max_drawdown": 123
},
"ALL": {
"total_profit": 123,
"total_loss": 123,
"total_fee_paid": 123,
"total_pnl_after_fee": 123,
"total_long_pnl": 123,
"total_short_pnl": 123,
"total_trades": 123,
"avg_trade_size": 123,
"total_volume": 123,
"total_long_volume": 123,
"total_short_volume": 123,
"win_rate": 123,
"expected_value": 123,
"max_drawdown": 123
}
}
}{
"status": "error",
"message": "<string>",
"errors": [
{}
]
}{
"error": "Unauthorized"
}{
"error": "Too many requests. Please wait for a moment."
}Wallet analytics
Get wallet overview
Headline metrics of one wallet for every range at once: PnL, fees, volume, trades, win rate, expected value and max drawdown. A wallet we have no data for returns zeros.
GET
/
positions
/
overview
/
{owner}
Get wallet overview
curl --request GET \
--url https://api.reperp.xyz/api/v1/positions/overview/{owner} \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.reperp.xyz/api/v1/positions/overview/{owner}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.reperp.xyz/api/v1/positions/overview/{owner}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"status": "success",
"data": {
"7D": {
"total_profit": 123,
"total_loss": 123,
"total_fee_paid": 123,
"total_pnl_after_fee": 123,
"total_long_pnl": 123,
"total_short_pnl": 123,
"total_trades": 123,
"avg_trade_size": 123,
"total_volume": 123,
"total_long_volume": 123,
"total_short_volume": 123,
"win_rate": 123,
"expected_value": 123,
"max_drawdown": 123
},
"1M": {
"total_profit": 123,
"total_loss": 123,
"total_fee_paid": 123,
"total_pnl_after_fee": 123,
"total_long_pnl": 123,
"total_short_pnl": 123,
"total_trades": 123,
"avg_trade_size": 123,
"total_volume": 123,
"total_long_volume": 123,
"total_short_volume": 123,
"win_rate": 123,
"expected_value": 123,
"max_drawdown": 123
},
"3M": {
"total_profit": 123,
"total_loss": 123,
"total_fee_paid": 123,
"total_pnl_after_fee": 123,
"total_long_pnl": 123,
"total_short_pnl": 123,
"total_trades": 123,
"avg_trade_size": 123,
"total_volume": 123,
"total_long_volume": 123,
"total_short_volume": 123,
"win_rate": 123,
"expected_value": 123,
"max_drawdown": 123
},
"1Y": {
"total_profit": 123,
"total_loss": 123,
"total_fee_paid": 123,
"total_pnl_after_fee": 123,
"total_long_pnl": 123,
"total_short_pnl": 123,
"total_trades": 123,
"avg_trade_size": 123,
"total_volume": 123,
"total_long_volume": 123,
"total_short_volume": 123,
"win_rate": 123,
"expected_value": 123,
"max_drawdown": 123
},
"YTD": {
"total_profit": 123,
"total_loss": 123,
"total_fee_paid": 123,
"total_pnl_after_fee": 123,
"total_long_pnl": 123,
"total_short_pnl": 123,
"total_trades": 123,
"avg_trade_size": 123,
"total_volume": 123,
"total_long_volume": 123,
"total_short_volume": 123,
"win_rate": 123,
"expected_value": 123,
"max_drawdown": 123
},
"ALL": {
"total_profit": 123,
"total_loss": 123,
"total_fee_paid": 123,
"total_pnl_after_fee": 123,
"total_long_pnl": 123,
"total_short_pnl": 123,
"total_trades": 123,
"avg_trade_size": 123,
"total_volume": 123,
"total_long_volume": 123,
"total_short_volume": 123,
"win_rate": 123,
"expected_value": 123,
"max_drawdown": 123
}
}
}{
"status": "error",
"message": "<string>",
"errors": [
{}
]
}{
"error": "Unauthorized"
}{
"error": "Too many requests. Please wait for a moment."
}Authorizations
Your API key. Keys are issued on request: message @perp_ag on X.
Path Parameters
The wallet: an account index on Lighter and RH Lighter, a Solana address on Jupiter, Phoenix and Bullet, an account object id (0x + 64 hex) on Aftermath.
Query Parameters
Venue. See Venues and identifiers.
Available options:
LIGHTER, RHLT, JUPITER, PHOENIX, BULLET, AFTERMATH ⌘I