---
title: "Update Organization Spend Ceiling"
method: PATCH
path: "/v1/organizations/me/spend-ceilings/{ceiling_id}"
tags: ["organization-budgets"]
---

# Update Organization Spend Ceiling

`PATCH /v1/organizations/me/spend-ceilings/{ceiling_id}`

Relabel a ceiling, or point it at a different budget of this organization's.

The scope and the provider narrowing are not editable: changing either would
move the ceiling to a different identity while carrying its spend, which is a
delete and a create.

## Path parameters

- `ceiling_id` string, required

## Request body

- OrganizationScopedBudgetUpdate — Relabel a ceiling, or point it at a different budget of this organization's. The scope and the provider narrowing are not editable, for the reason ``PATCH /v1/scoped-budgets/{id}`` gives: changing either moves the ceiling to a different identity while carrying its spend, which is a delete and a create, not an update.
  - `budget_id` string, nullable
  - `name` string, nullable

## Response `200`

Successful Response

- OrganizationScopedBudgetPublic — One ceiling inside the organization, and the figures it enforces. The limit and the period are read through the budget rather than stored here, and carried on the wire so a page can render a ceiling without fetching every budget to resolve one id. Same reasoning as ``ScopedBudgetResponse``, whose shape this deliberately mirrors.
  - `budget_duration_sec` integer, nullable, required
  - `budget_id` string, required
  - `created_at` string, required
  - `current_requests` integer, required
  - `current_spend` number, required
  - `current_tokens` integer, required
  - `id` string, required
  - `manageable` boolean, required
  - `max_budget` number, nullable, required
  - `name` string, nullable, required
  - `period_end` string, nullable, required
  - `period_start` string, nullable, required
  - `provider_key_id` string, nullable, required
  - `request_limit` integer, nullable, required
  - `reserved_requests` integer, required
  - `reserved_spend` number, required
  - `reserved_tokens` integer, required
  - `reset_alignment` string, nullable, required
  - `scope_id` string, required
  - `scope_type` string, required
  - `token_limit` integer, nullable, required
  - `updated_at` string, required

## Other responses

- `422` — Validation Error

## Changes

- **2026-09-02** `1be78e895028` — 6 info
  - added the required property `current_requests` to the response with the `200` status
  - added the required property `current_tokens` to the response with the `200` status
  - added the required property `request_limit` to the response with the `200` status
  - added the required property `reserved_requests` to the response with the `200` status
  - …2 more
- **2026-08-31** `1a5cf829e593` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/mozilla-ai/apis/otari/changes/v1/organizations/me/spend-ceilings/:ceiling_id/patch.md)

---

[API](https://skmtc.dev/mozilla-ai/apis/otari.md) · [All operations](https://skmtc.dev/mozilla-ai/apis/otari/llms.txt) · [OpenAPI document](https://skmtc.dev/mozilla-ai/apis/otari/revisions/80c117c36f36?raw)
