For the complete documentation index, see llms.txt. This page is also available as Markdown.

Rate limits

Each store has a bucket of 100 points that refills at 100 points per minute, shared by every integration using the store's key. Each request spends points depending on how much work it takes:

Cost
Endpoints

1

/me, /custom-events, /experiments, /experiments/{testId}

5

/summary, /filter-values

10

/results, /timeseries, /segments/{view}, /store/overview

A full bucket covers 10 /results calls in a row, then one more every 6 seconds.

Headers

Every response tells you where you stand:

Header
Meaning

x-ratelimit-limit

Bucket size

x-ratelimit-remaining

Points left after this request

x-ratelimit-cost

Points this request cost

x-ratelimit-reset

Unix time (seconds) when the bucket is full

Rely on the headers rather than the numbers on this page, which can change.

When you hit the limit

The request is rejected with 429 and nothing is charged:

{
  "success": false,
  "error": "Rate limit exceeded: this request costs 10 points and 4 of 100 are available",
  "code": "TOO_MANY_REQUESTS",
  "retryAfter": 4
}

Wait retryAfter seconds (also in the retry-after header), then retry.

Spend fewer points: use /summary when you only need headline metrics and the status, find experiments with /experiments?status=running first, and poll no more often than your reports need. Results don't change second by second.

Last updated