Skip to main content
GET
/
api
/
sdk
/
portfolio
Portfolio
curl --request GET \
  --url https://api.simmer.markets/api/sdk/portfolio
{
  "balance_usdc": 123,
  "sim_balance": 123,
  "sim_pnl": 123,
  "total_exposure": 123,
  "positions_count": 123,
  "redeemable_count": 123,
  "pnl_24h": 123,
  "pnl_total": 123,
  "concentration": {
    "top_market_pct": 123,
    "top_3_markets_pct": 123
  },
  "by_source": {},
  "warnings": [],
  "sim": {
    "balance": 123,
    "pnl": 123,
    "positions_count": 0,
    "total_exposure": 0
  },
  "polymarket": {
    "balance": 123,
    "pnl": 123,
    "positions_count": 0,
    "total_exposure": 0
  },
  "kalshi": {
    "balance": 123,
    "pnl": 123,
    "positions_count": 0,
    "total_exposure": 0
  },
  "total": {
    "positions_count": 0,
    "total_exposure": 0
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.simmer.markets/llms.txt

Use this file to discover all available pages before exploring further.

Venue-aware response. The sim, polymarket, kalshi, and total buckets are the preferred shape. Use ?venue=sim|polymarket|kalshi|all to filter (default all).The legacy flat fields (balance_usdc, sim_balance, positions_count, total_exposure) remain populated for backwards compatibility, but positions_count only counts Polymarket positions — use portfolio.sim.positions_count, portfolio.total.positions_count, or the per-venue buckets for accurate counts.

Query Parameters

venue
string | null
default:all

Venue filter: 'all' (default), 'sim', 'polymarket', or 'kalshi'. Per-venue buckets are always populated when applicable; this filters which are computed.

Response

Successful Response

Portfolio summary with aggregated metrics.

Venue-bucketed fields (sim, polymarket, kalshi, total) are the preferred shape for multi-venue agents. The flat fields (balance_usdc, sim_balance, positions_count, etc.) remain populated for backwards compatibility with older SDK/skill versions.

balance_usdc
number | null
sim_balance
number | null
sim_pnl
number | null
total_exposure
number | null
positions_count
integer | null
redeemable_count
integer | null
pnl_24h
number | null
pnl_total
number | null
concentration
SDKPortfolioConcentration · object

Portfolio concentration metrics.

by_source
By Source · object
warnings
string[]
sim
SDKPortfolioVenueBucket · object

Per-venue portfolio rollup.

balance is in the venue's native currency:

  • sim: $SIM
  • polymarket: USDC (Polygon)
  • kalshi: USDC (Solana)
polymarket
SDKPortfolioVenueBucket · object

Per-venue portfolio rollup.

balance is in the venue's native currency:

  • sim: $SIM
  • polymarket: USDC (Polygon)
  • kalshi: USDC (Solana)
kalshi
SDKPortfolioVenueBucket · object

Per-venue portfolio rollup.

balance is in the venue's native currency:

  • sim: $SIM
  • polymarket: USDC (Polygon)
  • kalshi: USDC (Solana)
total
SDKPortfolioTotal · object

Total across all venues.

Counts are summed directly; exposure is summed in venue-native units and is not currency-normalized (since $SIM ≠ USDC). Use the per-venue buckets for accurate financial aggregation.