{"openapi":"3.1.0","info":{"title":"SHSY Email Preflight","version":"1.0.0","description":"Email preflight: syntax, live MX/DNS evidence, disposable-list match, role/free-provider flags and typo suggestions. Single synchronous JSON response. No SMTP probe; mailbox existence and deliverability stay unknown.","x-guidance":"Use Email Preflight before deeper mailbox verification. Send one email in a POST JSON body. It never confirms mailbox existence. Check /agent-seller/status for launch availability.","contact":{"email":"sj@someonehastosayyes.com","url":"https://github.com/skmj231/someonehastosayyes/issues"}},"servers":[{"url":"https://someonehastosayyes.com"}],"paths":{"/api/agent/email-preflight":{"post":{"operationId":"emailPreflight","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.001000"},"protocols":[{"x402":{}}]},"tags":["Email validation"],"summary":"Check an email before mailbox verification","description":"Email preflight: syntax, live MX/DNS evidence, disposable-list match, role/free-provider flags and typo suggestions. Single synchronous JSON response. No SMTP probe; mailbox existence and deliverability stay unknown.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","minLength":1,"maxLength":320}},"required":["email"],"additionalProperties":false},"example":{"email":"person@example.com"}}}},"responses":{"200":{"description":"Deterministic evidence, never a guarantee of delivery","content":{"application/json":{"schema":{"type":"object","required":["schema_version","normalized_email","syntax_valid","mailbox_exists","deliverable","mail_route","action","risk_flags","evidence","checked_at","request_id"],"properties":{"schema_version":{"const":"1.0"},"normalized_email":{"type":"string"},"domain":{"type":["string","null"]},"syntax_valid":{"type":"boolean"},"smtp_utf8_required":{"type":"boolean"},"mailbox_exists":{"const":"unknown"},"deliverable":{"const":"unknown"},"mx_present":{"type":["boolean","null"]},"mx_hosts":{"type":"array","items":{"type":"object","required":["host","priority"],"properties":{"host":{"type":"string"},"priority":{"type":"integer"}}}},"mail_route":{"enum":["unknown","mx","implicit_mx","null_mx","conflicting_mx","domain_not_found","no_mail_route"]},"disposable_domain":{"type":["boolean","null"]},"role_account":{"type":["boolean","null"]},"free_provider":{"type":["boolean","null"]},"spf_present":{"type":["boolean","null"]},"dmarc_at_exact_domain_present":{"type":["boolean","null"]},"typo_suggestion":{"type":["string","null"]},"action":{"enum":["reject","review","continue_with_mailbox_verification"]},"risk_flags":{"type":"array","items":{"type":"string"}},"checked_at":{"type":"string","format":"date-time"},"request_id":{"type":"string"},"rules_version":{"type":"string"},"disposable_list":{"type":"object"},"evidence":{"type":"array","items":{"type":"object","required":["name","type","status","records","observed_at"],"properties":{"name":{"type":"string"},"type":{"enum":["MX","A","AAAA","TXT"]},"status":{"enum":["ok","no_records","nxdomain","unavailable"]},"records":{"type":"array"},"observed_at":{"type":"string","format":"date-time"}}}}}},"example":{"schema_version":"1.0","normalized_email":"person@example.com","domain":"example.com","syntax_valid":true,"smtp_utf8_required":false,"mailbox_exists":"unknown","deliverable":"unknown","spf_present":false,"dmarc_at_exact_domain_present":false,"mx_present":true,"mx_hosts":[{"host":".","priority":0}],"mail_route":"null_mx","disposable_domain":false,"role_account":false,"free_provider":false,"typo_suggestion":null,"risk_flags":["null_mx"],"action":"reject","checked_at":"2026-09-17T00:00:00Z","evidence":[{"name":"_dmarc.example.com","type":"TXT","status":"no_records","records":[],"observed_at":"2026-09-17T00:00:00Z"},{"name":"example.com","type":"MX","status":"ok","records":[{"exchange":".","priority":0}],"observed_at":"2026-09-17T00:00:00Z"},{"name":"example.com","type":"TXT","status":"no_records","records":[],"observed_at":"2026-09-17T00:00:00Z"}],"rules_version":"2026-09-17.1","disposable_list":{"package":"disposable-email-domains","version":"1.0.62","meaning":"false means not found in this list; not proof of a permanent mailbox"},"authentication_note":"Record presence only. SPF/DMARC concern sending authentication, not recipient existence. Parent-domain DMARC fallback and policy validity are not evaluated.","request_id":"example-only"}}}},"400":{"description":"Invalid request shape; not charged"},"402":{"description":"x402 v2 USDC payment required"},"503":{"description":"Unavailable or DNS incomplete; not charged"}}}}}}