SDK
import { PredictionMarketsClient } from '@solana-tracker/data-api';
const client = new PredictionMarketsClient({ apiKey: 'YOUR_API_KEY' });
const data = await client.getAccountOverview('0xYOUR_POLYMARKET_WALLET');
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>",
"exchange": "polymarket",
"heldTokenPositionCount": 1,
"marketsTraded": 1,
"openPositions": 1,
"positions": [
{
"assetId": "<string>",
"avgCostBasis": 123,
"buyCount": 1,
"exchange": "polymarket",
"firstTradeAt": "<string>",
"isActive": true,
"isRedeemable": true,
"isRedeemed": true,
"isResolved": true,
"lastTradeAt": "<string>",
"marketStatus": "active",
"netTokens": 123,
"positionStatus": "active",
"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,
"exchange": "polymarket",
"firstTradeAt": "<string>",
"isActive": true,
"isRedeemable": true,
"isRedeemed": true,
"isResolved": true,
"lastTradeAt": "<string>",
"marketStatus": "active",
"netTokens": 123,
"positionStatus": "active",
"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": [
{
"exchange": "polymarket",
"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>",
"exchange": "polymarket",
"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
SDK
import { PredictionMarketsClient } from '@solana-tracker/data-api';
const client = new PredictionMarketsClient({ apiKey: 'YOUR_API_KEY' });
const data = await client.getAccountOverview('0xYOUR_POLYMARKET_WALLET');
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>",
"exchange": "polymarket",
"heldTokenPositionCount": 1,
"marketsTraded": 1,
"openPositions": 1,
"positions": [
{
"assetId": "<string>",
"avgCostBasis": 123,
"buyCount": 1,
"exchange": "polymarket",
"firstTradeAt": "<string>",
"isActive": true,
"isRedeemable": true,
"isRedeemed": true,
"isResolved": true,
"lastTradeAt": "<string>",
"marketStatus": "active",
"netTokens": 123,
"positionStatus": "active",
"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,
"exchange": "polymarket",
"firstTradeAt": "<string>",
"isActive": true,
"isRedeemable": true,
"isRedeemed": true,
"isResolved": true,
"lastTradeAt": "<string>",
"marketStatus": "active",
"netTokens": 123,
"positionStatus": "active",
"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": [
{
"exchange": "polymarket",
"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>",
"exchange": "polymarket",
"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>"
}SDK Example
import { PredictionMarketsClient } from '@solana-tracker/data-api';
const client = new PredictionMarketsClient({ apiKey: 'YOUR_API_KEY' });
const data = await client.getAccountOverview('0xYOUR_POLYMARKET_WALLET');
Autorizaciones
Solana Tracker Data API key
Parámetros de ruta
Ethereum wallet address (0x…)
Parámetros de consulta
Bypass Redis and exercise the exact ClickHouse serving path
Respuesta
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
¿Esta página le ayudó?