Rate Limits
All API endpoints are rate-limited per API key. Two independent limits apply: a request-count rate limit (DoS guardrail) and a daily spend cap (dollar ceiling).
Request-count limits
| Tier | Requests/min | Requests/day |
|---|---|---|
| Free | 60 | 10,000 |
| Starter | 120 | 50,000 |
| Pro | 300 | 500,000 |
| Enterprise | Custom | Custom |
Daily spend cap
| Tier | Daily cap |
|---|---|
| Free | $35/day |
| Starter | $50/day |
| Pro | $200/day |
| Enterprise | None |
Paid tiers have a daily dollar cap to prevent runaway agent costs. When the cap is reached, the API returns 429:
{
"error": "Daily spend cap reached",
"daily_spent_cents": 20000,
"daily_cap_cents": 20000,
"resets_at": "2026-04-22T00:00:00.000Z"
}The cap resets at midnight UTC.
Rate limit headers
Every API response includes standard rate limit headers:
| Header | Description |
|---|---|
RateLimit-Limit | Maximum requests per window |
RateLimit-Remaining | Requests remaining in current window |
RateLimit-Reset | Unix timestamp when the window resets |
Exceeding the limit
If you exceed the per-minute rate limit:
{
"error": "API rate limit exceeded. Please slow down.",
"retry_after_seconds": 60
}If you exceed the per-day limit:
{
"error": "Daily API limit reached. Upgrade your plan for higher limits.",
"retry_after_seconds": 3600
}Back off and retry after the retry_after_seconds interval. See Errors for full retry guidance.
Best practices
- Cache responses — Follow data updates periodically, not in real time. Caching responses for 30-60 minutes is usually sufficient.
- Use time windows — Query with
?since=24hinstead of polling every minute. See Parameters for supported formats. - Batch where possible — A single
GET /v1/follows/newreturns new follows across all tracked accounts. No need to query per-account. - Check headers first — Read
RateLimit-Remainingbefore making requests to avoid hitting 429s. - Use webhooks — For agent workflows, subscribe to push notifications instead of polling.