Prerequisites:
Retrieve Current Positions
Use the following endpoint to retrieve all the current yield positions of an address:
Optional Parameters:
Slim Request:
Response Format
The response returns yield positions underearn.positions and an aggregate under earn.summary.
By default it also includes raw actions and paginated wallet activity under history; the slim request omits both without changing the position accounting.
Example Response:
Understanding the Response
earn.positions[].spotPosition.currentPosition
earn.positions[].spotPosition.currentPosition
Raw balance as a BigInt string in the token’s smallest unit (e.g.
"10000000" = 10 USDC)earn.positions[].spotPosition.underlyingBalanceUSD
earn.positions[].spotPosition.underlyingBalanceUSD
USD value of the position
earn.positions[].spotPosition.profit
earn.positions[].spotPosition.profit
Current gain or loss of the position relative to the cost basis still invested, taking into account adjustments such as partial withdrawals. This reflects the true economic result of the open position — what the client has effectively earned on the capital that remains deployed.
value: the gross figure, before Pods fees.afterFees: the same figure net of the performance and markup fees —value × (1 - (performanceFeeBps + markupFeeBps) / 10000). Display this one. Fees apply to profit only, so whenvalueis negativeafterFeesequals it exactly. See Fees for the full rules.
earn.positions[].spotPosition.cumulativeProfit
earn.positions[].spotPosition.cumulativeProfit
A simpler accumulated view of the overall result: the current position value minus the total net amount moved by the client (deposits minus withdrawals). This does not adjust for the changing cost basis and gives a straightforward picture of how much value has been generated since inception.
earn.positions[].spotPosition APY fields
earn.positions[].spotPosition APY fields
apy: Current APY as a decimal (e.g.0.0417= 4.17%)grossAPY: APY before performance fees are deducted (decimal). May benullwhen not applicable.netAPY: APY after performance fees are deducted (decimal). May benullwhen not applicable.avgApy: Time-weighted average APY since inceptioninceptionApy: APY since the strategy launched
earn.positions[].spotPosition pending amounts
earn.positions[].spotPosition pending amounts
For strategies with queued (request-based) investment flows, these arrays contain pending amounts not yet settled on-chain:
requestedToLend: Array of amounts pending deposit (e.g. arequest-lendaction that is PENDING)requestedToWithdraw: Array of amounts pending withdrawal (e.g. arequest-withdrawaction that is PENDING)
currentPosition (value, decimals, humanized, symbol). These fields are only present on strategies that support the request-lend / request-withdraw action flow.strategy
strategy
Full strategy object (same metadata exposed by
GET /v2/strategies/:strategyId) including protocol, network, asset details, and feeearn.summary.totalUnderlyingBalanceUSD
earn.summary.totalUnderlyingBalanceUSD
Total portfolio value in USD across all positions
UI Integration Example

Next Steps
Withdraw
Learn how to withdraw from a position
New Deposit
Open a new yield position