---
title: "Update Budget"
method: PUT
path: "/api/budgets/{budget_id}"
tags: ["Budgets"]
---

# Update Budget

`PUT /api/budgets/{budget_id}`

## Request

- Base URL: `https://api.earmarkiq.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.earmarkiq.app/api/budgets/{budget_id}`
- Auth: HTTP bearer

Update a budget's limit or period.

## Path parameters

- `budget_id` string, uuid, required

## Request body

- BudgetUpdate
  - `base_updated_at` string, date-time, nullable
  - `monthly_limit` union
    - number
    - string
  - `period` 'weekly' | 'monthly' | 'annual' | 'custom'
  - `period_start_date` string, date, nullable
  - `period_end_date` string, date, nullable
  - `shared_with_partner` boolean, nullable
  - `rollover_enabled` boolean, nullable
  - `budget_type` string, nullable
  - `income_percentage` number, nullable
  - `payday_cycle` boolean, nullable

## Response `200`

Successful Response

- BudgetResponse
  - `id` string, required
  - `category` string, required
  - `monthly_limit` number, required
  - `period` string, required
  - `current_spend` number, required
  - `remaining` number, required
  - `utilisation_pct` number, required
  - `period_start` string, required
  - `period_start_date` string, nullable
  - `period_end_date` string, nullable
  - `shared_with_partner` boolean
  - `partner_spend` number
  - `budget_type` string
  - `dismissed` boolean
  - `rollover_enabled` boolean
  - `rollover_amount` number
  - `limit_mode` string
  - `income_percentage` number, nullable
  - `payday_cycle` boolean
  - `effective_limit` number
  - `pot_category` string
  - `created_at` string, required
  - `updated_at` string, required

## Other responses

- `422`: Validation Error

---

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