Get Wallet Profile
curl --request GET \
--url https://api.predexon.com/v2/polymarket/wallet/{wallet} \
--header 'x-api-key: <api-key>'import requests
url = "https://api.predexon.com/v2/polymarket/wallet/{wallet}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.predexon.com/v2/polymarket/wallet/{wallet}', 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.predexon.com/v2/polymarket/wallet/{wallet}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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.predexon.com/v2/polymarket/wallet/{wallet}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.predexon.com/v2/polymarket/wallet/{wallet}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.predexon.com/v2/polymarket/wallet/{wallet}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"user": "<string>",
"metrics": {
"one_day": {
"realized_pnl": 123,
"volume": 123,
"roi": 123,
"trades": 123,
"wins": 123,
"losses": 123,
"win_rate": 123,
"profit_factor": 123,
"positions_closed": 123,
"total_pnl": 123,
"avg_buy_price": 123,
"avg_sell_price": 123,
"fees_paid": 0,
"fees_refunded": 0
},
"seven_day": {
"realized_pnl": 123,
"volume": 123,
"roi": 123,
"trades": 123,
"wins": 123,
"losses": 123,
"win_rate": 123,
"profit_factor": 123,
"positions_closed": 123,
"total_pnl": 123,
"avg_buy_price": 123,
"avg_sell_price": 123,
"fees_paid": 0,
"fees_refunded": 0
},
"thirty_day": {
"realized_pnl": 123,
"volume": 123,
"roi": 123,
"trades": 123,
"wins": 123,
"losses": 123,
"win_rate": 123,
"profit_factor": 123,
"positions_closed": 123,
"total_pnl": 123,
"avg_buy_price": 123,
"avg_sell_price": 123,
"fees_paid": 0,
"fees_refunded": 0
},
"all_time": {
"realized_pnl": 123,
"volume": 123,
"roi": 123,
"trades": 123,
"wins": 123,
"losses": 123,
"win_rate": 123,
"profit_factor": 123,
"positions_closed": 123,
"avg_hold_time_seconds": 123,
"wallet_age_days": 123,
"total_positions": 123,
"active_positions": 123,
"max_win_streak": 123,
"max_loss_streak": 123,
"best_position_realized_pnl": 123,
"worst_position_realized_pnl": 123,
"total_pnl": 123,
"avg_buy_price": 123,
"avg_sell_price": 123,
"fees_paid": 0,
"fees_refunded": 0
}
},
"trading_styles": {
"is_whale": true,
"is_market_maker": true,
"is_active_trader": true,
"is_buy_and_hold": true,
"is_degen": true,
"is_high_conviction": true,
"is_contrarian": true,
"is_value_hunter": true,
"primary_style": "<string>"
},
"entry_edge": 123,
"unrealized_pnl": 123,
"total_pnl": 123,
"first_trade_at": 123,
"last_trade_at": 123,
"computed_at": 123
}{
"error": "<string>",
"message": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"error": "<string>",
"message": "<string>"
}Wallet Identity
Wallet Profile
Get a complete smart wallet profile
GET
/
v2
/
polymarket
/
wallet
/
{wallet}
Get Wallet Profile
curl --request GET \
--url https://api.predexon.com/v2/polymarket/wallet/{wallet} \
--header 'x-api-key: <api-key>'import requests
url = "https://api.predexon.com/v2/polymarket/wallet/{wallet}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.predexon.com/v2/polymarket/wallet/{wallet}', 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.predexon.com/v2/polymarket/wallet/{wallet}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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.predexon.com/v2/polymarket/wallet/{wallet}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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.predexon.com/v2/polymarket/wallet/{wallet}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.predexon.com/v2/polymarket/wallet/{wallet}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"user": "<string>",
"metrics": {
"one_day": {
"realized_pnl": 123,
"volume": 123,
"roi": 123,
"trades": 123,
"wins": 123,
"losses": 123,
"win_rate": 123,
"profit_factor": 123,
"positions_closed": 123,
"total_pnl": 123,
"avg_buy_price": 123,
"avg_sell_price": 123,
"fees_paid": 0,
"fees_refunded": 0
},
"seven_day": {
"realized_pnl": 123,
"volume": 123,
"roi": 123,
"trades": 123,
"wins": 123,
"losses": 123,
"win_rate": 123,
"profit_factor": 123,
"positions_closed": 123,
"total_pnl": 123,
"avg_buy_price": 123,
"avg_sell_price": 123,
"fees_paid": 0,
"fees_refunded": 0
},
"thirty_day": {
"realized_pnl": 123,
"volume": 123,
"roi": 123,
"trades": 123,
"wins": 123,
"losses": 123,
"win_rate": 123,
"profit_factor": 123,
"positions_closed": 123,
"total_pnl": 123,
"avg_buy_price": 123,
"avg_sell_price": 123,
"fees_paid": 0,
"fees_refunded": 0
},
"all_time": {
"realized_pnl": 123,
"volume": 123,
"roi": 123,
"trades": 123,
"wins": 123,
"losses": 123,
"win_rate": 123,
"profit_factor": 123,
"positions_closed": 123,
"avg_hold_time_seconds": 123,
"wallet_age_days": 123,
"total_positions": 123,
"active_positions": 123,
"max_win_streak": 123,
"max_loss_streak": 123,
"best_position_realized_pnl": 123,
"worst_position_realized_pnl": 123,
"total_pnl": 123,
"avg_buy_price": 123,
"avg_sell_price": 123,
"fees_paid": 0,
"fees_refunded": 0
}
},
"trading_styles": {
"is_whale": true,
"is_market_maker": true,
"is_active_trader": true,
"is_buy_and_hold": true,
"is_degen": true,
"is_high_conviction": true,
"is_contrarian": true,
"is_value_hunter": true,
"primary_style": "<string>"
},
"entry_edge": 123,
"unrealized_pnl": 123,
"total_pnl": 123,
"first_trade_at": 123,
"last_trade_at": 123,
"computed_at": 123
}{
"error": "<string>",
"message": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"error": "<string>",
"message": "<string>"
}Returns all metrics across all time windows and style classifications for a wallet. The response includes boolean label columns (
is_whale, is_market_maker, is_contrarian, etc.) and a computed primary_trading_style.
Requires Dev or Pro tier. This endpoint is not available on the Free tier.
See Trading Labels for how each label is calculated, priority rules, and minimum thresholds.
You can use the individual boolean columns to build your own custom label combinations instead of relying on the default
primary_trading_style.Rolling total PnL accuracy timeline - Total PnL (realized + unrealized - net fees) uses rolling windows that need time to accumulate full data:
- All-time total PnL: accurate immediately (February 10, 2026)
- 1-day rolling total PnL: fully accurate starting February 11, 2026
- 7-day rolling total PnL: fully accurate starting February 17, 2026
- 30-day rolling total PnL: fully accurate starting March 12, 2026
Authorizations
Path Parameters
Wallet address (hex)
Response
Successful Response
Full wallet profile response.
Wallet address
Metrics across all windows
Show child attributes
Show child attributes
Trading style classifications
Show child attributes
Show child attributes
Price edge (avg_sell - avg_buy)
Total unrealized PnL in USD
Total PnL (realized + unrealized - net fees)
Unix timestamp of first trade
Unix timestamp of last trade
Unix timestamp when metrics were computed
⌘I
