---
title: "PUT /ai/limits/projects/{project_id}"
method: PUT
path: "/ai/limits/projects/{project_id}"
tags: ["AI Gateway Limits"]
---

# PUT /ai/limits/projects/{project_id}

`PUT /ai/limits/projects/{project_id}`

## Request

- Base URL: `/api` (relative, and the document was published on a file host, not at the API’s origin)
- URL: `/api/ai/limits/projects/{project_id}`
- Auth: HTTP bearer

## Path parameters

- `project_id` integer, required

## Request body

- LimitSettingsBody: Limits as stored for one scope. `null` inherits from the next level (project → instance → built-in); `0` means unlimited.
  - `max_cost_per_month_microcents` integer, nullable: Operator-funded spend per UTC calendar month, in microcents (1/10000 of a cent; 1 USD = 1,000,000 microcents)
  - `max_requests_per_minute` integer, nullable: Requests per rolling minute

## Response `200`

Project limits replaced, as stored

- LimitSettingsBody: Limits as stored for one scope. `null` inherits from the next level (project → instance → built-in); `0` means unlimited.
  - `max_cost_per_month_microcents` integer, nullable: Operator-funded spend per UTC calendar month, in microcents (1/10000 of a cent; 1 USD = 1,000,000 microcents)
  - `max_requests_per_minute` integer, nullable: Requests per rolling minute

## Other responses

- `400`: Invalid limit
- `401`: Unauthorized
- `403`: Insufficient permissions
- `404`: Project not found

## Changes

> 81 revisions in range; 1 not diffed.

- **2026-10-16** `6e7c89bf1ab4`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/gotempsh/apis/temps/changes/ai/limits/projects/:project_id/put.md)

---

[API](https://skmtc.dev/gotempsh/apis/temps.md) · [All operations](https://skmtc.dev/gotempsh/apis/temps/llms.txt) · [OpenAPI document](https://skmtc.dev/gotempsh/apis/temps/revisions/ab6d5d19e930?raw)
