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

# Manage quotas and limits

> Manage quotas and limits for CoreWeave AI Object Storage

CoreWeave AI Object Storage has the following quotas and limits by default.

## Quotas

Object Storage tracks capacity quotas separately for each storage class. The quota for `STANDARD` applies to the Hot, Warm, and Cold tiers combined. The quota for `STANDARD_IA` applies to the Archive tier, if your organization uses this tier.

| Quota                                                    | Default value |
| -------------------------------------------------------- | ------------- |
| Default `STANDARD` capacity (per region, per account)    | 100 TiB       |
| Default `STANDARD_IA` capacity (per region, per account) | 0 TiB         |
| Default number of buckets per account                    | 1,000         |
| Default LOTA cache capacity per Node                     | 1 TiB         |

When usage in a storage class reaches that class's capacity limit, write operations to that storage class are blocked. To request a quota increase, [contact CoreWeave support](https://coreweave.freshdesk.com/support/login) and include:

* Your organization name and Org ID, found on the [Settings page](https://console.coreweave.com/account/settings).
* The region and zone.
* The storage class (`STANDARD` or `STANDARD_IA`) the request applies to.
* The requested object storage quota (TiB).
* A brief description of the workloads and expected storage growth (Optional). For example, new clusters or changes over the next 30 to 90 days.

## Limits

The following limits are technical constraints on individual objects and multipart uploads.

| Limit                              | Default value |
| ---------------------------------- | ------------- |
| Maximum part size                  | 5 GiB         |
| Minimum part size<sup>1</sup>      | 5 MiB         |
| Maximum object size                | 48.828125 TiB |
| Maximum parts per multipart upload | 10,000        |
| Lifecycle rules per configuration  | 1,000         |

<sup>1</sup> The last object part of a multipart upload can be less than 5 MiB in size.

## Storage capacity alerts

Object Storage sends alerts when your usage approaches or is projected to exceed your quota, giving you time to act before write operations are blocked. Alerts fire independently for each storage class quota. If your organization has both `STANDARD` and `STANDARD_IA` quotas, you receive separate alerts for each.

The following table lists each alert and the condition that triggers it:

| Alert name                     | Condition                                                | Severity |
| :----------------------------- | :------------------------------------------------------- | :------- |
| `CAIOSQuotaProjectedNearLimit` | Usage is projected to exceed 90% of quota within 7 days  | Warning  |
| `CAIOSQuotaNearLimit`          | Current usage exceeds 90% of quota                       | Warning  |
| `CAIOSQuotaProjectedLimit`     | Usage is projected to exceed 100% of quota within 7 days | Critical |

When multiple alerts fire at the same time for the same storage class and zone, only the highest-severity alert fires and the others are suppressed. Each notification covers a single storage class in a single zone, so multiple zones or storage classes approaching the limit produce separate notifications.

Alerts are delivered through your configured integration. To set up Slack or webhook delivery, see [CoreWeave Alerts](/platform/coreweave-alerts).

### PromQL for custom monitoring

You can use the following PromQL expressions against your Grafana datasource to build your own dashboards or alerting rules. The examples query the `STANDARD` storage class. To query the `STANDARD_IA` storage class instead, replace `storage_class="STANDARD"` with `storage_class="STANDARD_IA"` in each block.

#### Current usage as a percentage of quota

```promql theme={"system"}
label_replace(
  sum(cwobject_bucket_usage{
    measurement_type="MEASUREMENT_TYPE_USAGE_BYTES",
    storage_class="STANDARD"
  }) by (cluster_org, bucket_zone, storage_class),
  "zone", "$1", "bucket_zone", "(.*)"
)
/ on(cluster_org, zone, storage_class)
label_replace(
  cwobject_quota_info{
    active="true",
    measurement_type="MEASUREMENT_TYPE_USAGE_BYTES",
    storage_class="STANDARD"
  },
  "zone", "$1", "quota_zone", "(.*)"
)
* 100
```

#### Projected usage in 7 days as a percentage of quota

The following example uses `predict_linear` over a 1-week lookback:

```promql theme={"system"}
predict_linear(
  (
    label_replace(
      sum(cwobject_bucket_usage{
        measurement_type="MEASUREMENT_TYPE_USAGE_BYTES",
        storage_class="STANDARD"
      }) by (cluster_org, bucket_zone, storage_class),
      "zone", "$1", "bucket_zone", "(.*)"
    )
  )[1w:],
  7 * 24 * 3600
)
/ on(cluster_org, zone, storage_class)
label_replace(
  cwobject_quota_info{
    active="true",
    measurement_type="MEASUREMENT_TYPE_USAGE_BYTES",
    storage_class="STANDARD"
  },
  "zone", "$1", "quota_zone", "(.*)"
)
* 100
```
