---
title: "Set the organization's spend budget"
method: PUT
path: "/organizations/{organizationId}/spend-budget"
tags: ["Catalog"]
---

# Set the organization's spend budget

`PUT /organizations/{organizationId}/spend-budget`

Set or replace the ceiling. **Requires organization owner or admin.**

When the budget is reached, new MCPJam-billed work — chat turns, eval runs, computer starts — is refused for the whole organization until the window resets or an owner or admin raises the cap. Work already in flight finishes, and running computers keep going until they hibernate.

`capUsd` is stored as whole credits (1 credit = 1 cent), so it is rounded to the cent; the response reports what was kept. Changing the cap mid-window does not reset the spend counter, and does not re-announce a threshold the organization was already told about.

## Request body

- SpendBudgetInput
  - `capUsd` number, required — The ceiling in USD, rounded to the cent.
  - `alertPercents` integer[] — Whole percents of the cap to notify at. Defaults to `[80]`. 100 is not accepted: reaching the cap always notifies, so listing it would show the same threshold twice.

## Response `200`

The stored spend budget.

- SpendBudget — An organization's ceiling on MCPJam-billed spend for the current billing window. Amounts appear in both USD and credits (1 credit = 1 cent); the credit figures are what the ledger actually stores.
  - `capUsd` number, nullable, required — The ceiling in USD. `null` means uncapped.
  - `capCredits` integer, nullable, required — The same ceiling as the ledger stores it.
  - `alertPercents` integer[], required — Whole percents of the cap that notify owners and admins. Reaching the cap always notifies, whether or not 100 is listed.
  - `spentUsd` number, required — MCPJam-billed spend so far in this window, in USD.
  - `spentCredits` integer, required — The same spend as the ledger counted it.
  - `windowStartAt` integer, required — Start of the current billing window (epoch ms). Team and enterprise organizations run on their own subscription cycle; everyone else on the UTC month.
  - `windowEndsAt` integer, required — When the window resets and the counter returns to zero (epoch ms).
  - `alertedPercents` integer[], required — Thresholds already announced this window. Each fires once per window.
  - `capReachedAt` integer, nullable, required — When the cap was reached this window, or `null`.
  - `updatedAt` integer, nullable, required — When the budget was last changed (epoch ms).
  - `minCapUsd` number, required — The smallest budget the platform accepts.
  - `maxCapUsd` number, required — The largest budget the platform accepts.
  - `supported` boolean, required — False for a personal organization, which cannot have a budget.

## Other responses

- `401` — Missing, invalid, revoked, or orphaned key (`UNAUTHORIZED`) — or the **target MCP server** needs an OAuth grant (`OAUTH_REQUIRED`), which is a property of the server, not your key.
- `403` — Key is valid but not allowed to do this.
- `404` — Unknown project, server, or resource.
- `429` — Per-key rate limit exceeded (60 requests/minute sustained, bursts up to 10). Honor `Retry-After` and back off with jitter.
- `500` — Something failed on MCPJam's side.

## Changes

- **2026-09-07** `417b6d81e434` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/mcpjam/apis/mcpjam-api/changes/organizations/:organizationId/spend-budget/put.md)

---

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