KV Store limits
Check every bound KV Store applies to a namespace name and to a list request, and the storage, reads, and writes an account includes.
KV Store bounds the name a namespace takes, the number of namespaces one list request returns, and what an account may change after a namespace exists. This page states each bound, the response the platform returns past it, and the storage and keys an account includes on each billing meter. KV Store is a Preview product on every service plan, and it is not enabled by default. On Hobby and on Pro, access is requested and approved case by case; on Enterprise it is arranged with the account. To request access, contact the Technical Support team.
Default limits
KV Store applies each bound below on every service plan. A rejected request arrives in one of two error envelopes, and which one arrives depends on what rejected it. The KV service answers a validation failure with state set to error and an error object carrying a snake_case code and a message. The platform gateway answers an unsupported method with an errors array carrying a numeric code and a title. The Past the limit column names the status, the code, and the text each one returns.
| Scope | Limit | Past the limit |
|---|---|---|
Namespace name length (name) | 3 to 63 characters | 400 validation_error, with Name must be at least 3 characters long below 3 characters and Name must be no more than 63 characters long above 63. |
| Namespace name characters | Letters, numbers, the hyphen (-), and the underscore (_), matching ^[a-zA-Z0-9_-]+$. Names are case-sensitive | 400 validation_error, Name can only contain alphanumeric characters, hyphens and underscores. |
| Namespace name uniqueness | One name per account | 400 validation_error, Namespace already exists. |
Namespaces per list response (page_size) | 1 to 100, default 50 | 400 invalid_page_size, Page size must be between 1 and 100. |
| Renaming, deactivating, emptying, or deleting a namespace | Not supported. A namespace is permanent | PUT, PATCH, and DELETE each answer 405 10007, title Method Not Allowed. |
A create request that carries no name, or a name set to an empty string, is rejected the same way: 400 validation_error, with the message Name is required. Uppercase letters pass every check in the table above, so a name is accepted whatever its case. Lowercase is a convention rather than a rule, and Best practices covers it.
The name is the namespace’s identifier, and it is read-only once the namespace exists. Because no interface removes a namespace, every name an account creates stays on that account, and a name chosen badly cannot be corrected in place. For the three operations the bounds above apply to, refer to Namespaces.
Limits on keys and values
The bounds below apply to the data a function stores, rather than to the namespace that holds it.
| Scope | Limit |
|---|---|
| Key size | Up to 512 bytes, UTF-8 encoded |
| Value size | Up to 25 MB per item |
| Metadata size | Up to 1,024 bytes, JSON-serialized |
| Writes to one key | 1 write per second to the same key |
Minimum expirationTtl | 60 seconds |
Minimum cacheTtl | 60 seconds |
The client applies none of these itself. It checks that expirationTtl and expiration are numbers and that metadata is a string or an object, and it passes everything else through, so a value past one of these bounds is rejected by the platform rather than by the code that sent it. For what each option does, refer to KV client.
Limits per plan
| Ceiling | Hobby | Pro | Enterprise |
|---|---|---|---|
| Namespaces per account | 1,000 | 1,000 | 1,000 |
| Storage per account | 5 GB | 50 GB | 300 GB |
The storage ceiling is the most an account holds at once. It is separate from the storage a plan includes before a charge applies, which the next section states.
Included usage
KV Store is billed on three metrics: Storage, Keys Read, and Keys Written. Each account includes an amount of each metric before a charge applies, and the three amounts are flat: they do not vary by service plan.
| Metric | Included | What it counts |
|---|---|---|
| Storage | 1 GB per month | The data KV Store holds for the account. |
| Keys Read | 100,000 keys per day | Every key a read returns. |
| Keys Written | 1,000 keys per day | Every key a write affects. |
Two of the three meters reset every day, which bounds a workload more tightly than the monthly storage amount does. For example, a function that writes one key on every request it serves reaches the included 1,000 keys after 1,000 requests, whatever the size of the values it wrote.
Azion offers three service plans: Hobby, Pro, and Enterprise. The plan comparison carries exactly one KV Store row, and that row is access rather than a quota: it reads Upon request (subject to approval) on Hobby and on Pro, and Custom on Enterprise. Preview access is the only dimension of KV Store that varies by plan.
For the rate that applies past an included amount, refer to Pricing. For what each of the three plans carries, refer to Azion pricing.