Email Finding
get_email is the only Email-category tool. It takes a name and a domain, generates every common email pattern, and verifies each against the domain’s mail server via SMTP — no mail is actually sent. This guide covers the patterns and pitfalls of running it at scale.
Basic usage
input_parameters is echoed back in the response — useful for batching where you correlate by lead_id.
Handling catch-all domains
Catch-all domains accept SMTP traffic for every local-part, so verification can’t disambiguate the real address. The response sets is_catch_all: true and still returns the most likely candidate (by pattern frequency).
When you see is_catch_all: true:
- Don’t blast. A bounce won’t tell you the address is wrong because the server accepts everything.
- Cross-check against LinkedIn. Look for the email on the profile, in a press release, or in the SignalHire-style social header.
- Use a soft probe. Send a low-stakes message (e.g. an SDR cold email rather than a procurement contract) so the cost of being wrong is small.
Pattern coverage
get_email tries every common pattern, including:
Each candidate gets one SMTP verification round-trip. The first deliverable hit is returned.
Latency
Expect 2–5 seconds per call. The SMTP handshake to the domain’s MX records is the slow part — it’s network-bound. For batch jobs:
- Run requests in parallel (small concurrency, e.g. 5–10).
- Don’t expect sub-second responses; budget at least 3s p50.
Batching
Concurrency above ~10 requests will hit rate limits. Honor Retry-After on 429 responses.
When to skip get_email
Failure cases
Token cost
5 tokens per call. A failed verification still costs 5 tokens (the SMTP handshakes ran), but 5xx upstream errors trigger an automatic refund.