Use this file to discover all available pages before exploring further.
Subscribe to real-time balance ledger entries (deposits, withdrawals, fills, fees, adjustments) using gRPC streaming. The stream first replays any entries since resume_time, then pushes new entries as they happen.For paginated historical queries and CSV exports of the same data, see the Balance Ledger REST API.
This stream is distinct from Funding Transaction Streaming: that stream tracks transaction state changes (PENDING → COMPLETED, etc.) for deposits/withdrawals; this stream tracks the balance impact of every cash event in the ledger.
ISO currency code (e.g., USD). Empty = all currencies for the account.
entry_types
list[LedgerEntryType]
No
Filter by one or more allowlisted entry types. Empty = all allowlisted types. Suppressed types are filtered server-side regardless.
resume_time
Timestamp
No
Replay entries with update_time >= resume_time before switching to live push. Clamped upstream to 2026-05-01T00:00:00Z.
Cross-firm access is rejected. The account must belong to the firm in the JWT firm_id claim. Cross-firm subscriptions return PERMISSION_DENIED immediately.
Replay phase. On connect, the server first delivers entries with update_time >= resume_time (clamped to the 2026-05-01 floor). If resume_time is omitted, only live entries are delivered.
Live phase. After the replay drains, the server pushes new entries as they are committed.
Suppressed entry types are filtered server-side and never reach clients.
Empty entries messages are heartbeats and should be passed through (do not treat as termination).
Persist the most recent update_time so reconnections resume without gaps:
if streamer.last_update_time is not None: streamer.stream_balance_ledger( account="firms/ISV-Alice/accounts/alice-trading", currency="USD", resume_time=streamer.last_update_time, )
resume_time is clamped upstream to 2026-05-01T00:00:00Z; passing an earlier value is allowed but only entries from the floor forward are replayed.