Canonical wallet overview (Polymarket)
curl --request GET \
--url https://prediction-market-api.solanatracker.io/v1/accounts/{address}/overview \
--header 'x-api-key: <api-key>'import requests
url = "https://prediction-market-api.solanatracker.io/v1/accounts/{address}/overview"
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://prediction-market-api.solanatracker.io/v1/accounts/{address}/overview', 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://prediction-market-api.solanatracker.io/v1/accounts/{address}/overview",
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://prediction-market-api.solanatracker.io/v1/accounts/{address}/overview"
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://prediction-market-api.solanatracker.io/v1/accounts/{address}/overview")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://prediction-market-api.solanatracker.io/v1/accounts/{address}/overview")
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{
"address": "<string>",
"pnl": {
"activePositionCount": 1,
"address": "<string>",
"costMethod": "<string>",
"heldTokenPositionCount": 1,
"marketsTraded": 1,
"openPositions": 1,
"positions": [
{
"assetId": "<string>",
"avgCostBasis": 123,
"buyCount": 1,
"firstTradeAt": "<string>",
"isActive": true,
"isRedeemable": true,
"isRedeemed": true,
"isResolved": true,
"lastTradeAt": "<string>",
"netTokens": 123,
"realizedPnlUsd": 123,
"resolved": true,
"sellCount": 1,
"totalCostUsd": 123,
"totalProceedsUsd": 123,
"costMethod": "<string>",
"currentPrice": 123,
"eventId": "<string>",
"eventSlug": "<string>",
"eventTitle": "<string>",
"groupItemTitle": "<string>",
"markPrice": 123,
"marketId": "<string>",
"marketTitle": "<string>",
"outcomeIndex": 1,
"outcomeLabel": "<string>",
"positionValueUsd": 123,
"remainingCostBasisUsd": 123,
"returnPct": 123,
"settledTokens": 123,
"settlementValueUsd": 123,
"unrealizedPnlUsd": 123
}
],
"realizedPnlUsd": 123,
"redeemablePositionCount": 1,
"resolvedPositionCount": 1,
"totalInvestedUsd": 123,
"totalPnlUsd": 123,
"totalProceedsUsd": 123,
"unrealizedPnlUsd": 123
},
"positions": {
"count": 1,
"data": [
{
"assetId": "<string>",
"avgCostBasis": 123,
"buyCount": 1,
"firstTradeAt": "<string>",
"isActive": true,
"isRedeemable": true,
"isRedeemed": true,
"isResolved": true,
"lastTradeAt": "<string>",
"netTokens": 123,
"realizedPnlUsd": 123,
"resolved": true,
"sellCount": 1,
"totalCostUsd": 123,
"totalProceedsUsd": 123,
"costMethod": "<string>",
"currentPrice": 123,
"eventId": "<string>",
"eventSlug": "<string>",
"eventTitle": "<string>",
"groupItemTitle": "<string>",
"markPrice": 123,
"marketId": "<string>",
"marketTitle": "<string>",
"outcomeIndex": 1,
"outcomeLabel": "<string>",
"positionValueUsd": 123,
"remainingCostBasisUsd": 123,
"returnPct": 123,
"settledTokens": 123,
"settlementValueUsd": 123,
"unrealizedPnlUsd": 123
}
],
"hasMore": true,
"cursor": "<string>"
},
"recentTrades": {
"count": 1,
"data": [
{
"id": "<string>",
"marketId": "<string>",
"price": 123,
"quantity": 123,
"side": "<string>",
"timestampMs": 123,
"countFp": "<string>",
"eventId": "<string>",
"eventSlug": "<string>",
"eventTitle": "<string>",
"groupItemTitle": "<string>",
"image": "<string>",
"isCombo": true,
"noPrice": 123,
"noPriceDollars": "<string>",
"outcomeIndex": 1,
"outcomeLabel": "<string>",
"quantityE2": 123,
"traderAddress": "<string>",
"traderUsername": "<string>",
"txHash": "<string>",
"yesPrice": 123,
"yesPriceDollars": "<string>",
"yesPriceE6": 123
}
],
"hasMore": true,
"cursor": "<string>",
"events": {},
"markets": {}
},
"value": {
"address": "<string>",
"openPositionCount": 1,
"timestamp": "<string>",
"totalValueUsd": 123,
"cashBalanceUsd": 123,
"positionsValueUsd": 123
}
}{
"code": 1,
"error": "<string>",
"errorCode": "<string>"
}{
"code": 1,
"error": "<string>",
"errorCode": "<string>"
}{
"code": 1,
"error": "<string>",
"errorCode": "<string>"
}{
"code": 1,
"error": "<string>",
"errorCode": "<string>"
}Accounts
Canonical wallet overview (Polymarket)
Returns lifecycle-aware positions and counts, authoritative marks and settlement values, FIFO PnL, portfolio value, and recent trades enriched with the same canonical market metadata as /v1/markets/batch.
GET
/
v1
/
accounts
/
{address}
/
overview
Canonical wallet overview (Polymarket)
curl --request GET \
--url https://prediction-market-api.solanatracker.io/v1/accounts/{address}/overview \
--header 'x-api-key: <api-key>'import requests
url = "https://prediction-market-api.solanatracker.io/v1/accounts/{address}/overview"
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://prediction-market-api.solanatracker.io/v1/accounts/{address}/overview', 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://prediction-market-api.solanatracker.io/v1/accounts/{address}/overview",
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://prediction-market-api.solanatracker.io/v1/accounts/{address}/overview"
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://prediction-market-api.solanatracker.io/v1/accounts/{address}/overview")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://prediction-market-api.solanatracker.io/v1/accounts/{address}/overview")
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{
"address": "<string>",
"pnl": {
"activePositionCount": 1,
"address": "<string>",
"costMethod": "<string>",
"heldTokenPositionCount": 1,
"marketsTraded": 1,
"openPositions": 1,
"positions": [
{
"assetId": "<string>",
"avgCostBasis": 123,
"buyCount": 1,
"firstTradeAt": "<string>",
"isActive": true,
"isRedeemable": true,
"isRedeemed": true,
"isResolved": true,
"lastTradeAt": "<string>",
"netTokens": 123,
"realizedPnlUsd": 123,
"resolved": true,
"sellCount": 1,
"totalCostUsd": 123,
"totalProceedsUsd": 123,
"costMethod": "<string>",
"currentPrice": 123,
"eventId": "<string>",
"eventSlug": "<string>",
"eventTitle": "<string>",
"groupItemTitle": "<string>",
"markPrice": 123,
"marketId": "<string>",
"marketTitle": "<string>",
"outcomeIndex": 1,
"outcomeLabel": "<string>",
"positionValueUsd": 123,
"remainingCostBasisUsd": 123,
"returnPct": 123,
"settledTokens": 123,
"settlementValueUsd": 123,
"unrealizedPnlUsd": 123
}
],
"realizedPnlUsd": 123,
"redeemablePositionCount": 1,
"resolvedPositionCount": 1,
"totalInvestedUsd": 123,
"totalPnlUsd": 123,
"totalProceedsUsd": 123,
"unrealizedPnlUsd": 123
},
"positions": {
"count": 1,
"data": [
{
"assetId": "<string>",
"avgCostBasis": 123,
"buyCount": 1,
"firstTradeAt": "<string>",
"isActive": true,
"isRedeemable": true,
"isRedeemed": true,
"isResolved": true,
"lastTradeAt": "<string>",
"netTokens": 123,
"realizedPnlUsd": 123,
"resolved": true,
"sellCount": 1,
"totalCostUsd": 123,
"totalProceedsUsd": 123,
"costMethod": "<string>",
"currentPrice": 123,
"eventId": "<string>",
"eventSlug": "<string>",
"eventTitle": "<string>",
"groupItemTitle": "<string>",
"markPrice": 123,
"marketId": "<string>",
"marketTitle": "<string>",
"outcomeIndex": 1,
"outcomeLabel": "<string>",
"positionValueUsd": 123,
"remainingCostBasisUsd": 123,
"returnPct": 123,
"settledTokens": 123,
"settlementValueUsd": 123,
"unrealizedPnlUsd": 123
}
],
"hasMore": true,
"cursor": "<string>"
},
"recentTrades": {
"count": 1,
"data": [
{
"id": "<string>",
"marketId": "<string>",
"price": 123,
"quantity": 123,
"side": "<string>",
"timestampMs": 123,
"countFp": "<string>",
"eventId": "<string>",
"eventSlug": "<string>",
"eventTitle": "<string>",
"groupItemTitle": "<string>",
"image": "<string>",
"isCombo": true,
"noPrice": 123,
"noPriceDollars": "<string>",
"outcomeIndex": 1,
"outcomeLabel": "<string>",
"quantityE2": 123,
"traderAddress": "<string>",
"traderUsername": "<string>",
"txHash": "<string>",
"yesPrice": 123,
"yesPriceDollars": "<string>",
"yesPriceE6": 123
}
],
"hasMore": true,
"cursor": "<string>",
"events": {},
"markets": {}
},
"value": {
"address": "<string>",
"openPositionCount": 1,
"timestamp": "<string>",
"totalValueUsd": 123,
"cashBalanceUsd": 123,
"positionsValueUsd": 123
}
}{
"code": 1,
"error": "<string>",
"errorCode": "<string>"
}{
"code": 1,
"error": "<string>",
"errorCode": "<string>"
}{
"code": 1,
"error": "<string>",
"errorCode": "<string>"
}{
"code": 1,
"error": "<string>",
"errorCode": "<string>"
}Authorizations
Solana Tracker Data API key
Path Parameters
Ethereum wallet address (0x…)
Query Parameters
Bypass Redis and exercise the exact ClickHouse serving path
Response
Wallet overview
Wallet overview bundle response.
Wallet-level PnL summary across all positions.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Trade feed with optional embedded market/event context.
Show child attributes
Show child attributes
Total portfolio value for a wallet.
Show child attributes
Show child attributes
Was this page helpful?
⌘I