Skip to main content
v1 is deprecated. It stays available for existing integrations, with additive Fiskil balance freshness metadata. It will be sunset no earlier than 12 months after v2 reaches general availability (announced with Deprecation / Sunset headers). Build new work on API v2; see migrating from v1.
The REST API is in beta. This endpoint’s response shape may change.
Returns balances for the specified accounts. Fiskil balances are fresh for 4 hours; during transient failures or cooldowns, the last successful live observation may be served for up to 24 hours. Plaid balances are not cached; they reflect Plaid’s last successful update of the connection, typically about daily. Balance data is never written to Redbark’s primary database or logs.

Request

Headers

Trialing customers retain full API access, including brokerage endpoints, regardless of trial plan.

Query parameters

Use the List Accounts endpoint to get account IDs. Mixing a brokerage accountId into the request fails the entire request, not per-account. To tell banking and brokerage accounts apart, join each account’s connectionId to List Connections and check the connection’s category; route brokerage IDs to /v1/holdings.

Response

See Caching for provider-specific freshness, fallback, purge, and opt-out behaviour. Fiskil’s additive freshness fields prevent cached balances from being mistaken for new live observations. Results are not guaranteed to match the input order; join by accountId.

Balance object

When Redbark caching is disabled, Fiskil live balance attempts are limited to once per account every 15 minutes. An account inside that limit comes back in the list with freshness: "unavailable", null balances and retryAfterSec, the seconds until a live read is allowed again. The same applies when the account was not reached before the request ran out of time, or its connection is in a cooldown, deferred or temporarily unreachable. A call that runs out of time returns the accounts it did not reach this way, so merge results across calls. The other accounts in the call are returned normally. This endpoint never returns balance_refresh_limited.
Balance values are strings to preserve decimal precision. Parse them as decimals in your application. When the provider errors for a given account, currentBalance and availableBalance come back null; currency still resolves to the account’s stored currency where we have one. Parsers must handle null balances.

Error responses

Errors use the standard envelope { "error": { "message": string, "code"?: string, "details"?: string[] } }. The optional code field is set for the structured cases below — clients should branch on code rather than parsing message. Example error body:

Examples

Basic request

Python

JavaScript