{"openapi":"3.1.0","info":{"title":"Contact Verify (verify-x402)","version":"1.0.0","description":"Contact Verify (verify-x402). Contact Verify (verify-x402). Preview is free. Basic is $0.002 for format plus mail server. Full is $0.01 for a real mailbox check. Phone line type is $0.02. Domain check is $0.02. Sender check is $0.025. No API key. 3× cheaper than typical $0.03 email checks. Contact Verify (verify-x402) full check: a real mailbox check at $0.01 (SMTP deliverability, disposable, catch-all, and role). Use before sending, for lead lists, CRM cleanup, and sign-up fraud checks. Contact Verify (verify-x402) phone lookup: carrier line type (mobile, landline, VoIP, toll-free) and E.164 format. Detect VoIP/burner numbers in sign-up fraud checks; confirm SMS-capable mobiles. $0.02. Paid routes return HTTP 402 until the client sends a valid x402 PAYMENT-SIGNATURE. USDC uses 6 decimals.","contact":{"name":"Contact Verify (verify-x402)","url":"https://getcontactverify.com"},"x-category":"Data","x-guidance":"Contact Verify (verify-x402). Contact Verify (verify-x402). Preview is free. Basic is $0.002 for format plus mail server. Full is $0.01 for a real mailbox check. Phone line type is $0.02. Domain check is $0.02. Sender check is $0.025. No API key. 3× cheaper than typical $0.03 email checks. Category: Data. Email tags: email-verification, email-validation, validate-email, verify-email, email-checker, bounce-check, deliverability, disposable-email, lead-generation, crm, fraud-prevention. Phone tags: phone-lookup, phone-validation, phone-verification, carrier-lookup, line-type, voip-detection, e164, sms, fraud-prevention, kyc. Batch tags: email-verification, email-validation, validate-email, batch-email, lead-generation, bounce-check, deliverability, disposable-email, crm, fraud-prevention. Basic tags: email-verification, mx-check, disposable-email, free-email, role-account. Domain tags: vendor-fraud, invoice-fraud, lookalike-domain, domain-age, typosquat. Sender tags: vendor-fraud, invoice-fraud, email-verification, lookalike-domain, domain-age. POST /verify/email with {\"email\":\"...\"} checks one mailbox for $0.01 USD. Contact Verify (verify-x402) full check: a real mailbox check at $0.01 (SMTP deliverability, disposable, catch-all, and role). Use before sending, for lead lists, CRM cleanup, and sign-up fraud checks. POST /verify/phone with {\"phone\":\"...\",\"country\":\"US\"} returns a carrier line type for $0.02 USD. Add country (ISO 3166-1 alpha-2; needed only when phone isn't E.164) when the number is not already E.164. Contact Verify (verify-x402) phone lookup: carrier line type (mobile, landline, VoIP, toll-free) and E.164 format. Detect VoIP/burner numbers in sign-up fraud checks; confirm SMS-capable mobiles. $0.02. POST /verify/email/batch accepts {\"emails\":[...]} for up to 50 addresses at $0.01 USD each. Contact Verify (verify-x402) batch: the full $0.01 mailbox check for up to 50 addresses. The HTTP 402 amount is 10000 atomic units times the number of unique, well-formed addresses. Invalid syntax is not billed. A finished check can be status unknown. If any address cannot be checked, the response is HTTP 503 with no results and payment is not settled. POST /verify/email/basic accepts {\"email\":\"...\"} for $0.002 USD (2000 atomic units). Contact Verify (verify-x402) basic check: $0.002 (2000 atomic units) for format plus mail server. Syntax, MX, disposable, free-email, and role account. mailbox_checked is false. It does not check the mailbox. The full real mailbox check is POST /verify/email at $0.01. POST /verify/email/preview with {\"email\":\"...\"} is free. GET on that path is HTTP 405 and does not echo the query. Contact Verify (verify-x402) preview is free: syntax, MX, disposable, and role account. It does not check the mailbox (mailbox_checked is false). No payment. Basic is POST /verify/email/basic at $0.002 for format plus mail server. The full real mailbox check is POST /verify/email at $0.01. The address is a JSON body field, not a query parameter. 30 requests per minute per IP. GET /verify/domain?domain= checks one domain for $0.02 USD. POST the same path when a sender address is included. Contact Verify (verify-x402) domain check: domain age, lookalike and typosquat detection against a known domain, MX match, live website, business-registry match, free and disposable sender flags, and SPF/DMARC. Returns low_risk, medium_risk, or high_risk with reasons. $0.02. If registration data or DNS cannot be read, payment is not settled. POST /verify/sender accepts {\"email\":\"...\"} for $0.025 USD. Contact Verify (verify-x402) sender check: email deliverability plus the domain check in one call. $0.025. If the mailbox check does not complete, or registration data or DNS cannot be read, payment is not settled. GET /verify/domain/preview is free and can read low_risk when an unchecked age signal would raise the paid verdict. Contact Verify (verify-x402) domain preview is free: lookalike, MX, a sender domain's free and disposable flags, and SPF/DMARC. It does not check domain age, the website, or a business registry, so the verdict can read low_risk when an unchecked age signal would raise it. The paid check is GET /verify/domain at $0.02. It takes sender_domain, never an email. 10 requests per minute per IP. No signup and no API key. Send the request, read HTTP 402 and the PAYMENT-REQUIRED header, pay USDC on Base with x402 exact, then retry with PAYMENT-SIGNATURE. Invalid input is HTTP 400 and is not billed. The free email preview is limited to 30 requests per minute per IP. The free domain preview is limited to 10 requests per minute per IP. Email addresses and phone numbers are not stored. Full usage is at /llms-full.txt. The stdio MCP server installs with no registry login: npx -y https://getcontactverify.com/mcp/contact-verify-mcp.tgz."},"servers":[{"url":"https://getcontactverify.com"}],"paths":{"/verify/email":{"post":{"operationId":"verifyEmail","summary":"Verify an email address","description":"Contact Verify (verify-x402) full check: a real mailbox check at $0.01 (SMTP deliverability, disposable, catch-all, and role). Use before sending, for lead lists, CRM cleanup, and sign-up fraud checks.","tags":["email-verification","email-validation","validate-email","verify-email","email-checker","bounce-check","deliverability","disposable-email","lead-generation","crm","fraud-prevention"],"x-available":true,"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.010000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["email"],"properties":{"email":{"type":"string","maxLength":254,"example":"test@example.com","description":"Email address to verify. Syntax is checked before payment."}}},"example":{"email":"test@example.com"}}}},"responses":{"200":{"description":"Mailbox-level email verification result.","content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"status":{"type":"string","description":"Deliverability status for the mailbox."},"overall_score":{"type":"number"},"is_deliverable":{"type":"boolean"},"is_catch_all":{"type":"boolean"},"is_disposable":{"type":"boolean"},"is_role_account":{"type":"boolean"},"is_safe_to_send":{"type":"boolean"},"is_valid_syntax":{"type":"boolean"},"can_connect_smtp":{"type":"boolean"},"has_inbox_full":{"type":"boolean"},"is_disabled":{"type":"boolean"},"is_spamtrap":{"type":"boolean"},"is_free_email":{"type":"boolean"},"mx_accepts_mail":{"type":"boolean"},"mx_records":{"type":"array","items":{"type":"string"}},"username":{"type":"string"},"domain":{"type":"string"}}}}}},"400":{"description":"Input failed the offline check. No payment is requested."},"402":{"description":"Payment required. The JSON body has x402Version and accepts, matching the PAYMENT-REQUIRED header (base64 JSON, x402 v2). Retry with PAYMENT-SIGNATURE."},"502":{"description":"Upstream verification failed. Payment is not settled."},"503":{"description":"Payments or the upstream credential are not configured, or a batch or sender check could not be completed. A batch or sender miss includes Retry-After and no results."},"504":{"description":"The upstream timed out. Payment is not settled."}}}},"/mcp/contact-verify-mcp.tgz":{"get":{"operationId":"downloadContactVerifyMcp","summary":"Download the stdio MCP package","description":"gzip npm tarball for the stdio server. Install with npx -y and this URL. No npm account and no git credentials.","responses":{"200":{"description":"npm package tarball.","content":{"application/gzip":{"schema":{"type":"string","format":"binary"}}}}}}},"/verify/email/batch":{"post":{"operationId":"verifyEmailBatch","summary":"Verify a list of email addresses","description":"Contact Verify (verify-x402) batch: the full $0.01 mailbox check for up to 50 addresses. The HTTP 402 amount is 10000 atomic units times the number of unique, well-formed addresses. Invalid syntax is not billed. A finished check can be status unknown. If any address cannot be checked, the response is HTTP 503 with no results and payment is not settled.","tags":["email-verification","email-validation","validate-email","batch-email","lead-generation","bounce-check","deliverability","disposable-email","crm","fraud-prevention"],"x-available":true,"x-payment-info":{"price":{"mode":"per_unit","currency":"USD","amount":"0.010000","unit":"email","maxUnits":50},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["emails"],"additionalProperties":false,"properties":{"emails":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"string"},"description":"1 to 50 email addresses. Duplicates and invalid syntax are not billed. The HTTP 402 amount is 10000 atomic units times the number of unique, well-formed addresses."}}},"example":{"emails":["ada@example.com","grace@example.com"]}}}},"responses":{"200":{"description":"One result per submitted address when every check finishes. Status unknown is a finished verdict. An upstream miss is HTTP 503 with no results.","content":{"application/json":{"schema":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string"},"status":{"type":"string"},"is_deliverable":{"type":"boolean"},"is_catch_all":{"type":"boolean"},"is_disposable":{"type":"boolean"},"is_role_account":{"type":"boolean"},"is_valid_syntax":{"type":"boolean"}}}}},"required":["results"]}}}},"400":{"description":"Input failed the offline check. No payment is requested."},"402":{"description":"Payment required. The JSON body has x402Version and accepts, matching the PAYMENT-REQUIRED header (base64 JSON, x402 v2). Retry with PAYMENT-SIGNATURE."},"502":{"description":"Upstream verification failed. Payment is not settled."},"503":{"description":"Payments or the upstream credential are not configured, or a batch or sender check could not be completed. A batch or sender miss includes Retry-After and no results."},"504":{"description":"The upstream timed out. Payment is not settled."}}}},"/verify/email/basic":{"post":{"operationId":"verifyEmailBasic","summary":"Basic email check","description":"Contact Verify (verify-x402) basic check: $0.002 (2000 atomic units) for format plus mail server. Syntax, MX, disposable, free-email, and role account. mailbox_checked is false. It does not check the mailbox. The full real mailbox check is POST /verify/email at $0.01.","tags":["email-verification","mx-check","disposable-email","free-email","role-account"],"x-available":true,"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.002000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"email":{"type":"string","description":"Email address to check. Syntax is checked before payment. Sent in the JSON body so it is not part of the URL."}},"required":["email"]},"example":{"email":"ada@example.com"}}}},"responses":{"200":{"description":"Basic check. tier is basic and mailbox_checked is false. This is not a mailbox deliverability result.","content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"username":{"type":"string"},"domain":{"type":"string"},"tier":{"const":"basic"},"mailbox_checked":{"const":false},"is_valid_syntax":{"type":"boolean"},"is_disposable":{"type":"boolean"},"is_free_email":{"type":"boolean"},"is_role_account":{"type":"boolean"},"mx_accepts_mail":{"type":["boolean","null"]},"upgrade":{"type":"object","properties":{"url":{"const":"/verify/email"},"price_usd":{"const":"0.01"},"adds":{"type":"array","items":{"type":"string"}}}}},"required":["email","tier","mailbox_checked","is_valid_syntax","is_disposable","is_free_email","is_role_account","mx_accepts_mail","upgrade"]}}}},"400":{"description":"Input failed the offline check. Invalid syntax is not billed."},"402":{"description":"Payment required. Amount is 2000 atomic units ($0.002). Retry with PAYMENT-SIGNATURE."},"503":{"description":"Payments are not configured. No payment is requested."}}}},"/verify/email/preview":{"post":{"operationId":"previewEmail","summary":"Preview an email address for free","description":"Contact Verify (verify-x402) preview is free: syntax, MX, disposable, and role account. It does not check the mailbox (mailbox_checked is false). No payment. Basic is POST /verify/email/basic at $0.002 for format plus mail server. The full real mailbox check is POST /verify/email at $0.01. The address is a JSON body field, not a query parameter. 30 requests per minute per IP.","x-available":true,"x-price":"free","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"email":{"type":"string","description":"Email address to preview. Syntax, MX, disposable domain, and role account only. Sent in the body so it is not part of the URL."}},"required":["email"]}}}},"responses":{"200":{"description":"Free preview. mailbox_checked is false. This is not a mailbox deliverability result.","content":{"application/json":{"schema":{"type":"object","properties":{"preview":{"const":true},"mailbox_checked":{"const":false},"email":{"type":"string"},"valid_syntax":{"type":"boolean"},"mx_found":{"type":["boolean","null"]},"is_disposable":{"type":"boolean"},"is_role_account":{"type":"boolean"},"upgrade":{"type":"object","properties":{"url":{"const":"/verify/email"},"price_usd":{"const":"0.01"},"adds":{"type":"array","items":{"type":"string"}}}}},"required":["preview","mailbox_checked","valid_syntax","mx_found","is_disposable","is_role_account","upgrade"]}}}},"400":{"description":"The JSON body is missing, is not an object, or has no email string."},"405":{"description":"GET is not accepted. Send POST with a JSON body. The response does not echo a query string."},"429":{"description":"More than 30 preview requests per minute from this IP."}}}},"/verify/domain":{"get":{"operationId":"verifyDomain","summary":"Check a domain for lookalike and age risk","description":"Contact Verify (verify-x402) domain check: domain age, lookalike and typosquat detection against a known domain, MX match, live website, business-registry match, free and disposable sender flags, and SPF/DMARC. Returns low_risk, medium_risk, or high_risk with reasons. $0.02. If registration data or DNS cannot be read, payment is not settled.","tags":["vendor-fraud","invoice-fraud","lookalike-domain","domain-age","typosquat"],"x-available":true,"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"domain","in":"query","required":true,"example":"examp1e-billing.com","schema":{"type":"string","maxLength":253},"description":"Domain under test. A hostname or URL is reduced to the registrable domain."},{"name":"compare_domain","in":"query","required":false,"example":"example.com","schema":{"type":"string","maxLength":253},"description":"Known domain to compare against."}],"responses":{"200":{"description":"Domain risk result.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["domain","verdict","score","signals","reasons","checked_at"],"properties":{"domain":{"type":"string"},"compare_domain":{"type":["string","null"]},"verdict":{"enum":["low_risk","medium_risk","high_risk"]},"score":{"type":"integer","minimum":0,"maximum":100},"signals":{"type":"object"},"reasons":{"type":"array"},"unavailable_checks":{"type":"array","items":{"type":"string"}},"checked_at":{"type":"string","format":"date-time"}}}}}},"400":{"description":"Input failed the offline check. No payment is requested."},"402":{"description":"Payment required. The JSON body has x402Version and accepts, matching the PAYMENT-REQUIRED header (base64 JSON, x402 v2). Retry with PAYMENT-SIGNATURE."},"502":{"description":"Upstream verification failed. Payment is not settled."},"503":{"description":"Payments or the upstream credential are not configured, or a batch or sender check could not be completed. A batch or sender miss includes Retry-After and no results."},"504":{"description":"The upstream timed out. Payment is not settled."}}},"post":{"operationId":"verifyDomainPost","summary":"Check a domain, including an optional sender address","description":"Contact Verify (verify-x402) domain check: domain age, lookalike and typosquat detection against a known domain, MX match, live website, business-registry match, free and disposable sender flags, and SPF/DMARC. Returns low_risk, medium_risk, or high_risk with reasons. $0.02. If registration data or DNS cannot be read, payment is not settled.","tags":["vendor-fraud","invoice-fraud","lookalike-domain","domain-age","typosquat"],"x-available":true,"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["domain"],"additionalProperties":false,"properties":{"domain":{"type":"string","maxLength":253,"description":"Domain under test. A hostname or URL is reduced to the registrable domain."},"compare_domain":{"type":"string","maxLength":253,"description":"Known domain to compare against."},"sender_email":{"type":"string","maxLength":254,"description":"POST only. Never echoed."},"company_name":{"type":"string","maxLength":200},"jurisdiction":{"type":"string","pattern":"^[A-Z]{2}$"},"checks":{"type":"array","items":{"enum":["age","mx","lookalike","website","registry","free_email","email_auth"]}}}}}}},"responses":{"200":{"description":"Domain risk result.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["domain","verdict","score","signals","reasons","checked_at"],"properties":{"domain":{"type":"string"},"compare_domain":{"type":["string","null"]},"verdict":{"enum":["low_risk","medium_risk","high_risk"]},"score":{"type":"integer","minimum":0,"maximum":100},"signals":{"type":"object"},"reasons":{"type":"array"},"unavailable_checks":{"type":"array","items":{"type":"string"}},"checked_at":{"type":"string","format":"date-time"}}}}}},"400":{"description":"Input failed the offline check. No payment is requested."},"402":{"description":"Payment required. The JSON body has x402Version and accepts, matching the PAYMENT-REQUIRED header (base64 JSON, x402 v2). Retry with PAYMENT-SIGNATURE."},"502":{"description":"Upstream verification failed. Payment is not settled."},"503":{"description":"Payments or the upstream credential are not configured, or a batch or sender check could not be completed. A batch or sender miss includes Retry-After and no results."},"504":{"description":"The upstream timed out. Payment is not settled."}}}},"/verify/domain/preview":{"get":{"operationId":"previewDomain","summary":"Preview a domain for free","description":"Contact Verify (verify-x402) domain preview is free: lookalike, MX, a sender domain's free and disposable flags, and SPF/DMARC. It does not check domain age, the website, or a business registry, so the verdict can read low_risk when an unchecked age signal would raise it. The paid check is GET /verify/domain at $0.02. It takes sender_domain, never an email. 10 requests per minute per IP.","x-available":true,"x-price":"free","security":[],"parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string","maxLength":253},"description":"Domain under test. A hostname or URL is reduced to the registrable domain."},{"name":"compare_domain","in":"query","required":false,"schema":{"type":"string","maxLength":253},"description":"Known domain to compare against."},{"name":"sender_domain","in":"query","required":false,"schema":{"type":"string","maxLength":253},"description":"Sender domain only. Never a full email address."}],"responses":{"200":{"description":"Free domain preview. Reasons are codes only. Age, website, and registry are not checked.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["domain","preview","verdict","signals","reasons","upgrade"],"properties":{"domain":{"type":"string"},"compare_domain":{"type":["string","null"]},"preview":{"const":true},"verdict":{"enum":["low_risk","medium_risk","high_risk"]},"signals":{"type":"object"},"reasons":{"type":"array","items":{"type":"string"}},"upgrade":{"type":"string"}}}}}},"400":{"description":"The domain failed the offline check. No payment is requested."},"405":{"description":"POST is not accepted. Domain preview is GET."},"429":{"description":"More than 10 preview requests per minute from this IP."}}}},"/verify/sender":{"post":{"operationId":"verifySender","summary":"Check an email address and its domain together","description":"Contact Verify (verify-x402) sender check: email deliverability plus the domain check in one call. $0.025. If the mailbox check does not complete, or registration data or DNS cannot be read, payment is not settled.","tags":["vendor-fraud","invoice-fraud","email-verification","lookalike-domain","domain-age"],"x-available":true,"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.025000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"additionalProperties":false,"properties":{"email":{"type":"string","maxLength":254,"description":"Email address to verify. Syntax is checked before payment."},"compare_domain":{"type":"string","maxLength":253},"company_name":{"type":"string","maxLength":200},"jurisdiction":{"type":"string","pattern":"^[A-Z]{2}$"}}}}}},"responses":{"200":{"description":"Email result plus domain result.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["email_check","domain_check","verdict","reasons"],"properties":{"email_check":{"type":"object","properties":{"email":{"type":"string"},"status":{"type":"string"},"is_deliverable":{"type":"boolean"},"is_catch_all":{"type":"boolean"},"is_disposable":{"type":"boolean"},"is_role_account":{"type":"boolean"},"is_valid_syntax":{"type":"boolean"}}},"domain_check":{"type":"object","additionalProperties":false,"required":["domain","verdict","score","signals","reasons","checked_at"],"properties":{"domain":{"type":"string"},"compare_domain":{"type":["string","null"]},"verdict":{"enum":["low_risk","medium_risk","high_risk"]},"score":{"type":"integer","minimum":0,"maximum":100},"signals":{"type":"object"},"reasons":{"type":"array"},"unavailable_checks":{"type":"array","items":{"type":"string"}},"checked_at":{"type":"string","format":"date-time"}}},"verdict":{"enum":["low_risk","medium_risk","high_risk"]},"reasons":{"type":"array"}}}}}},"400":{"description":"Input failed the offline check. No payment is requested."},"402":{"description":"Payment required. The JSON body has x402Version and accepts, matching the PAYMENT-REQUIRED header (base64 JSON, x402 v2). Retry with PAYMENT-SIGNATURE."},"502":{"description":"Upstream verification failed. Payment is not settled."},"503":{"description":"Payments or the upstream credential are not configured, or a batch or sender check could not be completed. A batch or sender miss includes Retry-After and no results."},"504":{"description":"The upstream timed out. Payment is not settled."}}}},"/verify/phone":{"post":{"operationId":"verifyPhone","summary":"Look up a phone number line type","description":"Contact Verify (verify-x402) phone lookup: carrier line type (mobile, landline, VoIP, toll-free) and E.164 format. Detect VoIP/burner numbers in sign-up fraud checks; confirm SMS-capable mobiles. $0.02.","tags":["phone-lookup","phone-validation","phone-verification","carrier-lookup","line-type","voip-detection","e164","sms","fraud-prevention","kyc"],"x-available":true,"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.020000"},"protocols":[{"x402":{}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["phone"],"properties":{"phone":{"type":"string","example":"+14155552671","description":"Phone number to look up. E.164, or a national number when country is set."},"country":{"type":"string","minLength":2,"maxLength":2,"example":"US","description":"ISO 3166-1 alpha-2; needed only when phone isn't E.164"}}},"example":{"phone":"+14155552671","country":"US"}}}},"responses":{"200":{"description":"Carrier line-type lookup result.","content":{"application/json":{"schema":{"type":"object","properties":{"phone_number":{"type":"string"},"national_format":{"type":"string"},"country_code":{"type":"string"},"calling_country_code":{"type":"string"},"valid":{"type":"boolean"},"line_type":{"type":"object","description":"Carrier line type: mobile, landline, VoIP, or toll-free.","properties":{"type":{"type":"string"},"carrier_name":{"type":"string"},"mobile_country_code":{"type":"string"},"mobile_network_code":{"type":"string"},"error_code":{}}}}}}}},"400":{"description":"Input failed the offline check. No payment is requested."},"402":{"description":"Payment required. The JSON body has x402Version and accepts, matching the PAYMENT-REQUIRED header (base64 JSON, x402 v2). Retry with PAYMENT-SIGNATURE."},"502":{"description":"Upstream verification failed. Payment is not settled."},"503":{"description":"Payments or the upstream credential are not configured, or a batch or sender check could not be completed. A batch or sender miss includes Retry-After and no results."},"504":{"description":"The upstream timed out. Payment is not settled."}}}}},"components":{"parameters":{},"schemas":{"Payment":{"type":"object","properties":{"scheme":{"const":"exact"},"network":{"const":"eip155:8453"},"asset":{"const":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"decimals":{"const":6}}}}},"x-payment":{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","decimals":6,"routes":[{"method":"POST","path":"/verify/email","description":"Contact Verify (verify-x402) full check: a real mailbox check at $0.01 (SMTP deliverability, disposable, catch-all, and role). Use before sending, for lead lists, CRM cleanup, and sign-up fraud checks.","tags":["email-verification","email-validation","validate-email","verify-email","email-checker","bounce-check","deliverability","disposable-email","lead-generation","crm","fraud-prevention"],"usd":"0.01","atomicAmount":"10000","decimals":6,"assetSymbol":"USDC","scheme":"exact"},{"method":"POST","path":"/verify/phone","description":"Contact Verify (verify-x402) phone lookup: carrier line type (mobile, landline, VoIP, toll-free) and E.164 format. Detect VoIP/burner numbers in sign-up fraud checks; confirm SMS-capable mobiles. $0.02.","tags":["phone-lookup","phone-validation","phone-verification","carrier-lookup","line-type","voip-detection","e164","sms","fraud-prevention","kyc"],"usd":"0.02","atomicAmount":"20000","decimals":6,"assetSymbol":"USDC","scheme":"exact"},{"method":"POST","path":"/verify/email/batch","description":"Contact Verify (verify-x402) batch: the full $0.01 mailbox check for up to 50 addresses. The HTTP 402 amount is 10000 atomic units times the number of unique, well-formed addresses. Invalid syntax is not billed. A finished check can be status unknown. If any address cannot be checked, the response is HTTP 503 with no results and payment is not settled.","tags":["email-verification","email-validation","validate-email","batch-email","lead-generation","bounce-check","deliverability","disposable-email","crm","fraud-prevention"],"usd":"0.01","atomicAmount":"10000","decimals":6,"assetSymbol":"USDC","scheme":"exact","perEmail":true,"maxEmails":50},{"method":"POST","path":"/verify/email/basic","description":"Contact Verify (verify-x402) basic check: $0.002 (2000 atomic units) for format plus mail server. Syntax, MX, disposable, free-email, and role account. mailbox_checked is false. It does not check the mailbox. The full real mailbox check is POST /verify/email at $0.01.","tags":["email-verification","mx-check","disposable-email","free-email","role-account"],"usd":"0.002","atomicAmount":"2000","decimals":6,"assetSymbol":"USDC","scheme":"exact"},{"method":"GET","path":"/verify/domain","description":"Contact Verify (verify-x402) domain check: domain age, lookalike and typosquat detection against a known domain, MX match, live website, business-registry match, free and disposable sender flags, and SPF/DMARC. Returns low_risk, medium_risk, or high_risk with reasons. $0.02. If registration data or DNS cannot be read, payment is not settled.","tags":["vendor-fraud","invoice-fraud","lookalike-domain","domain-age","typosquat"],"usd":"0.02","atomicAmount":"20000","decimals":6,"assetSymbol":"USDC","scheme":"exact"},{"method":"POST","path":"/verify/domain","description":"Contact Verify (verify-x402) domain check: domain age, lookalike and typosquat detection against a known domain, MX match, live website, business-registry match, free and disposable sender flags, and SPF/DMARC. Returns low_risk, medium_risk, or high_risk with reasons. $0.02. If registration data or DNS cannot be read, payment is not settled.","tags":["vendor-fraud","invoice-fraud","lookalike-domain","domain-age","typosquat"],"usd":"0.02","atomicAmount":"20000","decimals":6,"assetSymbol":"USDC","scheme":"exact"},{"method":"POST","path":"/verify/sender","description":"Contact Verify (verify-x402) sender check: email deliverability plus the domain check in one call. $0.025. If the mailbox check does not complete, or registration data or DNS cannot be read, payment is not settled.","tags":["vendor-fraud","invoice-fraud","email-verification","lookalike-domain","domain-age"],"usd":"0.025","atomicAmount":"25000","decimals":6,"assetSymbol":"USDC","scheme":"exact"}]}}