---
title: "Set Project Budget"
method: PATCH
path: "/api/app-auto-gtm/projects/{project_id}/budget"
tags: ["AppAutoGtm"]
---

# Set Project Budget

`PATCH /api/app-auto-gtm/projects/{project_id}/budget`

Set the project budget cap and even-spread the change across campaigns.

## Path parameters

- `project_id` integer, required

## Cookies

- `ex_access` string, nullable
- `ex_org` string, nullable

## Request body

- SetProjectBudgetRequest — Body for PATCH /projects/{id}/budget — set the project budget cap. ``ge=0``: $0 is the explicit "pause everything" anchor (issue: user wants a one-knob off switch). At $0 every per-campaign allocation zeroes out, so the daily-limit gate in ``billing`` blocks all cold sends while campaigns keep their setup (status unchanged — paused, not deleted). The slider enforces the 0 ↔ positive-min stepping (no $1..min-1); the server stays permissive at >= 0.
  - `daily_budget_usd` integer, required
  - `surface` string, nullable

## Response `200`

Successful Response

- ProjectBudgetResponse — The project's daily-budget anchor — the single number the dashboard bar shows and the slider sets. Per-campaign allocations are machine-managed and deliberately not surfaced; the old heavy per-campaign budget/spend/stats read was dropped (it only fed a now-removed page + a tiny "spent today" caption).
  - `project_id` integer, required
  - `daily_budget_usd` integer, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/explee/apis/explee-api.md) · [All operations](https://skmtc.dev/explee/apis/explee-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/explee/explee-api/revisions/f169bc6e9447/schema)
