> For the complete documentation index, see [llms.txt](https://docs.duplocloud.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.duplocloud.com/docs/armor/access-control/quotas.md).

# Quotas

Quotas let administrators set cost limits on LLM usage. A quota definition sets the limit and period, and a quota mapping applies it to a specific context — at the ticket level, workspace level, or across the entire platform. When a limit is reached, the agent stops processing and reports the overage. All limits reset at UTC midnight.

***

## Quota Definitions

Go to **AI Admin → Access Control → Quota → Quota Definition**. This page lists all quota policies, showing their name, period type, and USD limit.

![](/files/3ApQ3zKRPxQSAGDiCJXN)

### Add a Quota Definition

Click **+ Add**. Fill in the fields:

* **Name** — a unique identifier for the quota policy
* **Period Type** — how frequently the limit resets (e.g. Daily)
* **Limit (USD)** — the maximum spend allowed within the period

Click **Create**.

![](/files/Ppy3HfbAhU3H9UBgm8Uq)

***

## Quota Mappings

Click the **Quota Mapping** tab. Mappings bind a quota definition to a context and an Apply to value, determining which activity the limit applies to.

![](/files/yOwdhpN0ghghtdSKJdFI)

***

## Add a Quota Mapping

Click **+ Add**. Fill in the fields:

* **Name** — a label for this mapping
* **Quota** — the quota definition to apply
* **Context** — whether this applies at the **Workspace** or **System** level
* **Target Workspace(s)** — one or more workspaces this mapping applies to (only shown when Context is Workspace — you can select multiple)
* **Apply to** — what the limit tracks. The available options depend on Context:

| Context   | Apply to options                  | Meaning                                                            |
| --------- | --------------------------------- | ------------------------------------------------------------------ |
| System    | All Workspaces And Users          | Every workspace and every user, platform-wide                      |
| System    | All Workspaces                    | Every workspace, platform-wide                                     |
| System    | All Users                         | Every user, regardless of workspace                                |
| Workspace | Above Selected Workspaces         | Shared limit across all activity in the selected workspace(s)      |
| Workspace | Per User In Selected Workspaces   | A separate limit for each user, within the selected workspace(s)   |
| Workspace | Per Ticket In Selected Workspaces | A separate limit for each ticket, within the selected workspace(s) |

### Ticket Quota

When **Apply to** is set to **Per Ticket In Selected Workspaces**, the quota limit applies per individual ticket. Each ticket has its own spend counter — one ticket reaching the limit does not affect other tickets in the same workspace.

![](/files/oCNR9ODdvYLnwYTbC93J)

To verify, create a ticket in the target workspace and run a request.

![](/files/56HWo9K9Q5S4wJ5v5gjg)

Once the ticket's cumulative cost hits the defined limit, the agent stops and returns an error showing the ticket ID, the amount used, and when the limit resets.

![](/files/UHvEcIJZFXnD0HzfU7ry)

Because the quota is scoped to the individual ticket, a new ticket created in the same workspace starts with a fresh counter and continues working normally.

![](/files/o62c2QS60Jqs3VrmTZpr)

### Workspace Quota

When **Apply to** is set to **Above Selected Workspaces**, the quota limit applies to all activity within the selected workspace(s). The cumulative spend across all tickets in a given workspace counts toward that workspace's shared limit.

![](/files/8wvm6NzfKqgi6lrOxrY8)

Create a ticket and run a request in the workspace.

![](/files/AqgeO3TunQtRqvhmww2U)

Once the workspace's cumulative spend reaches the limit, the agent blocks all new requests within that workspace, reporting the workspace name, total used, and reset time.

![](/files/Z2Fq0BBhdbIDRo1FzsMp)

Switching to a different workspace bypasses the limit entirely — the quota is scoped to the specific workspace it was mapped to, so other workspaces are unaffected.

![](/files/oSqEnMK2mMrTRH5UjEgG)

A ticket in the new workspace runs successfully with its own independent cost counter.

![](/files/gCJHQuKGSunJsCJS8HLn)

### User Quota

Set **Apply to** to **Per User In Selected Workspaces** (Context: Workspace) or **All Users** (Context: System) to give each user their own spend counter, independent of which ticket or workspace they're working in. One user hitting their limit doesn't affect any other user — including other users active in the same workspace or ticket.

### System Quota

When **Context** is set to **System**, the quota applies across the entire platform rather than specific workspaces. Set **Apply to** to **All Workspaces And Users** to enforce a single limit globally, or **All Workspaces**/**All Users** to cap just one of those dimensions platform-wide.

![](/files/yzepJaEsluZEbOseRatJ)

Once a system-wide limit is reached, all matching agent requests across every workspace are blocked, regardless of which workspace, user, or ticket they originate from.

![](/files/pQ0PjXAVjCeqRgJsVYBL)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.duplocloud.com/docs/armor/access-control/quotas.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
