Limits and quotas
Per-key rate limits, rate limit headers, monthly quota, and how the SDKs retry on their own.
The Meteor API applies two kinds of limit per API key: a rate limit (how many requests per minute) and a quota (how many requests per month). Both protect the platform and both are visible in every response — you never have to guess how much you have left.
Rate limit (requests per minute)
Each key has its own budget of requests per minute, independent of the rest of your workspace's traffic. The default is 100 requests per minute; your plan may assign the key a higher limit when you issue it.
The limit is counted per key — not per IP, not per workspace — so two keys in the same workspace never compete with each other.
Headers on every response
Every public API response carries the state of your rate limit, so you can pace yourself without hitting the wall:
| Header | What it says |
|---|---|
X-RateLimit-Limit | The request ceiling for the current window (reflects your key's limit). |
X-RateLimit-Remaining | How many requests you have left in the window. |
X-RateLimit-Reset | Seconds until the window resets. |
curl -i https://api.met.meteor.com.co/api/v1/runs \
-H "Authorization: Bearer met_live_your_key"
# ...
# HTTP/2 200
# x-ratelimit-limit: 100
# x-ratelimit-remaining: 99
# x-ratelimit-reset: 60
When you go over: 429 + Retry-After
If you exceed the rate limit, the API answers 429 with a Retry-After header (seconds to wait) and the standard error body:
{
"error": {
"type": "rate_limit_error",
"code": "rate_limited",
"message": "Too many requests."
}
}
The official SDKs retry on their own, honoring Retry-After with backoff, so in most cases you don't have to handle the 429 by hand. If you integrate the API directly, wait the seconds Retry-After indicates before retrying.
Monthly quota
On top of the per-minute rate limit, your plan defines a monthly quota of requests. Once you pass it, the API answers 429 with code: "quota_exceeded". The quota depends on your plan; this month's usage and the alerts (80% / 100%) are in the Workbench, under Settings → Developers → Activity → Health — the same place that shows daily volume, p95 latency and every request searchable by request_id.
The Developer plan and the paid plans have different quotas and rate limits. Your plan's exact values are applied to the key when it is issued and are reflected in
X-RateLimit-Limit.
In short
- Watch
X-RateLimit-Remainingto pace yourself. - A 429 with
rate_limitedis transient → retry afterRetry-After(the SDKs do it for you). - A 429 with
quota_exceededis your monthly quota → upgrade your plan or wait for the monthly reset.