Email & Enrichment
Verify email deliverability, find professional email addresses, search all emails at a domain, and enrich people and companies — all through a single gateway backed by Hunter.io. No Hunter account required, no per-month plan, pay only for what you use.
Ways to call this
Section titled “Ways to call this”Email find / verify / domain-search are step-callable through the typed ctx.sapiom.search.emailSearch client (findEmail, verifyEmail, domainSearch). The enrichment operations (company, people, combined) aren’t in the typed client yet — call those via the SDK. See Using Capabilities.
Call sapiom_email_find, sapiom_domain_search, or sapiom_company_enrichment (and the rest of the Hunter family) directly via the remote MCP — no workflow to author. Run tool_discover to find tools by goal.
Wrap your HTTP client with @sapiom/fetch (or @sapiom/axios) and call the gateway directly — from anywhere, including inside a workflow step. See the Quick Example below and the API reference for full parameters.
Quick Example
Section titled “Quick Example”import { createFetch } from "@sapiom/fetch";
const sapiomFetch = createFetch({ apiKey: process.env.SAPIOM_API_KEY, agentName: "my-agent",});
const baseUrl = "https://hunter.services.sapiom.ai";
// 1. Verify an email address ($0.006)const verifyRes = await sapiomFetch();const verify = await verifyRes.json();console.log(verify.data.result); // "deliverable" | "risky" | "undeliverable"console.log(verify.data.score); // 0–100 confidence scoreconsole.log(verify.data.disposable); // true if a disposable/temp address
// 2. Enrich the company behind the domain ($0.0024)const enrichRes = await sapiomFetch( `${baseUrl}/v2/company-enrichment?domain=acme.com`);const company = await enrichRes.json();console.log(company.data.name); // "Acme Corp"console.log(company.data.industry); // "Technology"console.log(company.data.linkedin_url);How It Works
Section titled “How It Works”Requests are proxied synchronously through the Sapiom gateway (https://hunter.services.sapiom.ai) to Hunter.io v2. All eight routes carry @X402Payment — the Sapiom SDK negotiates the micropayment automatically and debits your prepaid balance per call. There are no subscriptions and no Hunter account to manage.
Credit base: $0.0120 per Hunter credit. Tools are priced as fractions or multiples of that credit base (e.g. email verification = 0.5 credit = $0.006).
All endpoints are synchronous GET requests — every call returns a result immediately with no polling required.
Provider
Section titled “Provider”Powered by Hunter.io (v2 API). Hunter.io provides professional email discovery, verification, and company/people enrichment for B2B workflows.
API Reference
Section titled “API Reference”Endpoints
Section titled “Endpoints”Base URL: https://hunter.services.sapiom.ai
| Method | Path | Tool | Price |
|---|---|---|---|
| GET | /v2/email-verifier | sapiom_email_verify | $0.006 |
| GET | /v2/email-finder | sapiom_email_find | $0.012 |
| GET | /v2/domain-search | sapiom_domain_search | $0.012–$1.20 (per email returned) |
| GET | /v2/email-count | sapiom_email_count | $0.001 |
| GET | /v2/company-enrichment | sapiom_company_enrichment | $0.0024 |
| GET | /v2/people-enrichment | sapiom_people_enrichment | $0.0024 |
| GET | /v2/combined-enrichment | sapiom_combined_enrichment | $0.0024 |
| GET | /v2/account | sapiom_hunter_account | $0.001 |
Email Verifier
Section titled “Email Verifier”Endpoint: GET https://hunter.services.sapiom.ai/v2/email-verifier
Verify an email address — checks deliverability, SMTP validity, disposable-address detection, and returns a confidence score. $0.006 per call (0.5 Hunter credit).
Parameters
Section titled “Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Email address to verify, e.g. [email protected] |
agentName | string | No | Agent name for spend attribution |
Response shape
Section titled “Response shape”{ "data": { "status": "valid", "result": "deliverable", "score": 92, "regexp": true, "gibberish": false, "disposable": false, "webmail": false, "mx_records": true, "smtp_server": true, "smtp_check": true, "accept_all": false, "block": false },}Error Codes
Section titled “Error Codes”| Code | Description |
|---|---|
| 400 | Invalid input — email missing or malformed |
| 402 | x402 payment challenge — insufficient balance or no valid Sapiom identity |
Email Finder
Section titled “Email Finder”Endpoint: GET https://hunter.services.sapiom.ai/v2/email-finder
Find the most likely professional email address for a person at a company. Requires a domain (or company name) and a name (either first_name+last_name, or full_name). $0.012 per call (1 Hunter credit).
Parameters
Section titled “Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Either domain or company | Company domain, e.g. acme.com |
company | string | Either domain or company | Company name if domain is unknown, e.g. "Acme Corp" |
first_name | string | Either full identity combo | First name |
last_name | string | Either full identity combo | Last name |
full_name | string | Either full identity combo | Full name (alternative to first+last) |
agentName | string | No | Agent name for spend attribution |
Identity requirement: you must supply (domain OR company) AND (first_name+last_name OR full_name). A missing or incomplete identity combination returns 400.
Response shape
Section titled “Response shape”{ "data": { "first_name": "Jane", "last_name": "Smith", "score": 87, "domain": "acme.com", "position": "CTO", "linkedin_url": "https://linkedin.com/in/janesmith", "sources": [{ "domain": "acme.com", "uri": "https://acme.com/team" }] }, "meta": { "params": { "domain": "acme.com", "full_name": "Jane Smith" } }}Error Codes
Section titled “Error Codes”| Code | Description |
|---|---|
| 400 | Missing or incomplete identity combination — domain/company + name are both required |
| 402 | x402 payment challenge — insufficient balance or no valid Sapiom identity |
Domain Search
Section titled “Domain Search”Endpoint: GET https://hunter.services.sapiom.ai/v2/domain-search
Return email addresses found for a domain, with optional filters for type, seniority, and department. Billed per email returned at $0.012 each (max 100 per call = max $1.20).
Parameters
Section titled “Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain to search, e.g. acme.com |
limit | number | No | Max emails to return (1–100, default 10) |
type | string | No | "personal" or "generic" |
seniority | string | No | Filter by seniority level, e.g. "executive" |
department | string | No | Filter by department, e.g. "engineering" |
agentName | string | No | Agent name for spend attribution |
Response shape
Section titled “Response shape”{ "data": { "domain": "acme.com", "disposable": false, "webmail": false, "accept_all": false, "pattern": "{first}.{last}", "organization": "Acme Corp", "emails": [ { "type": "personal", "confidence": 90, "first_name": "Jane", "last_name": "Smith", "position": "CTO", "seniority": "executive", "department": "engineering" } ] }, "meta": { "results": 1, "limit": 10, "params": { "domain": "acme.com" } }}Error Codes
Section titled “Error Codes”| Code | Description |
|---|---|
| 400 | Invalid input — domain missing |
| 402 | x402 payment challenge — insufficient balance or no valid Sapiom identity |
Email Count
Section titled “Email Count”Endpoint: GET https://hunter.services.sapiom.ai/v2/email-count
Count the number of email addresses Hunter has indexed for a domain or company — useful before running a domain search. $0.001 per call (nominal gateway overhead; Hunter exposes this endpoint for free).
Parameters
Section titled “Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Either domain or company | Domain to count, e.g. acme.com |
company | string | Either domain or company | Company name if domain is unknown |
type | string | No | "personal" or "generic" |
agentName | string | No | Agent name for spend attribution |
Response shape
Section titled “Response shape”{ "data": { "total": 47, "personal_emails": 38, "generic_emails": 9, "department": {}, "seniority": {} }, "meta": { "params": { "domain": "acme.com" } }}Error Codes
Section titled “Error Codes”| Code | Description |
|---|---|
| 400 | Invalid input — domain or company required |
| 402 | x402 payment challenge — no valid Sapiom identity |
Company Enrichment
Section titled “Company Enrichment”Endpoint: GET https://hunter.services.sapiom.ai/v2/company-enrichment
Enrich a company by its domain — returns name, industry, headcount, description, social profiles, and more. $0.0024 per call (0.2 Hunter credit). Returns 404 when Hunter has no data for the domain — this is a clean “no data” success, not an error condition.
Parameters
Section titled “Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Company domain, e.g. acme.com |
agentName | string | No | Agent name for spend attribution |
Response shape
Section titled “Response shape”{ "data": { "name": "Acme Corp", "domain": "acme.com", "description": "A leading provider of...", "industry": "Technology", "size_range": "50-100", "city": "San Francisco", "state": "California", "country": "United States", "linkedin_url": "https://linkedin.com/company/acme", "twitter": "@acme", "funding_stage": "Series B" }}Error Codes
Section titled “Error Codes”| Code | Description |
|---|---|
| 400 | Invalid input — domain missing |
| 402 | x402 payment challenge — insufficient balance or no valid Sapiom identity |
| 404 | No enrichment data found for this domain — treat as a clean “no data” result |
People Enrichment
Section titled “People Enrichment”Endpoint: GET https://hunter.services.sapiom.ai/v2/people-enrichment
Enrich a person by their email address — returns name, role, seniority, department, LinkedIn profile, and company information. $0.0024 per call (0.2 Hunter credit). Returns 404 when Hunter has no data for the email.
Parameters
Section titled “Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Email address to enrich, e.g. [email protected] |
agentName | string | No | Agent name for spend attribution |
Response shape
Section titled “Response shape”{ "data": { "first_name": "Jane", "last_name": "Smith", "position": "Chief Technology Officer", "seniority": "executive", "department": "engineering", "twitter": "@janesmith", "linkedin_url": "https://linkedin.com/in/janesmith", "company": { "name": "Acme Corp", "domain": "acme.com", "industry": "Technology" } }}Error Codes
Section titled “Error Codes”| Code | Description |
|---|---|
| 400 | Invalid input — email missing |
| 402 | x402 payment challenge — insufficient balance or no valid Sapiom identity |
| 404 | No enrichment data found for this email — treat as a clean “no data” result |
Combined Enrichment
Section titled “Combined Enrichment”Endpoint: GET https://hunter.services.sapiom.ai/v2/combined-enrichment
Return person and company enrichment in a single call. $0.0024 per call (0.2 Hunter credit) — the same price as either enrichment alone. Returns 404 when Hunter has no data.
Parameters
Section titled “Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Email address to enrich, e.g. [email protected] |
agentName | string | No | Agent name for spend attribution |
Response shape
Section titled “Response shape”{ "data": { "person": { "first_name": "Jane", "last_name": "Smith", "position": "CTO", "seniority": "executive", "department": "engineering", "linkedin_url": "https://linkedin.com/in/janesmith" }, "company": { "name": "Acme Corp", "domain": "acme.com", "industry": "Technology", "size_range": "50-100", "city": "San Francisco" } }}Error Codes
Section titled “Error Codes”| Code | Description |
|---|---|
| 400 | Invalid input — email missing |
| 402 | x402 payment challenge — insufficient balance or no valid Sapiom identity |
| 404 | No enrichment data found for this email — treat as a clean “no data” result |
Account
Section titled “Account”Endpoint: GET https://hunter.services.sapiom.ai/v2/account
Retrieve your Hunter.io account details — plan name, remaining credits, and usage. Useful for checking available capacity before high-volume workflows. $0.001 per call (nominal gateway overhead; Hunter exposes this endpoint for free).
No parameters required beyond optional agentName.
Response shape
Section titled “Response shape”{ "data": { "first_name": "Sapiom", "last_name": "Gateway", "plan_name": "Business", "plan_level": 3, "reset_date": "2026-07-01", "team_id": 0, "calls": { "used": 142, "available": 858 }, "requests": { "used": 142, "available": 858 } }}Error Codes
Section titled “Error Codes”| Code | Description |
|---|---|
| 402 | x402 payment challenge — no valid Sapiom identity |
Pricing
Section titled “Pricing”All pricing is charged per call from your prepaid Sapiom balance via the x402 payment guard. The Hunter.io credit base is $0.0120 per credit.
| Tool | Endpoint | Price | Notes |
|---|---|---|---|
sapiom_email_verify | /v2/email-verifier | $0.006 | 0.5 credit |
sapiom_email_find | /v2/email-finder | $0.012 | 1 credit |
sapiom_domain_search | /v2/domain-search | $0.012–$1.20 | $0.012 per email returned; max 100 emails = max $1.20 |
sapiom_email_count | /v2/email-count | $0.001 | Nominal overhead; Hunter endpoint is free |
sapiom_company_enrichment | /v2/company-enrichment | $0.0024 | 0.2 credit |
sapiom_people_enrichment | /v2/people-enrichment | $0.0024 | 0.2 credit |
sapiom_combined_enrichment | /v2/combined-enrichment | $0.0024 | 0.2 credit — person + company in one call |
sapiom_hunter_account | /v2/account | $0.001 | Nominal overhead; Hunter endpoint is free |
Domain search billing: you are charged $0.012 for each email address returned, not per call. A search returning 5 emails costs $0.060; a search returning 100 emails costs $1.20. Use sapiom_email_count first if you want to estimate the result size before running a large domain search.
Nominal endpoints: sapiom_email_count and sapiom_hunter_account call Hunter endpoints that Hunter exposes for free. Sapiom charges a nominal $0.001 for gateway overhead on these routes.
If your balance is insufficient (or if no valid Sapiom identity is provided), all routes return 402 (an x402 payment challenge). The Sapiom SDK handles this automatically.