---
title: "Get Billing Balance"
method: GET
path: "/api/app-auto-gtm/billing/balance"
tags: ["AppAutoGtm"]
---

# Get Billing Balance

`GET /api/app-auto-gtm/billing/balance`

Org wallet balance + warning thresholds for the inbox banner.

Sums credits across all the org's active (non-deleted, non-expired)
wallet slots — the same set ``billing.precheck_sync`` consults
when gating sends. Threshold semantics live here so the UI doesn't
have to encode them: ``is_empty`` mirrors the precheck ``no_funds``
rejection (balance < 1 email's cost), ``is_low`` is a soft warning.

## Cookies

- `ex_access` string, nullable
- `ex_org` string, nullable

## Response `200`

Successful Response

- BillingBalanceResponse — Org wallet balance snapshot for the inbox banner + composer gate. `balance_credits` is the raw wallet figure (1 credit = $0.01); the derived USD value is convenient for UI rendering. The two booleans encode the thresholds the UI cares about — kept on the server so the threshold definition stays a single source of truth: - `is_empty`: balance below the per-email cost. The composer pre-send precheck will return 402 in this state. The inbox banner renders red ("wallet empty — replies cannot send"). - `is_low`: balance below a buffer threshold (~16 emails). The inbox banner renders yellow ("low balance, top up soon"). Always true when `is_empty` is true. Excludes postpaid headroom — that lives on :class:`PostpaidStateResponse` since it's a credit limit, not money in the user's prepaid wallet.
  - `balance_usd` number, required
  - `balance_credits` number, required
  - `is_empty` boolean, required
  - `is_low` boolean, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/explee/apis/explee-api.md) · [All operations](https://skmtc.dev/explee/apis/explee-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/explee/explee-api/revisions/aec0744a2cd1/schema)
