Request contract
GET /api/v1/portfolios/{portfolioId}/balances. Read the latest normalized asset balances for one connected exchange account. Send the personal token in X-API-Key and keep it outside browser code and public logs.
Response and metering
Each item identifies the asset, wallet type and available or locked quantities without exposing the provider's transport model. Successful metered responses publish X-Credit-Cost and X-Credits-Remaining so usage can be recorded without another request.
Production behavior
The endpoint reads stored synchronized state. Trigger synchronization separately when the product requires fresher provider data. Handle application/problem+json errors by stable code, preserve the correlation ID and never retry a mutation unless the workflow is idempotent.