Rate limits
Request and concurrency limits for the SnitchFeed HTTP API.
Overview
All v1 endpoints are limited in two ways, per organization:
- Rate: requests per minute, scoped per endpoint group — see below.
- Concurrency: at most 2 in-flight requests at a time, across all v1 endpoints combined.
Exceeding either limit returns 429 Too Many Requests with a JSON body that may include retryAfter (seconds) and a matching Retry-After header. The error code is rate_limited in both cases.
The per-minute window is rolling: each successful request consumes one token until the bucket refills. The concurrency cap counts requests that have started and not yet finished (including slow LinkedIn calls). A third overlapping request is rejected immediately; it does not wait in line.
Unauthenticated requests do not consume a concurrency slot. Failed requests (4xx / 5xx) still release the slot when the response is sent.
/v1/data/* endpoints
20 requests per minute, per search surface: Twitter, LinkedIn (search, company, comments, reactions, person posts/comments, industries), and Hacker News each have their own independent bucket.
/v1/data/twitter/tweets/search/v1/data/linkedin/posts/search/v1/data/linkedin/company/get/v1/data/linkedin/posts/comments/v1/data/linkedin/posts/reactions/v1/data/linkedin/person/posts/v1/data/linkedin/person/comments/v1/data/linkedin/industries/v1/data/hackernews/search
A burst of LinkedIn requests does not affect your Twitter or Hacker News quota, since each surface tracks its own bucket.
Other /v1/* endpoints
60 requests per minute, shared across your organization's own data:
/v1/mentions/v1/listeners/v1/feeds/v1/organization/context/v1/organization/usage
These endpoints read data already stored for your org rather than fetching live from an external platform, so they get a higher shared limit than the /v1/data/* search surfaces.
Response headers
| Header | When present | Meaning |
|---|---|---|
X-RateLimit-Limit | Success | Max requests in the per-minute window for the bucket this request hit (20 for /v1/data/*, 60 otherwise) |
X-RateLimit-Remaining | Success | Requests left in the current per-minute window |
X-RateLimit-Reset | Success | Unix timestamp when the per-minute window resets |
X-Concurrency-Limit | After auth | Max in-flight requests per organization (currently 2) |
X-Concurrency-Remaining | Concurrency 429 | Always 0 when the in-flight cap is hit |
Retry-After | 429 response | Seconds to wait before retrying |
Need higher throughput?
Contact hello@snitchfeed.com if you need custom limits for your workload.