Technical limits
A list of data store limits
This article describes various limits in the data store. Note that a project may have additional limits depending on its plan. An API call that causes any of these limits to be exceeded will be rejected with an error. If you have needs beyond these limits then get in touch and we'll work something out.
We use standard SI units, so 1 MB is 1 000 000 bytes.
Protip
An attribute here is considered to be any unique attribute/datatype combination, so an attribute attr
containing a string, integer, and null value (in different documents) counts as 3 attributes. Additionally, arrays count as 1 extra attribute per unique datatype they contain, so the array [2.718, 3.14, "abc", "def", true]
counts as 4 attributes (1 for the array itself, and 3 for the datatypes float, string, and boolean).
Datasets
- Maximum number of documents: 1 million (customization possible for enterprise customers)
- Maximum total size of JSON documents: 10 GB
- Maximum number of unique attributes across all documents:
- Free plan: 2 000 attributes
- Growth plan: 10 000 attributes
- Enterprise plan: Custom # attributes
- Maximum dataset name length: 64 characters
Documents
- Maximum JSON document size: 32 MB
- Maximum number of attributes:
- Free and Growth plan: 1000 attributes
- Enterprise plan: 8000 attributes
- Maximum attribute nesting depth: 20 levels
- Maximum searchable term length: 1024 UTF-8 characters (silently ignored without error)
- Maximum number of draft documents in
previewDrafts
perspective: 1000
Listeners
Max concurrent listeners for the various project plans:
- Free plan: 1000 listeners
- Growth plan: 5000 listeners
- Enterprise plan: 10000 listeners
Editor Experience
In the event you hit the maximum concurrent listener limit, you will get the error Max listener limit exceeded at <limit>
.
API Calls
- Maximum working set retrieved from data backend: 500 MB
- Maximum query execution time: 1 minute
- Maximum mutation execution time: 3 minutes
- Maximum export execution time: 5 minutes
- Maximum listener connection lifetime: 30 minutes
- Maximum scheduled publishing execution time: 1 minute
API Rate Limits
We have two rate-limits in place: one per source IP and one for number of concurrent queries.
API Rate Limits per IP
API rate limits are enforced per client IP address per second. Exceeding a rate limit will result in HTTP 429
responses for any further requests of that type until the period ends.
- Maximum mutation rate: 25 req/s (
POST
to/data/mutate
) - Maximum upload rate: 25 req/s (
POST
to/assets/
) - Maximum global API call rate: 500 req/s
- Maximum global API CDN call rate: unlimited for cached responses
API Concurrent Rate Limits
We also rate limit concurrent API requests for each dataset:
- Maximum concurrent queries to API: 500
- Maximum concurrent mutations to API: 100
HTTP Requests
- Maximum combined request headers size: 15 KB
- Maximum request body size: 100 MB
- Maximum mutation request body size: 4 MB
Protip
This implies that if your request exceeds 15KB in headers you probably want to switch from GET to POST and put the payload in body. See .
API CDN HTTP Requests
For the /data endpoints (not assets):
- Maximum POST size: 300 KB
Assets
Animated Images with Transforms
Maximum size of animated images with transforms: 256 megapixels
- Calculated as: Width × Height × Frame Count = Total Pixels
- Divide total pixels by 1,000,000 to get megapixels
This limit applies to on-demand transforms for supported animated image formats.
Users
- Maximum number of users per project: 1000
Please get in touch if you need more than 1000 users on a single project.