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 /assets | Tokens inside a DeFi position: collateral, debt, and rewards, with balances and USD values. |
| GET /holdings | Direct token balances held by a wallet. Protocol positions are excluded. |
| GET /positions | Aggregated protocol positions: net value, collateral, debt, and yield metrics. |
| GET /performance | PnL, ROI, TWR, APR, and APY between two dates, rolled up from organization to asset. |
| POST /yields/graphql | Supply 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.