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
  • Maximum total size of JSON documents: 10 GB
  • Maximum number of unique attributes across all documents: 2000 attributes (advanced: 4000, enterprise: 10000 attributes)

Documents

  • Maximum JSON document size: 32 MB
  • Maximum number of attributes: 1000 attributes (enterprise: 8000 attributes)
  • Maximum attribute nesting depth: 20 levels
  • Maximum searchable term length: 1024 UTF-8 characters (silently ignored without error)

Listeners

Max listeners for the various project plans:

  • Developer plan: 100 listeners
  • Advanced plan: 500 listeners
  • Enterprise plan: 1000 listeners

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

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 queries to our API per project. This is to stop too many heavy queries at the same time from doing damage.

  • Maximum concurrent queries to API: 500
  • Maximum concurrent mutations to API: 100
  • Maximum concurrent queries for history: 100

Protip

If you trigger a rate limit you will get a reponse saying

429 Too many requests

We have some tips in Importing data for keeping below the rate-limits.

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 Queries - The POST form.

Was this article helpful?