API reference

Read holdings, positions, assets, performance, and lending rates from your own systems.

The HTTP API is the same data the app shows. Authenticate with an API key, then page through snapshots or ask for a performance window. Object shapes are listed on Models.

Authentication#

Every request sends the key in the x-api-Key header. Header names are case-insensitive. Keep the key on a server. Do not ship it in a browser.

Pagination#

Assets, holdings, and positions return up to 500 rows. The body includes page_info.has_more and, when more rows exist, page_info.next_cursor. Pass that cursor back as next_cursor to continue. Cursors are timestamps.

snapshot_mode selects which snapshots are included: all, daily_only, interaction_only, or harmonized_only. The default is all of them.

Endpoints#

GET /assetsTokens inside a DeFi position: collateral, debt, and rewards, with balances and USD values.
GET /holdingsDirect token balances held by a wallet. Protocol positions are excluded.
GET /positionsAggregated protocol positions: net value, collateral, debt, and yield metrics.
GET /performancePnL, ROI, TWR, APR, and APY between two dates, rolled up from organization to asset.
POST /yields/graphqlSupply and borrow rates, utilization, and oracle prices for lending markets.

Errors#

Failed requests return JSON with error, message, and statusCode. 400 means the query is invalid, 404 means nothing matched, and 500 means the service failed. A missing or rejected key is rejected before those bodies.