---
title: "Update limits, rates, retention and admission policy"
method: PATCH
path: "/api/control/project"
tags: ["Durable control"]
---

# Update limits, rates, retention and admission policy

`PATCH /api/control/project`

## Request

- Base URL: `https://oyabrowser.com`
- URL: `https://oyabrowser.com/api/control/project`
- Auth: HTTP bearer

Requires an administrator credential.

## Request body

- object
  - `maxConcurrent` integer, nullable
  - `budgetUsd` number, nullable
  - `rates` object
  - `policy` object
  - `recordingDays` integer
  - `auditDays` integer: A value below the server's audit retention floor (365 days unless OYA_AUDIT_RETENTION_FLOOR_DAYS says otherwise) is raised to it.
  - `llm` object, nullable: Model providers that may see page text and screenshots. Absent or null allows every provider; an empty list allows none. An agent run on a refused provider fails with 403 llm_not_allowed before any page content is sent, and is audited as llm.refused.
    - `allow` string[], required

## Response `200`

Success

- object

## Other responses

- `401`: Invalid or revoked credential
- `403`: Insufficient role
- `409`: Lifecycle, idempotency, or control lease conflict
- `503`: Storage or session owner unavailable

---

[API](https://skmtc.dev/oyabrowser/apis/oya-browser-api.md) · [All operations](https://skmtc.dev/oyabrowser/apis/oya-browser-api/llms.txt) · [OpenAPI document](https://skmtc.dev/oyabrowser/apis/oya-browser-api/revisions/748c4b34f8e4?raw)
