Skip to content

Billing and Limits

Price
Storage $0.01 per GB-month
Egress Free

A GB is 10^9 bytes, so 1 TB is 1,000 GB. Storing 1 TB for a full month costs $10.

You pay only for the data you store. Buckets, access keys and requests have no charge of their own, and an empty bucket costs nothing.

Usage is measured from the bytes stored in your buckets, about every 15 minutes, and billed by the hour. Data you store for part of a month is charged for the hours it was stored.

Each measurement is rounded up to a whole GB for each project in each region. A project storing 1.2 GB is billed for 2 GB, and a project storing a single small object is billed for 1 GB. A project that stores nothing is billed for nothing.

To estimate a monthly cost before you upload, request a quote for the amount of data you expect to store:

Terminal window
curl -X POST https://api.nirvanalabs.io/v1/storage/buckets/cost \
-H "Authorization: Bearer $NIRVANA_LABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"project_id": "123e4567-e89b-12d3-a456-426614174000",
"name": "my-bucket",
"region": "us-sva-2",
"size_gb": 1000
}'
Terminal window
nirvana storage:buckets:cost create \
--project-id 123e4567-e89b-12d3-a456-426614174000 \
--name my-bucket \
--region us-sva-2 \
--size-gb 1000

Each organization has an object storage quota in each region, in GB. Your organization’s quota, and how much of it its buckets use across all of its projects, is shown on the Quotas page of the dashboard and returned by GET /v1/quotas/{region} under storage.object_storage. Usage is measured periodically, so it can trail recent writes by several minutes.

To raise the quota, contact support.

The quota is enforced in two different ways.

Creating a bucket checks your organization’s total usage in the region, across all of its projects. Once that reaches the quota, creating a bucket fails with the QUOTA_EXCEEDED_ERROR type. Existing buckets keep accepting writes. A quota of 0 means object storage isn’t available to your organization in that region.

The S3 endpoint caps writes for each project separately, and each project’s cap is the organization’s whole quota. It does not add up the usage of your other projects. For example, with a 100 GB quota, two projects can each store 60 GB, 120 GB in total, and both keep accepting writes until one of them reaches 100 GB on its own. The cap is also applied with a short delay, so a project can briefly go past it before writes are refused.

While your organization is suspended for billing, the S3 endpoint refuses its access keys, and its buckets and keys report the suspended status in the API. Buckets and objects are kept as they are, and access returns once the organization is active again.