> ## Documentation Index
> Fetch the complete documentation index at: https://docs.altrum.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Budgets and rate limits

> Cap spend and traffic for your organization, each AI system and each key, and see every budget in one place.

Altrum works out the cost of every request from the tokens the provider reports and a price list that Altrum keeps up to date every day. A model that is not on the list has no price, so its requests are recorded with no cost and do not count against a budget, unless you set your own price for it. Budgets cap that cost, and rate limits cap traffic.

## Your own prices

When you pay a different rate (a negotiated price, a model the list does not have), an owner or admin sets it in **AI Gateway**, **Settings**, **Pricing**, with **Add a price**:

| Field | |
| - | - |
| **Name** | What the price is, for example "Negotiated rate". |
| **Model** | A model name such as `gpt-4o`, or a prefix ending in `*`, such as `gpt-4o*`, for every model that starts with it. |
| **Applies to** | **Every key**, or one key. A key's own price wins over one for every key. |
| **Provider** | **Any provider**, or one. |
| **Input**, **Output**, **Cache read** | US dollars per million tokens. Leave one empty to keep the published price for that part. Set at least one. |

The price is used for requests from then on, for chat and Responses requests, streamed or not. It changes the cost Altrum records and counts against budgets, never what your provider bills you. Costs already recorded do not change when you edit or remove a price.

## Where limits apply

| Level | Set in | Applies to |
| - | - | - |
| Organization | **AI Gateway**, **Settings**, **Limits** | All gateway traffic in your organization |
| AI system | The AI system's **AI Gateway** tab | All keys of that AI system |
| Key | **Limits** when you create or edit the key | That key only |

A request must pass every level that applies to it. Its cost counts against each of them. Owners and admins can also change any of these budgets in place on the **Budgets** page.

## Budgets

A budget is an amount in US dollars, more than 0 and up to 10,000,000, for a period: an hour, a day, a week or a month. When spending reaches the budget, further requests are refused until the period resets. A budget repeats from when it was set: every hour, every 24 hours, every 7 days or every 30 days. With calendar alignment, it resets at midnight UTC for a day, on Monday for a week and on the first of the month for a month; an hourly budget always repeats from when it was set. Each organization, AI system and key has at most one budget in the dashboard.

## See every budget

**Budgets** in the sidebar (owners, admins and Governance Leads, with the AI Gateway; owners and admins change them) shows every budget in your organization in one table: the organization, its [projects](/projects.md), each AI system, their keys, organization keys, and **Personal keys** grouped by person. Open a project or an AI system with its arrow to see what is under it. Keys without a budget fold into one line under their holder, such as **2 keys without a budget**.

| Column | |
| - | - |
| **Budget** | The amount and how often it resets. A project shows **Sum, not enforced**. |
| **Spent** | Spent in the open period, against the budget. A row without a budget shows what it spent this month. |
| **Remaining** | What is left until the reset. |
| **Resets** | When the period ends and spent starts again from zero. |
| **Projected at reset** | Where spend is heading by the reset, at the pace so far, with **Over by** when it passes the budget. |

The figures above the table:

* **Organization budget**, with what is spent against it.
* **Allocated to AI systems**: AI system budgets in the same period as the organization's, added up. AI system budgets in another period are not counted, and the figure says how many.
* **Unallocated**: what the organization budget leaves for AI systems without a budget, organization keys and personal keys.
* **Projected over**: how many budgets are heading past their amount before they reset. Project totals are not counted.

Point at a figure to see how it is worked out. **Over 80%**, **Projected over** and **No budget** narrow the table, and **Search by name** finds a row.

To be told before a budget runs out, the [Budget used and Budget heading over alerts](/alerts.md#the-rules) fire at 80% and 100%, and when spend is heading 10% past a budget, by default.

The projection assumes spending carries on at the same pace until the reset. It appears once a tenth of the period has passed, so it has something to go on.

### Change a budget in place

Owners and admins select the pencil on a row (or **Set budget** on one without), enter the amount and how often it resets, and select **Save**. **Remove budget** takes it off. The change applies to new requests within seconds, and what was spent in the open period stays. Calendar alignment and rate limits are changed where they are set, in the table under [Where limits apply](#where-limits-apply).

### Projects

A project has no budget of its own: the gateway never stops a request because of one. Its row adds up the AI systems under it that have a monthly budget: their budgets, what each has spent against its own, and their projections, so you can see a team's total. A project whose AI systems have no monthly budget shows what they spent this month. The same total appears on the project's page and in its **Cost and usage** report.

## Rate limits

A rate limit caps the number of requests, the number of tokens, or both (1 to 1,000,000,000 each), over a minute, an hour or a day. Requests over the limit are refused until the window resets. There is no default rate limit: a new organization has none until it sets one.

Separately, an organization can have at most 200 requests running at the same time. One more is refused with status 429 and the code `organization_concurrency_limit`:

```
Your organization already has 200 requests running. Wait for one to finish and try again.
```

## What a caller sees

A request refused by a budget gets status 402 and the code `budget_exceeded`. Its message starts `Budget exceeded:` and says which budget is used up (the key, the AI system or the organization), how much was spent against the limit, and when it resets, for example `It resets at 2026-11-01 00:00 UTC`. A request refused by a rate limit gets status 429 and the code `rate_limited`, `request_limited` or `token_limited`. Its message starts `Rate limit exceeded:` and says which limit was reached. Both come back in the format of the API the caller used. Raise the limit and requests flow again within seconds.

## Personal keys

Every personal key starts with the defaults an admin sets under **AI Gateway**, **Settings**, **Access**: a budget and a request limit. Admins can tighten any personal key. A personal key also counts against the organization's budget.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.