Skip to main content

Quotas

Every project has a limit per resource type. A request that would take the project over one of its limits is refused with 403 Forbidden and the quota_exceeded error; nothing is created. Deleting or stopping resources frees their share again.

Limits apply per project. To raise one, contact support with the project ID and the quota key you need more of.

Quota keys​

KeyCountsUnit
cpu-dedicatedvCPUs of instancescore
ram-dedicatedMemory of instancesGiB
gpu-<model>GPUs of one model, e.g. gpu-nvidia-h100-sxm5gpu
volumes-ssdSize of SSD volumesGiB
volumes-hddSize of HDD volumesGiB
snapshots-ssdSize of SSD snapshotsGiB
snapshots-hddSize of HDD snapshotsGiB
s3-storageData stored by the project's S3 usersbyte
ipv4Public IPv4 addressesaddress
load-balancersLoad balancerscount
kubernetes-clustersKubernetes clusterscount

A snapshot counts with the provisioned size of its source volume at the time it was taken.

s3-storage is enforced by the object storage itself rather than by the API: it is applied as the storage quota of the project's S3 users, and uploads beyond it are rejected by the S3 endpoint.

Quota Schema​

  • key String - The quota key, see Quota keys.
  • capacity Integer - The project's limit for this key. -1 means unlimited.
  • used Integer - How much of the limit is currently in use.
  • flavors Array - The flavors currently drawing on this key and how much each uses. Recomputed periodically, so it can briefly lag the key's used.
    • flavor_name String - The instance type for compute keys (e.g. vcpu-4_memory-8g), the storage class for storage keys, or the kind of consumer (ephemeral, floating, load-balancer, kubernetes) for the rest.
    • product_name String - Human-readable name of the resource, e.g. vCPU.
    • unit String - The unit of used, see Quota keys.
    • used Integer - How much this flavor uses.

used can be higher than capacity when a limit was lowered after the resources were created. Existing resources are kept; new requests for that key are refused until usage drops below the limit.

Get Quotas​

Returns the active project's limit and current usage for every quota key.

GET /compute/v1/quotas (HTTP 200 - OK)

Response body

{
"quotas": [
{
"key": "cpu-dedicated",
"capacity": 4,
"used": 4,
"flavors": [
{
"flavor_name": "vcpu-4_memory-8g",
"product_name": "vCPU",
"unit": "core",
"used": 4
}
]
},
{
"key": "volumes-ssd",
"capacity": 240,
"used": 0,
"flavors": []
}
]
}

Quota Exceeded Error​

A create or resize request that would exceed a limit returns 403 Forbidden. code is always quota_exceeded, and quota says which limit was hit:

  • key String - The quota key that would be exceeded, as listed by Get Quotas.
  • limit Integer - The project's limit for this key.
  • used Integer - How much of the limit is already in use.
  • requested Integer - How much the rejected request asked for.
{
"code": "quota_exceeded",
"message": "Project quota exceeded for 'cpu-dedicated': requested 4, 4 of 4 already in use",
"quota": {
"key": "cpu-dedicated",
"limit": 4,
"used": 4,
"requested": 4
}
}

Match on code and quota.key rather than on message, whose text may change.