Docs
Get Started

Limits

This page lists every limit that applies to your buckets, files, and credentials. Where a limit has its own error, the table gives the exact message.

Buckets per account

Limit Value
Buckets you can have 50
When you reach it Create a bucket answers 400 with You can have at most 50 buckets.
Where to read it data.summary.bucket_limit in the answer to List buckets. data.summary.bucket_count is how many you have now.

Bucket names

These rules apply to the name you send to Create a bucket.

Rule Value
Length 3 to 40 characters
Characters Lowercase letters, numbers, and hyphens
First and last character A letter or a number, never a hyphen
Unique Among your own buckets. Two accounts can use the same name.
Spaces and capitals Spaces around the name are removed, and capital letters are changed to lowercase, before the name is checked.
Error 400 with Use 3-40 lowercase letters, numbers and hyphens. in the validation error format

The name is not what you use in requests. Every bucket also has an identifier: kb-, then the name, then - and 12 random hexadecimal characters. It is at most 56 characters long.

File size

Where Limit
Dashboard 1 GB (1,073,741,824 bytes) per file. The dashboard refuses a larger file before it uploads.
One upload request to the API 5 GB. Storage accepts at most 5 GB in a single request.

Upload a file does not check the 1 GB limit itself. data.summary.max_object_size_bytes in the answer to List buckets reports the dashboard's limit, 1073741824.

If storage refuses an upload for any reason, the answer is 502 with The storage backend could not complete that request.

A file larger than 5 GB is refused with 413 by the server in front of the gateway, before the upload starts. That answer does not use the {"error": "..."} form.

File names

A file's name is also called its key. It is the part of the address after the bucket identifier, for example reports/2026/summary.pdf.

Rule Value
Maximum length 900 characters
What is counted Characters, not bytes
Leading slash Ignored. /reports/summary.pdf and reports/summary.pdf are the same name.
Surrounding spaces Removed
Double slash Refused, for example reports//summary.pdf
. or .. as a folder name Refused, for example reports/../summary.pdf
Backslash (\) Refused
Control characters Refused: the characters from U+0000 to U+001F, which include tab and new line, and U+007F
Every other character Allowed, including spaces inside the name and letters from any language
Name that ends in / A folder. It cannot be used for visibility or links.
Error 400 with That file path is not allowed.

Storage itself accepts a name of at most 1,024 bytes. Letters outside the English alphabet take more than one byte each, so a name with many of them can pass 1,024 bytes before it reaches 900 characters.

These endpoints check names against the rules above:

Upload a file, Download a file, Get a file's details, Delete a file, and List files do not check them. Use only names that follow the rules, because a file whose name breaks them cannot be given a link, and its visibility cannot be read or changed.

Credentials per account

Limit Value
Credentials you can have 5
When you reach it Creating a sixth fails with You can have at most 5 credentials. Delete one you no longer use, then create the new one.
Credential name Up to 60 characters

You create credentials in the dashboard. See Credentials.

List page size

Limit List files List buckets
Default 100 entries 50 buckets
Most 1,000 entries 100 buckets
Counted Files and folders together Buckets
limit above the most Lowered to the most. It is not refused. Lowered to the most. It is not refused.
limit that is not a whole number, or is less than 1 Ignored, and the default is used. It is not refused. Ignored, and the default is used. It is not refused.

This is the limit query parameter of both endpoints. To read more than one page, see Pagination. You can have at most 50 buckets, so one answer of List buckets holds them all unless you ask for a smaller limit.

Limit Value
How long a temporary link works 10 minutes by default
Where to read the exact time data.expires_at in the answer to Get a link, and data.share_expires_at in the answer to Get visibility
Permanent links A public file's link does not expire. expires_at and share_expires_at are null.

You cannot extend a temporary link. Ask for a new one when it has expired.

Request bodies

Limit Value
Size of the JSON body on Create a bucket, Create a folder, Set visibility, and Get a link 64 KB (65,536 bytes)
A larger body Only the first 64 KB is read, and the rest is dropped. What is read is cut off part way, so it is not valid JSON.

Every valid request is far smaller, because the largest value in one is a file name of at most 900 characters.

Total storage

There is no cap on the total size of your files. data.summary.limit_bytes in the answer to List buckets is null. You pay for what you store. See Pricing and billing.