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.1
Catch the 429
Detect
statusCode === 429 in the error body or response.status === 429.2
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.3
Resume polling at a slower interval
After a 429 on the poll endpoint, resume at a slower interval after the
Retry-After window.Recommended polling intervals
These intervals keep you well within the 300 requests/minute polling limit even when running multiple concurrent jobs.