{"openapi":"3.1.0","info":{"title":"InboxGuards Email Test","version":"1.0.0","description":"Send a real email to a one-time address and get a deliverability and security report: SPF, DKIM, DMARC, ARC, sending IP reverse DNS, SpamCop, MTA-STS/TLS-RPT, BIMI, List-Unsubscribe, header and content checks. Free to create a test; pay only to read a finished report.","contact":{"url":"https://api.inboxguardstest.com/llms.txt"},"x-guidance":"Send a real email to a one-time address and get a deliverability and security report: SPF, DKIM, DMARC, ARC, sending IP reverse DNS, SpamCop, MTA-STS/TLS-RPT, BIMI, List-Unsubscribe, header and content checks. Free to create a test; pay only to read a finished report. Call a paid route without payment to get an x402 v2 challenge (402 + PAYMENT-REQUIRED header), pay in USDC, retry with PAYMENT-SIGNATURE. Invalid input -> 400, never charged. More: https://api.inboxguardstest.com/llms.txt"},"servers":[{"url":"https://api.inboxguardstest.com"}],"x-discovery":{"wellKnown":"https://api.inboxguardstest.com/.well-known/x402","llms":"https://api.inboxguardstest.com/llms.txt"},"paths":{"/v1/report":{"get":{"operationId":"v1_report","summary":"Email deliverability and security report for a real email you sent","description":"1) POST /v1/tests (free) for a one-time address + read token. 2) Send one real email to it. 3) GET this with ?test_id= and X-Read-Token. Report: SPF, DKIM (key size, alignment), DMARC, ARC, BIMI, sending IP rDNS + SpamCop, MTA-STS/TLS-RPT, one-click unsubscribe, headers, content, 0-100 score, top fixes. Not-ready/unknown tests: 4xx, never charged.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"protocols":[{"x402":{"version":2,"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x2dAF658B01e257206375798a15832E9f547D65dD"}}]},"responses":{"200":{"description":"Success (payment settled)","content":{"application/json":{"schema":{"type":"object","required":["schema_version","test_id","received_at","score","grade","top_fixes","suggestions","message","connection","authentication","transport_policy","links","findings","notes"],"properties":{"schema_version":{"type":"string"},"test_id":{"type":"string"},"received_at":{"type":"string","format":"date-time"},"analyzed_at":{"type":"string","format":"date-time"},"score":{"type":"integer","minimum":0,"maximum":100},"grade":{"type":"string","enum":["A","B","C","D","F"]},"top_fixes":{"type":"array","items":{"type":"object","required":["id","title","fix"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"fix":{"type":"string"}}},"description":"Up to 3 fail/warn items to fix first"},"suggestions":{"type":"array","items":{"type":"object","required":["id","title","fix"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"fix":{"type":"string"}}},"description":"Optional improvements; do not lower the score"},"message":{"type":"object","description":"size, From/envelope domains, Message-ID domain, List-Unsubscribe, content facts (no body text)"},"connection":{"type":"object","description":"sending IP and HELO from Cloudflare's trace header, PTR, forward-confirmed rDNS, SpamCop","properties":{"ip":{"type":"string"},"helo":{"type":"string"},"source":{"type":"string"},"ptr":{"type":"array","items":{"type":"string"}},"fcrdns":{"type":"boolean"},"spamcop":{"type":"string"}}},"cloudflare":{"type":"object","description":"Cloudflare's own Authentication-Results and spam score for the inbound hop"},"authentication":{"type":"object","description":"SPF, DKIM (each signature: domain, selector, result, aligned, key_bits), DMARC (result, policy, alignment), ARC, BIMI","properties":{"spf":{"type":"object"},"dkim":{"type":"array"},"dmarc":{"type":"object"},"arc":{"type":"object"},"bimi":{"type":"object"}}},"transport_policy":{"type":"object","description":"sender domain MTA-STS and TLS-RPT records"},"links":{"type":"object","description":"link reputation status per domain (Google Web Risk; 'not_checked' until configured)"},"findings":{"type":"array","items":{"type":"object","required":["id","area","severity","title"],"properties":{"id":{"type":"string"},"area":{"type":"string"},"severity":{"type":"string","enum":["pass","info","warn","fail"]},"title":{"type":"string"},"detail":{"type":"string"},"fix":{"type":"string"}}}},"notes":{"type":"array","items":{"type":"string"}},"partial_errors":{"type":"array","items":{"type":"string"}}}}}}},"400":{"description":"Invalid input. Never charged."},"402":{"description":"Payment required. x402 v2 challenge in the PAYMENT-REQUIRED header."},"404":{"description":"Unknown or deleted test. Never charged."},"409":{"description":"Report not ready (waiting, rejected_or_not_received, or analysis_failed). Never charged."}},"parameters":[{"name":"test_id","in":"query","required":true,"schema":{"type":"string","pattern":"^[a-z2-7]{12}$","description":"test_id from POST /v1/tests"},"example":"abcdefgh2345"},{"name":"X-Read-Token","in":"header","required":true,"schema":{"type":"string"},"description":"read_token returned once by POST /v1/tests"}]}}}}