hunter.io 429 too many requests
Handles Hunter.io HTTP 429 too many requests errors on domain search and email finder endpoints. Use when Hunter returns 429 and you need backoff plus monthly-quota triage. Not for 401 key errors, unverified-email results, or other providers' 429s.
TL;DR
Stop and back off: Hunter's free tier allows only a handful of requests per minute, so burst scripts 429 almost immediately. Add jittered backoff, pace calls under the limit, and check your monthly search quota in the dashboard before assuming it is a transient spike.
hunter.io 429 too many requestsUse this when
- Hunter /v2/domain-search or /v2/email-finder returns 429
- A lead-list builder that loops over domains starts failing after a few calls
- Free-tier scripts work in testing but 429 in production bursts
Not for this skill when
- Hunter returns 401 (API key missing or invalid)
- Results return 200 but emails come back unverified (data quality, not quota)
- The 429 is from Clearbit, Apollo, or another enrichment API
Steps
- Pause the loop immediately on the first 429; do not retry in a tight loop. Expected: the burst stops growing.
- Retry with exponential backoff plus jitter: 5s, 15s, 30s, 60s, max 4 attempts. Expected: transient per-minute 429s clear within a minute.
- Pace all future calls: keep domain searches well under 10 requests per minute on free tiers, and serialize rather than parallelize. Expected: no 429s on a clean full run.
- Check the Hunter dashboard for monthly quota: domain searches and email verifications draw from separate pools. Expected: you know whether you are rate-throttled or quota-exhausted.
- If quota is exhausted, wait for the monthly reset or upgrade; cache domain-search results locally so reruns never re-spend quota. Expected: the pipeline survives reruns without new spend.
Variant phrasings
hunter domain search rate limited
Free tier is roughly 10 requests per minute; serialize the loop.
hunter.io api too many requests free plan
Quota triage first: the monthly search pool is small and empties fast in bulk jobs.
Tool/version compatibility
Hunter.io API v2 (api.hunter.io/v2). The email-verifier endpoint has its own quota pool and the same 429 behavior.
Why it happens
Hunter enforces per-minute rate limits that are tight on free and starter plans, plus a hard monthly quota of searches and verifications. A loop over a CSV of domains hits the per-minute ceiling within seconds. Tight-loop retries then keep the window exhausted, which is why pausing and backing off beats retrying fast.
Edge cases / pitfalls
- Domain search and email finder share nothing; triage each pool separately.
- A 429 mid-run means some rows are enriched and some are not: make the loop idempotent with a checkpoint file so reruns skip completed rows.
- Do not create extra accounts to multiply quotas; that violates Hunter's terms.
- Read the key via os.environ.get("HUNTERAPIKEY") and never print it.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_5q26ECtXlh5aW7tl72iSxQ