Update Storage Size

Changes the project's storage capacity.

Required permissions

Increasing or changing storage requires project.storage.update on project:<project-id>. To read usage, use project.metrics.read on the same project. owner has full access; assistant, member, and organization API Keys need the scope for the action.

PATCH /v1/project/:id/storage/size

Rate limit: 5 requests per minute (counted per source IP).

Path Parameters

ParameterTypeDescription
idstringProject ID

Headers

HeaderRequiredDescription
x-api-key or AuthorizationYesOrganization API Key or user token
x-organization-idWith a user tokenActive project organization. Not needed with an organization API key
Content-Type: application/jsonYesRequired when updating storage size

Body

FieldTypeRequiredDescription
sizenumberYesStorage size in GB (minimum 1, maximum 250)

Example

{
  "size": 20
}

Response

{
  "status": "success",
  "message": "storage size updated with success"
}

Common Errors

StatusCodeWhen it happens
409STORAGE_UPDATE_NOT_ALLOWED_FOR_CONTRACTThe project has a monthly or yearly contract; only projects with hourly billing can change storage
409STORAGE_SIZE_CANNOT_DECREASEThe new capacity is lower than or equal to the current capacity
409STORAGE_UPDATE_NOT_ALLOWED_FOR_FREE_PLANThe Free plan does not allow storage changes
409PROJECT_OPERATION_IN_PROGRESSThe project has another operation in progress
404—Project not found

Get Storage Usage

Returns information about the current storage usage of the project.

GET /v1/project/:id/storage/usage

Rate limit: 100 requests per minute (counted per source IP). Returns 404 when the project does not exist and, for Analytics projects, 402 when the plan does not offer metrics.

Path Parameters

ParameterTypeDescription
idstringProject ID

Response

{
  "status": "success",
  "message": "get volume usage with success",
  "data": {
    "used": 5368709120,
    "capacity": 10737418240,
    "replica_count": 1
  }
}

used and capacity are numbers in bytes; replica_count is the number of measured volumes (for Analytics projects, the number of instances).


Examples

Update Storage Size

curl -X PATCH "https://api.zenifra.com/v1/project/507f1f77bcf86cd799439011/storage/size" \
  -H "x-api-key: your-api-key" \
  -H "x-organization-id: your-organization-id" \
  -H "Content-Type: application/json" \
  -d '{"size": 20}'

Get Storage Usage

curl -X GET "https://api.zenifra.com/v1/project/507f1f77bcf86cd799439011/storage/usage" \
  -H "x-api-key: your-api-key" \
  -H "x-organization-id: your-organization-id"

Python

import requests

API_KEY = "your-api-key"
ORGANIZATION_ID = "your-organization-id"
PROJECT_ID = "507f1f77bcf86cd799439011"

headers = {"x-api-key": API_KEY, "x-organization-id": ORGANIZATION_ID}

# Update storage size
requests.patch(
    f"https://api.zenifra.com/v1/project/{PROJECT_ID}/storage/size",
    headers=headers,
    json={"size": 20}
)

# Get storage usage
usage = requests.get(
    f"https://api.zenifra.com/v1/project/{PROJECT_ID}/storage/usage",
    headers=headers
).json()
print(usage)

Limits

  • Minimum: 1 GB
  • Maximum: 250 GB

Notes

  • For hourly payment models, storage can be increased at any time
  • Storage cannot be reduced
  • Additional cost is calculated in proportion to usage time
  • Projects with a monthly or yearly contract cannot change storage (409)

Last updated on

On this page