Skip to main content
Calls to our API are rate limited to provide equitable access to the API for everyone and to prevent abuse. We are going to be evolving these limits as we gather more information, and encourage your feedback. Any changes to limits will be announced in our Slack community’s API announcements channel. We use the leaky bucket algorithm for our rate limiters, which means that your tokens are refilled with a constant rate of LIMIT_AMOUNT / LIMIT_PERIOD.
If you temporarily require higher limits, you can request them by contacting us where we'll review them on a case by case basis.

Avoiding hitting limits

These are best practices for using our APIs that will, in most cases, avoid hitting any rate limits.

Avoid polling⁠

We strongly discourage polling the API to check for updates, as it can lead to unnecessary load and rate limiting. While we don’t support webhooks yet, we plan to add that functionality soon. If you have a specific use case in mind, let us know—it helps us prioritize what to build next.

Avoid fetching unneeded data⁠

Avoid fetching data you don’t need by using our search functionality. This way you can drill down on specific records only and avoid pagination.

API request limits

We limit the amount of requests you make to our API. To make it easier to keep track and avoid going over the limits, there are 3 HTTP response headers we send back on each request.
HTTP HeaderDescription
RateLimit-LimitThe maximum number of API requests you’re permitted to make per hour.
RateLimit-RemainingThe number of API requests remaining in the current rate limit window.
RateLimit-ResetThe time at which the current rate limit window resets in UTC epoch milliseconds.
When authenticated using an API key you can make up to 1,500 requests per hour. Requests are associated with the authenticated user, which means all requests by the same user share the same quota even when using different API keys.

Handling rate limit errors

Once you actually exceed rate limits, Meitner API will start returning rate limit error responses. You can catch these by checking the response status code and the errors in the response body containing the RATELIMITED error code.
StatusCode 429 TooManyRequests
{
  "error": {
    "code": "RateLimited",
    "message": "Too many requests - rate limit exceeded",
    "requestID": "550e8400-e29b-41d4-a716-446655440000"
  }
}