curl --request GET \
--url https://api.octav.fi/v1/virtual-users/portfolio \
--header 'Authorization: Bearer <token>'[
{
"address": "<string>",
"networth": "<string>",
"cashBalance": "<string>",
"dailyIncome": "<string>",
"dailyExpense": "<string>",
"fees": "<string>",
"feesFiat": "<string>",
"lastUpdated": "<string>",
"assetByProtocols": {},
"chains": {}
}
]Fetch portfolios for one or more virtual users. Works identically to GET /portfolio but uses virtual user addresses. Requires a Pro subscription.
Cost: 1 credit per virtual user address
Get your API key: Dev Portal
curl --request GET \
--url https://api.octav.fi/v1/virtual-users/portfolio \
--header 'Authorization: Bearer <token>'[
{
"address": "<string>",
"networth": "<string>",
"cashBalance": "<string>",
"dailyIncome": "<string>",
"dailyExpense": "<string>",
"fees": "<string>",
"feesFiat": "<string>",
"lastUpdated": "<string>",
"assetByProtocols": {},
"chains": {}
}
]Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Comma-separated virtual user addresses (from the list endpoint). Format: virtual:
Return a single reduced portfolio across all virtual users
Wait for fresh data if cache is stale
Include image URLs for chains, assets, and protocols
Include blockchain explorer URLs for assets and transactions
Successful response — same schema as GET /portfolio
The virtual user address (virtual:
Total portfolio net worth in USD
Available cash balance
Income generated today
Expenses incurred today
Total fees in native asset
Total fees in USD
Last sync timestamp (milliseconds since epoch)
Assets organized by protocol
Assets organized by blockchain
Was this page helpful?