---
title: "PUT /projects/{projectId}/agent-budget"
method: PUT
path: "/projects/{projectId}/agent-budget"
---

# PUT /projects/{projectId}/agent-budget

`PUT /projects/{projectId}/agent-budget`

## Request

- Base URL: `https://api.caveman.so/api/v1`
- URL: `https://api.caveman.so/api/v1/projects/{projectId}/agent-budget`
- Auth: one of:
  - OAuth 2
    - Authorization code: `/api/v1/oauth/authorize`
    - Token URL: `/api/v1/oauth/token` scopes: `autopilot:manage`
  - HTTP bearer
  - API key in cookie `cave_access`
  - API key in cookie `__Secure-cave_identity.session_token`

PUT /api/v1/projects/{projectId}/agent-budget on the Caveman Cloud control plane. Requires the autopilot:manage scope. Not exposed to autonomous agents: Native user control of shared agent authority and execution. Workload credentials and scoped agent connections cannot expand grants, budgets or recursively admit runs. Native user endpoint. Scoped agent sessions and workload credentials cannot call this operation. Organization budget edits additionally require billing:write. Interactive grants bind current membership and role; input, audit, run and outbox admission commit atomically. Reuse the same request identity, input and deadline on retries.

## Request body

- AgentBudgetConfiguration
  - `kind` 'organization' | 'project' | 'repository', required
  - `binding_id` string
  - `limit_micros` integer, required

## Response `200`

Native operation persisted.

- AgentBudgetConfiguration
  - `kind` 'organization' | 'project' | 'repository', required
  - `binding_id` string
  - `limit_micros` integer, required

## Other responses

- `400`: Invalid or missing explicit configuration/input.
- `401`: Authentication required.
- `403`: Native user lacks authority.
- `404`: Requested resource or current authority unavailable.
- `409`: Revision/input conflict or budget unavailable.
- `503`: Shared agent execution unavailable.
- `4XX`: Structured failure. `error.code` is stable; `error.request_id` is echoed in the x-cave-request-id header.
- `5XX`: Structured failure. `error.code` is stable; `error.request_id` is echoed in the x-cave-request-id header.

---

[API](https://skmtc.dev/caveman/apis/caveman-cloud-api.md) - [All operations](https://skmtc.dev/caveman/apis/caveman-cloud-api/llms.txt) - [OpenAPI document](https://skmtc.dev/caveman/apis/caveman-cloud-api/revisions/508312d01cfc?raw)
