Rate Limits
All API endpoints are rate-limited per API key.
Limits by tier
| Tier | Requests/min | Requests/day |
|---|---|---|
| Free | 10 | 100 |
| Starter | 30 | 1,000 |
| Pro | 60 | 5,000 |
Daily spend cap
Every API key has a $50/day spend cap to prevent runaway agent costs. When the cap is reached, the API returns 429:
{
"error": "Daily spend cap reached",
"daily_spent_cents": 5000,
"daily_cap_cents": 5000,
"resets_at": "2026-03-12T00: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 (Slack, Telegram, or custom webhook) instead of polling. (Coming soon)