---
title: "Get budget alert settings"
method: GET
path: "/billing/budget-alert"
tags: ["Billing"]
---

# Get budget alert settings

`GET /billing/budget-alert`

## Request

- Base URL: `https://api.mnemom.ai/v1`
- URL: `https://api.mnemom.ai/v1/billing/budget-alert`
- Auth: HTTP bearer

## Response `200`

Budget alert settings

- object
  - `threshold_cents` integer, nullable: Legacy single-scalar field, preserved for back-compat clients: the lowest configured `thresholds[].value_cents`, or `null` if no thresholds are configured.
  - `last_alert_sent_at` string, date-time, nullable
  - `thresholds` BudgetAlertThreshold[]: DEPRECATED, DECLARED-BUT-NOT-HONORED (MNE-8422, BG-8). The ordered multi-threshold set was fired only by the usage-alerts cron against PLAN overage cost, a subscription/plan surface retired with the legacy plan model; nothing fires these levels anymore. The field still round-trips for contract stability, but `multi_threshold_deprecated` is `true` to signal it is inert. Use the single scalar `threshold_cents` (the surviving low-balance alert) instead.
    - `level` 'warning' | 'urgent' | 'depleted', required: Severity level. Must rise monotonically with `value_cents` across a configured set.
    - `value_cents` integer, required: Normalized threshold value in integer cents.
    - `message` string: Optional operator-authored message (e.g. an explicit "you are about to lose Mnemom protection features" notice).
  - `fired_levels` string[]: DEPRECATED (MNE-8422, BG-8): per-level dedup state for the retired multi-threshold set. No longer updated now that nothing fires the multi-threshold levels.
  - `multi_threshold_deprecated` boolean: Always `true` (MNE-8422, BG-8): the multi-threshold set (`thresholds`) is accepted for contract stability but is no longer honored — its emitter was retired with the legacy plan model. The single scalar `threshold_cents` low-balance alert remains the only active budget alert.

## Other responses

- `400`: Bad request
- `401`: Authentication required
- `403`: Forbidden
- `404`: Resource not found
- `429`: Rate-limit exceeded. The global per-IP limiter (100 requests/minute, applied to every `/v1/*` route) rejected this request. Back off until the window resets — `Retry-After` carries the cooldown in seconds and `X-RateLimit-Reset` the absolute reset time.
- `500`: Server error — request was well-formed but the server failed to fulfill it. Typically a downstream dependency (DB / RPC / external API) returned an unexpected error.

---

[API](https://skmtc.dev/mnemom/apis/mnemom-api.md) · [All operations](https://skmtc.dev/mnemom/apis/mnemom-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mnemom/apis/mnemom-api/revisions/274b7a6ea182?raw)
