API: Rate and Bandwidth Limitations for Non-Enterprise Accounts

Limits

In general, we operate the API in good faith that you will play nicely with reasonable requests to the Initial State Events API. Here are a few guidelines/limits when streaming data into the Initial State Events API:

Free Tier:
  • 1 API call per second per IP address or unique bucket key
  • 100 KB max payload per API call
  • 25,000 events per month
Personal Tier:
  • 1 API call per second per IP address or unique bucket key
  • 100 KB max payload per API call
Professional Tier:
  • 3 API calls per second per IP address or unique bucket key
  • 500 KB max payload per API call

Tips

Buffer Events

Each API call can contain multiple events and each event can contain it's own timestamp (ISO-8601 or Unix Epoch). We have multiple support articles on how to send multiple events in a single call:
  • Using the API to send multiple events in one call when using the API directly
  • Using the Python SDK also buffers automatically, the calling application has control over buffer size and flush rate. 
For example, if you send 20 events per API call and make 3 calls per second, you would be logging 60 events every second at an average rate of 1 event per 16.67 ms.  Each of the 60 events can have a unique timestamp giving you fine control over the timing resolution.

If you exceed the bandwidth limitations, the Events API will return 429 response (too many requests) and data will not be stored. If you continually exceed the bandwidth limitations more than the average user, your account may be suspended to protect the performance of other users.

Don't Over Buffer

While the API does allow event buffering and buffering is highly encouraged. It's general best practice to find the sweet spot between buffer size and call frequency. Currently it's discouraged from sending really spiky event payloads. For instance, it's better to send 10 events in a single post per second than to send 600 events every minute.

Feedback and Knowledge Base