---
title: "Get Reload Settings"
method: GET
path: "/api/v1/billing/reloads"
tags: ["billing"]
---

# Get Reload Settings

`GET /api/v1/billing/reloads`

The reload bundles, automatic reload settings and recent attempts.

Readable by every member, so the billing page can show reload state to
people who cannot change it. Every route that changes or charges is
admin-only.

## Response `200`

Successful Response

- ReloadSettingsResponse — What the billing page needs to show and change reloads.
  - `bundles_usd` string[], required
  - `can_purchase` boolean, required
  - `confirmable_attempt_id` string, uuid, nullable, required
  - `automatic` AutomaticReloadView, required — A workspace's automatic reload, with the platform terms it runs under. ``threshold_usd`` and ``monthly_cap_usd`` are the workspace's own choices. ``max_monthly_cap_usd`` is MAIA's ceiling: a higher cap cannot be saved, and a saved cap above a later-lowered ceiling is charged against the ceiling. ``disabled_reason`` names the one thing stopping automatic reload from charging, whether or not ``enabled`` is still true. Only the payment reasons are stored pauses an admin clears by turning reload back on. The rest are derived and clear by themselves: a reactivated subscription, or staff restoring a bundle or maximum, resumes a reload that was never turned off.
    - `enabled` boolean, required
    - `offered` boolean, required
    - `bundle_usd` string, nullable, required
    - `threshold_usd` string, nullable, required
    - `monthly_cap_usd` string, nullable, required
    - `max_monthly_cap_usd` string, nullable, required
    - `spent_this_period_usd` string, required
    - `period_end` string, date, nullable, required
    - `disabled_reason` 'subscription_cancel_requested' | 'payment_failed' | 'authentication_required' | 'no_saved_payment_method' | 'no_paid_plan' | 'subscription_inactive' | 'not_offered' | 'bundle_withdrawn' | 'cap_below_bundle', required — Why a workspace's automatic reload will not charge, as its admins see it. The stored pauses, plus the conditions that stop an enabled reload without anyone turning it off: a pending cancel, a lapsed subscription, and terms staff changed after the workspace saved its own.
  - `latest_attempts` ReloadAttemptView[], required
    - `id` string, uuid, required
    - `trigger` 'manual' | 'automatic', required — Who started a reload.
    - `status` 'pending' | 'requires_action' | 'succeeded' | 'failed' | 'canceled', required — Where one attempt stands, as read back from its PaymentIntent.
    - `amount_usd` string, required
    - `failure_code` 'authentication_required' | 'card_declined' | 'no_saved_payment_method' | 'not_charged' | 'payment_failed', required — Why an attempt ended without collecting, in customer-actionable terms.
    - `created_at` string, date-time, required
    - `resolved_at` string, date-time, nullable, required

## Changes

- **2026-09-19** `924eeadc29ad` — 1 info
  - added the required property `confirmable_attempt_id` to the response with the `200` status
- **2026-09-16** `95495ef535bc` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/maia-analytics/apis/maia-api/changes/api/v1/billing/reloads/get.md)

---

[API](https://skmtc.dev/maia-analytics/apis/maia-api.md) · [All operations](https://skmtc.dev/maia-analytics/apis/maia-api/llms.txt) · [OpenAPI document](https://skmtc.dev/maia-analytics/apis/maia-api/revisions/924eeadc29ad?raw)
