Skip to navigation

Get portfolio

View as MarkdownOpen in Claude

The address and balance of every asset your api client is enabled for, in one call — what a portfolio screen needs instead of one /addresses call plus one /balance per asset. Takes no assetId.

One unavailable asset never fails the call: a balance that cannot be read comes back "0", and every other asset is still returned. So a "0" here is not proof the wallet is empty — confirm with /balance before acting on it. An asset with an empty address is on a chain that was unavailable when the user was created; backfill it with /extend.

Authentication

AuthorizationBearer

A 15-minute token from /auth. Required on every endpoint except /auth.

Headers

X-Request-IdstringOptional

Correlation id. Generated if omitted, echoed on every response, and written to the audit log. /send is the exception — there it is required, and it doubles as the idempotency key.

X-USER-IDstringOptionalformat: "^[0-9a-fA-F]{24}$"

Optional. When present it overrides any userId in the body.

Request

This endpoint expects an object.
userIdstringRequiredformat: "^[0-9a-fA-F]{24}$"

24-character hex id, returned by /create.

Response

OK
resultobject
requestIdstring

Echo of the inbound X-Request-Id, or a generated one.

Errors

400
Bad Request Error
401
Unauthorized Error
404
Not Found Error