Signup and lead forms
Reject malformed addresses and disposable domains before they become low-quality users, leads, or support records.
Email validation and list hygiene
Check email addresses before they enter your CRM, signup flow, outreach list, or AI agent. ToolTrace returns structured evidence for each address, so your application can separate invalid, risky, valid, and unknown results without uploading your list to a separate verification vendor.

Endpoint
POST /v1/verify-emailSet your key once in a server-side environment variable, then send a JSON request.
curl --request POST \
--url "https://api.tooltrace.io/v1/verify-email" \
--header "X-ToolTrace-Key: ${TOOLTRACE_KEY}" \
--header "Content-Type: application/json" \
--data '{
"email": "[email protected]"
}'Response scope
The response is structured for software, with source evidence kept beside the extracted or inspected data.
Practical uses
Reject malformed addresses and disposable domains before they become low-quality users, leads, or support records.
Check addresses before importing or sending campaigns, then route risky and unknown results for review instead of treating them as valid.
Give an agent a small, deterministic tool for deciding whether an email passes basic checks, with reasons it can explain to a user.
Implementation guidance
Verification checks syntax, normalized form, domain existence, mail-routing records, disposable-domain membership, free-provider status, role-account patterns, common domain typos, and SMTP recipient acceptance where the receiving server allows it. Each response also carries a 0-100 deliverability score so a buyer can filter by confidence rather than enum alone.
A valid result means the address passed those checks. It does not prove that a person owns the inbox, that the mailbox will accept a message, or that an email will reach the primary inbox.
On a mixed audited corpus we measure 97.9% classification accuracy with zero false positives, meaning no invalid or disposable address was ever returned as valid in testing. On business-domain-heavy lists the ceiling is near 99%; on consumer-provider-heavy lists (Gmail, Yahoo, Outlook) the ceiling is roughly 95%, because big providers return misleading SMTP responses to probes from unwarmed IPs.
We never advertise 99% unqualified. The honest number depends on list composition, and we publish the methodology so a buyer can reproduce it.
Use invalid for malformed addresses, missing domains, domains that do not accept mail, and disposable addresses. Use risky for catch-all domains without specific-mailbox confirmation or likely typos. Use unknown when DNS or SMTP is inconclusive. Keep unknown separate from invalid so transient infrastructure problems do not delete good leads. Set a score threshold (for example 80) to automatically filter role accounts, soft-confirmed accept-all addresses, and typo'd domains without reading the reasons list.
Use POST /v1/verify-email for a signup or real-time form. Use POST /v1/verify-email/batch for up to 500 addresses in one synchronous request. For larger lists use the asynchronous Bulk verifier job queue in the dashboard: upload up to 50,000 addresses, poll status, download a CSV when the job finishes, and receive a signed webhook on completion. The job queue dedupes within a job and charges only unique probes.
Results for the same normalized address are cached for seven days, so a repeat verification returns a deterministic answer and incurs no extra probe cost. The response includes a cached flag so callers can tell a repeat from a fresh probe. Use the cache for list hygiene without worrying about drift across a bulk run.
This API checks an address you already have. It does not guess a person's address from a name, scrape contact details, or verify employment. Keeping validation separate from discovery makes the result easier to explain and reduces accidental claims about a person.
A single-address check costs 1 credit. A batch and a bulk job each cost 1 credit per unique normalized address; duplicates are free. Browser rendering is not used. The endpoint performs bounded DNS and SMTP work and returns usage headers beside the result, so applications can monitor quota consumption without a second billing integration.
Send your key through the X-ToolTrace-Key header from server-side code. Read credit and rate-limit headers after every request. Validation, blocked destination, authentication, plan, and upstream fetch errors use structured responses that applications should handle by code rather than message text.
Use a dedicated key for each environment. Review current fields in the interactive API reference and compare usage limits on the pricing page.