---
title: "Raising a limit"
description: "Which of a plan's limits we raise for one account on request, and how to ask for it with the API."
---

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

# Raising a limit

A plan's [limits](/docs/platform/limits/) are the same for every account on it. A larger plan raises most of them at once (`glac billing plan p100`), and the refusal of a call says which plan would do. Some of them we also raise for one account, when it needs more than its plan gives: a refusal that can be lifted this way says so in its message ("ask us to raise it for this account"), and its `docs_url` leads to its [error](/docs/errors/). The account asks with one call of the API, below.

## What we raise

| What | Refused with | What we do |
|---|---|---|
| What the account may have at once, and how fast it makes things: sandboxes and instances awake, their vCPUs and memory, sleeping sandboxes kept, an app's instances in a region, sandboxes made a minute and a project's made an hour, Cubes and versions made an hour | 403 [`plan_cap_reached`](/docs/errors/#plan_cap_reached), whose `param` names the limit | Give the account a number of its own for any of them |
| How many Drives and volumes a project keeps, on a paid plan | 403 [`drive_limit_reached`](/docs/errors/#drive_limit_reached), [`volume_limit_reached`](/docs/errors/#volume_limit_reached) | Give the account a number of its own: on the paid plans it is a soft limit |
| How large a Drive or a volume may be, past every plan's | The same | Let an enterprise account have Drives of up to 16 TiB |
| How much may be charged to the account's card a month: its [trust level](/docs/platform/pricing/#trust-levels) | 403 [`trust_limit_exceeded`](/docs/errors/#trust_limit_exceeded) | Raise the level sooner than it rises by itself |
| Which plans the account may buy: each opens with a whole period of the one below ([subscriptions](/docs/platform/pricing/#subscriptions)) | 403 [`plan_not_open`](/docs/errors/#plan_not_open) | Open a higher plan for the account |

A number given to the account holds whatever plan it moves to, until it is taken back. `GET /v1/account` (`glac account`) shows each limit of what the account may have at once, what is used of it, and whose number it is (`caps`: `source` `plan` or `operator`), and what the key's project keeps of Drives and volumes (`keeps`: how many, how large one may be, how large all of them may be together, each with what the project has, and the size of one made with no size); a refusal says "this account may" where the number is the account's own.

## How to ask

In the console, the account's **Limits** page lists each of these limits with its number now, what is used of it and whose number it is; **Ask for more** on a limit's row asks for it, with the number wanted and what for, and the requests are listed below it with their answers.

Or ask with the API, with a key that allows `admin`:

```bash
curl -X POST https://api.glac.ai/v1/limits/requests \
  -H "Authorization: Bearer $GLAC_API_KEY" -H 'Content-Type: application/json' \
  -d '{"limit": "vcpus", "wanted": 64, "why": "a build farm of eight sandboxes of 8 vCPUs"}'
```

- **`limit`**: the limit, by the name a refusal's `param` gives it, and `GET /v1/account` under `caps`: `instances`, `vcpus`, `memory_bytes`, `sleeping`, `app_instances`, `creates_per_minute`, `creates_per_hour_per_project` or `app_creates_per_hour`. Or what a project keeps: `volumes` (how many Drives and volumes) or `volume_bytes` (how large one may be, up to 16 TiB).
- **`wanted`**: the number the account needs, more than it has now; `memory_bytes` and `volume_bytes` in bytes.
- **`why`**: what it needs it for, 1 to 2,000 characters.

The answer is the request (`limit_request`, its `id` `lrq-…`), `pending`, with the number the account had when it asked (`from`). Asking changes nothing yet. One request of a limit is open at a time: another of the same limit is refused with 409 `limit_request_pending`, which names the one that waits. `GET /v1/limits/requests` lists the account's requests, the newest first, and `GET /v1/limits/requests/{id}` reads one; every project's keys see the same.

**The answer.** We grant it, and the request says `granted` with the number the account has from then on (`granted`; a Drive's or a volume's size in whole GiB), or we refuse it, and it says `refused` with why (`answer`). Either way the account is told by an event in each of its projects (`limit_request.granted`, `limit_request.refused`: `GET /v1/events`, and the webhooks that take them) and by mail to its address. A number granted is the account's own, as in the table above.

For what the call does not name, a [trust level](/docs/platform/pricing/#trust-levels) sooner than it rises by itself or a higher plan to open, write to support@glac.ai with the account's id (`glac account`, or `id` of `GET /v1/account`), the refused call's `code` and `request_id`, and what you need.

Source: https://glac.ai/docs/platform/raising-limits/index.mdx
