POST to /accounts/balance/get with client_id, secret, and access_token; optionally pass options.account_ids to limit the response to specific accounts
Unlike /accounts/get which returns cached balances, /accounts/balance/get always performs a real-time data fetch from the institution; expect p50 latency of ~3 seconds and p95 of ~11 seconds
The response accounts array includes balances.available (funds available for immediate use) and balances.current (posted balance) for each account
Use options.min_last_updated_datetime to request a balance that was refreshed no earlier than a given ISO 8601 timestamp; Plaid returns an error if the institution cannot satisfy the freshness requirement
Reserve this endpoint for use cases that require real-time balances (e.g., pre-debit balance checks, payment risk decisioning); use /accounts/get for display-only use cases to reduce latency
Handle PRODUCT_NOT_READY and LAST_UPDATED_DATETIME_OUT_OF_RANGE errors gracefully; some institutions cache balances and cannot guarantee real-time data
Known gotchas
High p95 latency (~11s) makes this endpoint unsuitable for synchronous checkout flows; call it asynchronously or before the critical user interaction
balances.available may be null for some account types (e.g., credit accounts that do not expose an available credit line); always null-check before using
Repeated high-frequency polling of /accounts/balance/get may trigger Plaid rate limits; Plaid recommends at most one call per institution session, not continuous polling
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp