---
title: "Update Budget"
method: PATCH
path: "/v1/budgets/{budget_id}"
tags: ["budgets"]
---

# Update Budget

`PATCH /v1/budgets/{budget_id}`

Update a budget.

## Path parameters

- `budget_id` string, required

## Request body

- UpdateBudgetRequest — Request model for updating a budget.
  - `budget_duration_sec` integer, nullable
  - `max_budget` number, nullable
  - `name` string, nullable
  - `reset_alignment` 'calendar_day' | 'calendar_week' | 'calendar_month', nullable

## Response `200`

Successful Response

- BudgetResponse — Response model for budget information. ``max_budget`` is the per-user spending limit, and multiple users can share one budget, so the usage rollup is an aggregate over the users assigned to this budget: how many there are and their combined ``spend`` / ``reserved``. Assigning users to a budget is done through the users API (dashboard support lands with user management), so a fresh gateway reports zeros here.
  - `budget_duration_sec` integer, nullable, required
  - `budget_id` string, required
  - `created_at` string, required
  - `max_budget` number, nullable, required
  - `name` string, nullable, required
  - `reset_alignment` string, nullable, required
  - `total_reserved` number
  - `total_spend` number
  - `updated_at` string, required
  - `user_count` integer

## Other responses

- `422` — Validation Error

## Changes

- **2026-08-24** `961e73dbaf8b` — 1 warning
  - the `max_budget/anyOf[subschema #1]/` request property's max was set to `999999999999.00`
- **2026-08-21** `e0dee1efa501` — 1 warning, 2 info
  - the `max_budget/anyOf[subschema #1]/` request property's max was set to `999999999999.00`
  - added the new optional request property `reset_alignment`
  - added the required property `reset_alignment` to the response with the `200` status
- **2026-08-21** `2f89238cc674` — 1 breaking, 1 warning
  - removed the required property `reset_alignment` from the response with the `200` status
  - removed the request property `reset_alignment`
- **2026-08-21** `875cef5dd6a8` — 1 warning, 2 info
  - the `max_budget/anyOf[subschema #1]/` request property's max was set to `999999999999.00`
  - added the new optional request property `reset_alignment`
  - added the required property `reset_alignment` to the response with the `200` status
- **2026-07-21** `d7a89e7ed4d3` — 5 info
  - added the new optional request property `name`
  - added the optional property `total_reserved` to the response with the `200` status
  - added the optional property `total_spend` to the response with the `200` status
  - added the optional property `user_count` to the response with the `200` status
  - …1 more

[Full history](https://skmtc.dev/mozilla-ai/apis/otari/changes/v1/budgets/:budget_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-service-production.skmtc.workers.dev/v1/apis/mozilla-ai/otari/revisions/7f178e92b56c/schema)
