https://api.zerion.io and require authentication via HTTP Basic Auth. Responses follow the JSON:API specification.
Endpoint categories
Wallets
Portfolio, positions, transactions, PnL, and NFTs - all scoped to a wallet address. This is the core of the API. Positions include both fungible tokens and DeFi protocol positions. NFT data is split into individual holdings, collections, and a portfolio summary. All positions and transactions come with icons, labels, links, metadata, and relationships. Everything is ready to use immediately in interfaces without additional interpretation or enrichment.Fungibles
Token metadata, pricing, and market data. Search and filter across all supported tokens, look up by Zerion ID or by chain and contract address, and fetch historical price charts.Chains
The full list of supported blockchains with metadata. Useful for populating chain selectors or validating chain IDs before making other calls.NFTs
Look up individual NFTs by reference or unique ID, with support for batch fetching.Swap & Bridge
Quotes for token swaps and cross-chain bridges, routed across DEXs and bridge protocols. First check which tokens are available for a route, then request offers.Gas Prices
Current gas price estimates across all supported chains. Useful for displaying fee estimates or optimizing transaction timing.DApps
Metadata for decentralized applications - names, icons, and categories. DApp info is also embedded in position and transaction responses to provide context.Subscriptions (Webhooks)
Push-based notifications for wallet activity - no polling required. Create subscriptions, manage which wallets and chains to monitor, and update webhook URLs.Response structure
Every response follows a consistent JSON:API format:Resource IDs
Every resource carries anid. Treat these as opaque strings: match them, store them, pass them back, but don’t parse them or derive meaning from their shape. Some are hashes, some are chain slugs, some are composite - and the format of any of them may change without that being a breaking change.
- Don’t reconstruct an ID client-side. To find a token by chain and contract address, call get fungible asset by implementation rather than assembling an ID yourself.
- Don’t use an ID as a stable primary key across resources. Position IDs in particular are derived from wallet, chain, and protocol context, so the same token held in two places has two different position IDs.
filter[chain_ids] and read from the chains endpoint.
Next steps
Pagination & filtering
Paginate results and apply filters.
Error handling
Error codes and how to handle them.
Rate limits
Request limits and how to stay within them.