Rate Limits for The Hog API
The Hog enforces rate limits per organization and user to ensure fair usage. Polling operations has a separate dedicated throttle. Learn limits and retry behavior.The Hog enforces rate limits on all API endpoints to ensure reliable service for every organization. Limits are tracked per organization and user, not per API key alone. When you exceed a limit, the API returns HTTP 429 and you must wait before retrying.
Global rate limit
Every authenticated endpoint is covered by a global, per-organization-and-user rate limit of 600 requests per minute. The limit applies across all endpoints combined, so a burst of company searches counts against the same bucket as a burst of enrichment requests for the same caller.Polling rate limit
GET /api/operations/:id has its own dedicated rate limit — separate from the global bucket — of 300 requests per minute per organization-and-user. This limit exists because polling is the highest-frequency access pattern and must not crowd out other API traffic.
HTTP 429 response
When you hit a rate limit, the API returns:Retry-After and X-RateLimit-* headers. Treat
Retry-After as the minimum wait before the next request to that bucket.
Retrying after 429
Use exponential backoff when you receive a 429. Do not retry immediately — the limit window must pass before your request will succeed.Wait with exponential backoff
If the response includes
Retry-After, wait at least that long. Otherwise start with a short delay and double it on each consecutive 429, up to a maximum. Add random jitter to avoid thundering-herd retries from parallel processes.Recommended polling intervals
| Job type | Recommended interval |
|---|---|
Enrichment (POST /api/enrichments) | 2-5 seconds |
Search jobs (POST /api/v1/search) | 5-10 seconds |
Deep research (POST /api/deep-research) | 10-30 seconds |