Skip to main content
GET
The spot positions of the wallets you name, one row per chain, wallet and token. wallets takes 1 to 100 addresses, comma-separated. chains narrows the read to some chains.

Filters

  • lifecycle picks open positions, the default, or closed ones.
  • hideLowLiquidity drops open positions in tokens with under $1,000 of liquidity. It is true by default. Send false to see every position.
  • hideDust drops open positions worth under $1. It is false by default.
  • hideTransfers drops positions that no buy opened, such as airdrops. It is false by default.
  • chain and token together read one token’s positions. Send both or neither.
  • q keeps tokens whose symbol or name contains it, in any letter case.

Sort

sort is field:asc or field:desc, where field is value, pnl, pnlPct, openedAt or closedAt. It is value:desc for open positions and closedAt:desc for closed ones.

Response

A page carries positions, nextCursor, hasMore, asOf and counts. counts.spot holds the number of open and closed positions. It ignores lifecycle, the hide… switches, q, chain and token, so it stays the same across the pages of one read. Each position prices its holdings at the token’s latest price. value, unrealizedPnl, totalPnl and pnlPct are null for a token with no market record, and pnlPct is also null for a position with no invested cost. version orders the changes to one position: keep the highest. The spot.positions stream uses the same rule.

Paging

Send back nextCursor exactly as you received it. A cursor holds the filters and sort of the read that made it. A cursor sent with other filters is refused with 400 VALIDATION_ERROR.

Errors

Authorizations

Authorization
string
header
required

Send the API key as Authorization: Bearer <key>.

Query Parameters

wallets
string
required

Wallet addresses, CSV; one to 100.

chains
string

Chains to scope to, CSV of the chain slugs. Absent means every spot chain.

lifecycle
enum<string>

Lifecycle to list; open when absent. A position's current-cycle lifecycle.

Available options:
open,
closed
hideLowLiquidity
boolean
default:true

Drop open positions whose token liquidity is below the low-liquidity floor.

hideDust
boolean

Drop open positions whose remaining value is below the dust floor.

hideTransfers
boolean

Drop positions never acquired through a buy.

chain
string

Exact-token drill-down chain; requires token.

token
string

Exact-token drill-down address; requires chain.

q
string

Case-insensitive substring of the token symbol or name.

sort
string

Sort field and direction, field:asc|desc. value:desc when absent, closedAt:desc for closed.

limit
integer<int32>

Rows per page, clamped to 1-100; 50 when absent.

Required range: 1 <= x <= 100
cursor
string

Opaque cursor from the previous page.

Response

One page of the named wallets' positions. The price-derived fields are null for a token without a price.

One page of the named wallets' positions.

asOf
integer<int64>
required

Serve-time snapshot timestamp.

counts
object
required

Per-product counts, taken before the lifecycle, display, search and drill-down filters.

hasMore
boolean
required

Whether a next page exists.

positions
object[]
required

Positions on this page.

nextCursor
string | null

Cursor for the next page; null on the last page.