{"components":{"headers":{"PaymentRequired":{"description":"Base64-encoded JSON copy of the 402 body (x402 v2).","schema":{"type":"string"}},"PaymentResponse":{"description":"Base64-encoded settlement receipt (x402 v2) for a paid result.","schema":{"type":"string"}},"RequestId":{"description":"Request id, also in the body.","schema":{"type":"string"}},"RetryAfter":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"parameters":{"PaymentSignature":{"description":"Base64-encoded x402 v2 payment payload (EIP-3009 'exact' on USDC). Without it the API answers 402 with the price; send the same request again with it to pay.","in":"header","name":"PAYMENT-SIGNATURE","required":false,"schema":{"type":"string"}}},"schemas":{"BimiData":{"additionalProperties":false,"description":"The BIMI assertion record; the logo and certificate are never downloaded.","properties":{"authority_url":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"title":"Authority Url"},"declined":{"default":false,"title":"Declined","type":"boolean"},"dmarc_enforced":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Dmarc Enforced"},"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"},"logo_url":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"title":"Logo Url"},"name":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Name"},"record":{"anyOf":[{"maxLength":4096,"type":"string"},{"type":"null"}],"default":null,"title":"Record"},"record_domain":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Record Domain"},"selector":{"maxLength":200,"minLength":1,"title":"Selector","type":"string"}},"required":["domain","selector"],"title":"BimiData","type":"object"},"BulkItemResult_MailCheckData_":{"additionalProperties":false,"properties":{"error":{"anyOf":[{"$ref":"#/components/schemas/ItemError"},{"type":"null"}],"default":null},"index":{"minimum":0,"title":"Index","type":"integer"},"item":{"maxLength":1024,"minLength":1,"title":"Item","type":"string"},"result":{"anyOf":[{"$ref":"#/components/schemas/CheckResponse_MailCheckData_"},{"type":"null"}],"default":null}},"required":["index","item"],"title":"BulkItemResult[MailCheckData]","type":"object"},"BulkResponse_MailCheckData_":{"additionalProperties":false,"properties":{"checked_at":{"format":"date-time","title":"Checked At","type":"string"},"endpoint":{"maxLength":64,"pattern":"^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$","title":"Endpoint","type":"string"},"failed_count":{"minimum":0,"title":"Failed Count","type":"integer"},"item_count":{"minimum":1,"title":"Item Count","type":"integer"},"request_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Id","type":"string"},"results":{"items":{"$ref":"#/components/schemas/BulkItemResult_MailCheckData_"},"maxItems":20,"title":"Results","type":"array"},"retry_token":{"anyOf":[{"maxLength":256,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","type":"string"},{"type":"null"}],"default":null,"title":"Retry Token"},"schema_version":{"const":"1.0","default":"1.0","title":"Schema Version","type":"string"},"succeeded_count":{"minimum":0,"title":"Succeeded Count","type":"integer"}},"required":["request_id","endpoint","checked_at","results","item_count","succeeded_count","failed_count"],"title":"BulkResponse[MailCheckData]","type":"object"},"CaaData":{"additionalProperties":false,"description":"The relevant CAA set (RFC 8659 section 3) and where it was found.","properties":{"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"},"inherited":{"default":false,"title":"Inherited","type":"boolean"},"iodef":{"default":[],"items":{"maxLength":512,"type":"string"},"maxItems":20,"title":"Iodef","type":"array"},"issuers":{"default":[],"items":{"maxLength":512,"type":"string"},"maxItems":20,"title":"Issuers","type":"array"},"record_name":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Record Name"},"records":{"default":[],"items":{"$ref":"#/components/schemas/CaaRecord"},"maxItems":50,"title":"Records","type":"array"},"wildcard_issuers":{"default":[],"items":{"maxLength":512,"type":"string"},"maxItems":20,"title":"Wildcard Issuers","type":"array"}},"required":["domain"],"title":"CaaData","type":"object"},"CaaRecord":{"additionalProperties":false,"properties":{"critical":{"title":"Critical","type":"boolean"},"flags":{"maximum":255,"minimum":0,"title":"Flags","type":"integer"},"tag":{"maxLength":32,"minLength":1,"title":"Tag","type":"string"},"value":{"maxLength":4096,"title":"Value","type":"string"}},"required":["flags","tag","value","critical"],"title":"CaaRecord","type":"object"},"ChainCertificate":{"additionalProperties":false,"description":"One certificate of the chain: who it is for and who issued it (RFC 4514 strings).","properties":{"issuer":{"maxLength":512,"title":"Issuer","type":"string"},"subject":{"maxLength":512,"title":"Subject","type":"string"}},"required":["subject","issuer"],"title":"ChainCertificate","type":"object"},"CheckResponse_BimiData_":{"additionalProperties":false,"properties":{"checked_at":{"format":"date-time","title":"Checked At","type":"string"},"data":{"$ref":"#/components/schemas/BimiData"},"endpoint":{"maxLength":64,"pattern":"^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$","title":"Endpoint","type":"string"},"findings":{"default":[],"items":{"$ref":"#/components/schemas/Finding"},"maxItems":100,"title":"Findings","type":"array"},"meta":{"$ref":"#/components/schemas/Meta"},"request_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Id","type":"string"},"schema_version":{"const":"1.0","default":"1.0","title":"Schema Version","type":"string"},"status":{"$ref":"#/components/schemas/Status"}},"required":["request_id","endpoint","checked_at","status","data","meta"],"title":"CheckResponse[BimiData]","type":"object"},"CheckResponse_CaaData_":{"additionalProperties":false,"properties":{"checked_at":{"format":"date-time","title":"Checked At","type":"string"},"data":{"$ref":"#/components/schemas/CaaData"},"endpoint":{"maxLength":64,"pattern":"^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$","title":"Endpoint","type":"string"},"findings":{"default":[],"items":{"$ref":"#/components/schemas/Finding"},"maxItems":100,"title":"Findings","type":"array"},"meta":{"$ref":"#/components/schemas/Meta"},"request_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Id","type":"string"},"schema_version":{"const":"1.0","default":"1.0","title":"Schema Version","type":"string"},"status":{"$ref":"#/components/schemas/Status"}},"required":["request_id","endpoint","checked_at","status","data","meta"],"title":"CheckResponse[CaaData]","type":"object"},"CheckResponse_DkimData_":{"additionalProperties":false,"properties":{"checked_at":{"format":"date-time","title":"Checked At","type":"string"},"data":{"$ref":"#/components/schemas/DkimData"},"endpoint":{"maxLength":64,"pattern":"^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$","title":"Endpoint","type":"string"},"findings":{"default":[],"items":{"$ref":"#/components/schemas/Finding"},"maxItems":100,"title":"Findings","type":"array"},"meta":{"$ref":"#/components/schemas/Meta"},"request_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Id","type":"string"},"schema_version":{"const":"1.0","default":"1.0","title":"Schema Version","type":"string"},"status":{"$ref":"#/components/schemas/Status"}},"required":["request_id","endpoint","checked_at","status","data","meta"],"title":"CheckResponse[DkimData]","type":"object"},"CheckResponse_DkimDiscoverData_":{"additionalProperties":false,"properties":{"checked_at":{"format":"date-time","title":"Checked At","type":"string"},"data":{"$ref":"#/components/schemas/DkimDiscoverData"},"endpoint":{"maxLength":64,"pattern":"^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$","title":"Endpoint","type":"string"},"findings":{"default":[],"items":{"$ref":"#/components/schemas/Finding"},"maxItems":100,"title":"Findings","type":"array"},"meta":{"$ref":"#/components/schemas/Meta"},"request_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Id","type":"string"},"schema_version":{"const":"1.0","default":"1.0","title":"Schema Version","type":"string"},"status":{"$ref":"#/components/schemas/Status"}},"required":["request_id","endpoint","checked_at","status","data","meta"],"title":"CheckResponse[DkimDiscoverData]","type":"object"},"CheckResponse_DmarcData_":{"additionalProperties":false,"properties":{"checked_at":{"format":"date-time","title":"Checked At","type":"string"},"data":{"$ref":"#/components/schemas/DmarcData"},"endpoint":{"maxLength":64,"pattern":"^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$","title":"Endpoint","type":"string"},"findings":{"default":[],"items":{"$ref":"#/components/schemas/Finding"},"maxItems":100,"title":"Findings","type":"array"},"meta":{"$ref":"#/components/schemas/Meta"},"request_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Id","type":"string"},"schema_version":{"const":"1.0","default":"1.0","title":"Schema Version","type":"string"},"status":{"$ref":"#/components/schemas/Status"}},"required":["request_id","endpoint","checked_at","status","data","meta"],"title":"CheckResponse[DmarcData]","type":"object"},"CheckResponse_DnsLookupData_":{"additionalProperties":false,"properties":{"checked_at":{"format":"date-time","title":"Checked At","type":"string"},"data":{"$ref":"#/components/schemas/DnsLookupData"},"endpoint":{"maxLength":64,"pattern":"^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$","title":"Endpoint","type":"string"},"findings":{"default":[],"items":{"$ref":"#/components/schemas/Finding"},"maxItems":100,"title":"Findings","type":"array"},"meta":{"$ref":"#/components/schemas/Meta"},"request_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Id","type":"string"},"schema_version":{"const":"1.0","default":"1.0","title":"Schema Version","type":"string"},"status":{"$ref":"#/components/schemas/Status"}},"required":["request_id","endpoint","checked_at","status","data","meta"],"title":"CheckResponse[DnsLookupData]","type":"object"},"CheckResponse_DnssecData_":{"additionalProperties":false,"properties":{"checked_at":{"format":"date-time","title":"Checked At","type":"string"},"data":{"$ref":"#/components/schemas/DnssecData"},"endpoint":{"maxLength":64,"pattern":"^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$","title":"Endpoint","type":"string"},"findings":{"default":[],"items":{"$ref":"#/components/schemas/Finding"},"maxItems":100,"title":"Findings","type":"array"},"meta":{"$ref":"#/components/schemas/Meta"},"request_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Id","type":"string"},"schema_version":{"const":"1.0","default":"1.0","title":"Schema Version","type":"string"},"status":{"$ref":"#/components/schemas/Status"}},"required":["request_id","endpoint","checked_at","status","data","meta"],"title":"CheckResponse[DnssecData]","type":"object"},"CheckResponse_DomainHealthData_":{"additionalProperties":false,"properties":{"checked_at":{"format":"date-time","title":"Checked At","type":"string"},"data":{"$ref":"#/components/schemas/DomainHealthData"},"endpoint":{"maxLength":64,"pattern":"^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$","title":"Endpoint","type":"string"},"findings":{"default":[],"items":{"$ref":"#/components/schemas/Finding"},"maxItems":100,"title":"Findings","type":"array"},"meta":{"$ref":"#/components/schemas/Meta"},"request_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Id","type":"string"},"schema_version":{"const":"1.0","default":"1.0","title":"Schema Version","type":"string"},"status":{"$ref":"#/components/schemas/Status"}},"required":["request_id","endpoint","checked_at","status","data","meta"],"title":"CheckResponse[DomainHealthData]","type":"object"},"CheckResponse_MailCheckData_":{"additionalProperties":false,"properties":{"checked_at":{"format":"date-time","title":"Checked At","type":"string"},"data":{"$ref":"#/components/schemas/MailCheckData"},"endpoint":{"maxLength":64,"pattern":"^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$","title":"Endpoint","type":"string"},"findings":{"default":[],"items":{"$ref":"#/components/schemas/Finding"},"maxItems":100,"title":"Findings","type":"array"},"meta":{"$ref":"#/components/schemas/Meta"},"request_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Id","type":"string"},"schema_version":{"const":"1.0","default":"1.0","title":"Schema Version","type":"string"},"status":{"$ref":"#/components/schemas/Status"}},"required":["request_id","endpoint","checked_at","status","data","meta"],"title":"CheckResponse[MailCheckData]","type":"object"},"CheckResponse_MailProviderData_":{"additionalProperties":false,"properties":{"checked_at":{"format":"date-time","title":"Checked At","type":"string"},"data":{"$ref":"#/components/schemas/MailProviderData"},"endpoint":{"maxLength":64,"pattern":"^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$","title":"Endpoint","type":"string"},"findings":{"default":[],"items":{"$ref":"#/components/schemas/Finding"},"maxItems":100,"title":"Findings","type":"array"},"meta":{"$ref":"#/components/schemas/Meta"},"request_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Id","type":"string"},"schema_version":{"const":"1.0","default":"1.0","title":"Schema Version","type":"string"},"status":{"$ref":"#/components/schemas/Status"}},"required":["request_id","endpoint","checked_at","status","data","meta"],"title":"CheckResponse[MailProviderData]","type":"object"},"CheckResponse_MtaStsData_":{"additionalProperties":false,"properties":{"checked_at":{"format":"date-time","title":"Checked At","type":"string"},"data":{"$ref":"#/components/schemas/MtaStsData"},"endpoint":{"maxLength":64,"pattern":"^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$","title":"Endpoint","type":"string"},"findings":{"default":[],"items":{"$ref":"#/components/schemas/Finding"},"maxItems":100,"title":"Findings","type":"array"},"meta":{"$ref":"#/components/schemas/Meta"},"request_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Id","type":"string"},"schema_version":{"const":"1.0","default":"1.0","title":"Schema Version","type":"string"},"status":{"$ref":"#/components/schemas/Status"}},"required":["request_id","endpoint","checked_at","status","data","meta"],"title":"CheckResponse[MtaStsData]","type":"object"},"CheckResponse_MxData_":{"additionalProperties":false,"properties":{"checked_at":{"format":"date-time","title":"Checked At","type":"string"},"data":{"$ref":"#/components/schemas/MxData"},"endpoint":{"maxLength":64,"pattern":"^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$","title":"Endpoint","type":"string"},"findings":{"default":[],"items":{"$ref":"#/components/schemas/Finding"},"maxItems":100,"title":"Findings","type":"array"},"meta":{"$ref":"#/components/schemas/Meta"},"request_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Id","type":"string"},"schema_version":{"const":"1.0","default":"1.0","title":"Schema Version","type":"string"},"status":{"$ref":"#/components/schemas/Status"}},"required":["request_id","endpoint","checked_at","status","data","meta"],"title":"CheckResponse[MxData]","type":"object"},"CheckResponse_PtrData_":{"additionalProperties":false,"properties":{"checked_at":{"format":"date-time","title":"Checked At","type":"string"},"data":{"$ref":"#/components/schemas/PtrData"},"endpoint":{"maxLength":64,"pattern":"^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$","title":"Endpoint","type":"string"},"findings":{"default":[],"items":{"$ref":"#/components/schemas/Finding"},"maxItems":100,"title":"Findings","type":"array"},"meta":{"$ref":"#/components/schemas/Meta"},"request_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Id","type":"string"},"schema_version":{"const":"1.0","default":"1.0","title":"Schema Version","type":"string"},"status":{"$ref":"#/components/schemas/Status"}},"required":["request_id","endpoint","checked_at","status","data","meta"],"title":"CheckResponse[PtrData]","type":"object"},"CheckResponse_RdapData_":{"additionalProperties":false,"properties":{"checked_at":{"format":"date-time","title":"Checked At","type":"string"},"data":{"$ref":"#/components/schemas/RdapData"},"endpoint":{"maxLength":64,"pattern":"^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$","title":"Endpoint","type":"string"},"findings":{"default":[],"items":{"$ref":"#/components/schemas/Finding"},"maxItems":100,"title":"Findings","type":"array"},"meta":{"$ref":"#/components/schemas/Meta"},"request_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Id","type":"string"},"schema_version":{"const":"1.0","default":"1.0","title":"Schema Version","type":"string"},"status":{"$ref":"#/components/schemas/Status"}},"required":["request_id","endpoint","checked_at","status","data","meta"],"title":"CheckResponse[RdapData]","type":"object"},"CheckResponse_SecurityHeadersData_":{"additionalProperties":false,"properties":{"checked_at":{"format":"date-time","title":"Checked At","type":"string"},"data":{"$ref":"#/components/schemas/SecurityHeadersData"},"endpoint":{"maxLength":64,"pattern":"^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$","title":"Endpoint","type":"string"},"findings":{"default":[],"items":{"$ref":"#/components/schemas/Finding"},"maxItems":100,"title":"Findings","type":"array"},"meta":{"$ref":"#/components/schemas/Meta"},"request_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Id","type":"string"},"schema_version":{"const":"1.0","default":"1.0","title":"Schema Version","type":"string"},"status":{"$ref":"#/components/schemas/Status"}},"required":["request_id","endpoint","checked_at","status","data","meta"],"title":"CheckResponse[SecurityHeadersData]","type":"object"},"CheckResponse_SiteHealthData_":{"additionalProperties":false,"properties":{"checked_at":{"format":"date-time","title":"Checked At","type":"string"},"data":{"$ref":"#/components/schemas/SiteHealthData"},"endpoint":{"maxLength":64,"pattern":"^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$","title":"Endpoint","type":"string"},"findings":{"default":[],"items":{"$ref":"#/components/schemas/Finding"},"maxItems":100,"title":"Findings","type":"array"},"meta":{"$ref":"#/components/schemas/Meta"},"request_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Id","type":"string"},"schema_version":{"const":"1.0","default":"1.0","title":"Schema Version","type":"string"},"status":{"$ref":"#/components/schemas/Status"}},"required":["request_id","endpoint","checked_at","status","data","meta"],"title":"CheckResponse[SiteHealthData]","type":"object"},"CheckResponse_SpfData_":{"additionalProperties":false,"properties":{"checked_at":{"format":"date-time","title":"Checked At","type":"string"},"data":{"$ref":"#/components/schemas/SpfData"},"endpoint":{"maxLength":64,"pattern":"^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$","title":"Endpoint","type":"string"},"findings":{"default":[],"items":{"$ref":"#/components/schemas/Finding"},"maxItems":100,"title":"Findings","type":"array"},"meta":{"$ref":"#/components/schemas/Meta"},"request_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Id","type":"string"},"schema_version":{"const":"1.0","default":"1.0","title":"Schema Version","type":"string"},"status":{"$ref":"#/components/schemas/Status"}},"required":["request_id","endpoint","checked_at","status","data","meta"],"title":"CheckResponse[SpfData]","type":"object"},"CheckResponse_TlsCertificateData_":{"additionalProperties":false,"properties":{"checked_at":{"format":"date-time","title":"Checked At","type":"string"},"data":{"$ref":"#/components/schemas/TlsCertificateData"},"endpoint":{"maxLength":64,"pattern":"^[a-z][a-z0-9]*(?:\\.[a-z][a-z0-9_]*)+$","title":"Endpoint","type":"string"},"findings":{"default":[],"items":{"$ref":"#/components/schemas/Finding"},"maxItems":100,"title":"Findings","type":"array"},"meta":{"$ref":"#/components/schemas/Meta"},"request_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Id","type":"string"},"schema_version":{"const":"1.0","default":"1.0","title":"Schema Version","type":"string"},"status":{"$ref":"#/components/schemas/Status"}},"required":["request_id","endpoint","checked_at","status","data","meta"],"title":"CheckResponse[TlsCertificateData]","type":"object"},"CookieFlags":{"additionalProperties":false,"description":"A Set-Cookie header as name and attributes; the value is never kept.","properties":{"http_only":{"title":"Http Only","type":"boolean"},"name":{"maxLength":128,"title":"Name","type":"string"},"same_site":{"anyOf":[{"enum":["strict","lax","none","other"],"type":"string"},{"type":"null"}],"default":null,"title":"Same Site"},"secure":{"title":"Secure","type":"boolean"}},"required":["name","secure","http_only"],"title":"CookieFlags","type":"object"},"DkimData":{"additionalProperties":false,"properties":{"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"},"key_bits":{"anyOf":[{"maximum":65536,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Key Bits"},"key_bytes":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Key Bytes"},"key_type":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"title":"Key Type"},"name":{"maxLength":255,"minLength":1,"title":"Name","type":"string"},"record":{"anyOf":[{"maxLength":4096,"type":"string"},{"type":"null"}],"default":null,"title":"Record"},"revoked":{"default":false,"title":"Revoked","type":"boolean"},"selector":{"maxLength":200,"minLength":1,"title":"Selector","type":"string"},"tags":{"default":[],"items":{"$ref":"#/components/schemas/Tag"},"maxItems":32,"title":"Tags","type":"array"},"testing":{"default":false,"title":"Testing","type":"boolean"}},"required":["domain","selector","name"],"title":"DkimData","type":"object"},"DkimDiscoverData":{"additionalProperties":false,"description":"``tried`` is the fixed selector list; ``found`` has one entry per selector with a key.","properties":{"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"},"found":{"default":[],"items":{"$ref":"#/components/schemas/DkimData"},"maxItems":50,"title":"Found","type":"array"},"tried":{"default":[],"items":{"maxLength":200,"minLength":1,"type":"string"},"maxItems":50,"title":"Tried","type":"array"}},"required":["domain"],"title":"DkimDiscoverData","type":"object"},"DmarcData":{"additionalProperties":false,"properties":{"adkim":{"anyOf":[{"enum":["r","s"],"type":"string"},{"type":"null"}],"default":null,"title":"Adkim"},"applied_policy":{"anyOf":[{"enum":["none","quarantine","reject"],"type":"string"},{"type":"null"}],"default":null,"title":"Applied Policy"},"aspf":{"anyOf":[{"enum":["r","s"],"type":"string"},{"type":"null"}],"default":null,"title":"Aspf"},"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"},"nonexistent_policy":{"anyOf":[{"enum":["none","quarantine","reject"],"type":"string"},{"type":"null"}],"default":null,"title":"Nonexistent Policy"},"org_domain":{"maxLength":255,"minLength":1,"title":"Org Domain","type":"string"},"pct":{"anyOf":[{"maximum":100,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Pct"},"policy":{"anyOf":[{"enum":["none","quarantine","reject"],"type":"string"},{"type":"null"}],"default":null,"title":"Policy"},"record":{"anyOf":[{"maxLength":4096,"type":"string"},{"type":"null"}],"default":null,"title":"Record"},"record_domain":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Record Domain"},"rua":{"default":[],"items":{"maxLength":512,"type":"string"},"maxItems":20,"title":"Rua","type":"array"},"ruf":{"default":[],"items":{"maxLength":512,"type":"string"},"maxItems":20,"title":"Ruf","type":"array"},"subdomain_policy":{"anyOf":[{"enum":["none","quarantine","reject"],"type":"string"},{"type":"null"}],"default":null,"title":"Subdomain Policy"},"tags":{"default":[],"items":{"$ref":"#/components/schemas/Tag"},"maxItems":32,"title":"Tags","type":"array"},"test_mode":{"default":false,"title":"Test Mode","type":"boolean"}},"required":["domain","org_domain"],"title":"DmarcData","type":"object"},"DnsLookupData":{"additionalProperties":false,"properties":{"answers":{"items":{"$ref":"#/components/schemas/DnsRecordSet"},"maxItems":9,"title":"Answers","type":"array"},"name":{"maxLength":255,"minLength":1,"title":"Name","type":"string"}},"required":["name","answers"],"title":"DnsLookupData","type":"object"},"DnsRecordSet":{"additionalProperties":false,"properties":{"rcode":{"enum":["NOERROR","NXDOMAIN","SERVFAIL","REFUSED","OTHER"],"title":"Rcode","type":"string"},"records":{"default":[],"items":{"maxLength":4096,"type":"string"},"maxItems":50,"title":"Records","type":"array"},"ttl":{"anyOf":[{"maximum":2147483647,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Ttl"},"type":{"enum":["A","AAAA","CNAME","MX","NS","TXT","SOA","CAA","SRV"],"title":"Type","type":"string"}},"required":["type","rcode"],"title":"DnsRecordSet","type":"object"},"DnskeyRecord":{"additionalProperties":false,"properties":{"algorithm":{"maximum":255,"minimum":0,"title":"Algorithm","type":"integer"},"flags":{"maximum":65535,"minimum":0,"title":"Flags","type":"integer"},"protocol":{"maximum":255,"minimum":0,"title":"Protocol","type":"integer"},"role":{"enum":["ksk","zsk","other"],"title":"Role","type":"string"}},"required":["flags","protocol","algorithm","role"],"title":"DnskeyRecord","type":"object"},"DnssecData":{"additionalProperties":false,"description":"``validated`` is the resolver's AD flag on SOA or DNSKEY; there is no local validation.","properties":{"dnskeys":{"default":[],"items":{"$ref":"#/components/schemas/DnskeyRecord"},"maxItems":20,"title":"Dnskeys","type":"array"},"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"},"ds":{"default":[],"items":{"$ref":"#/components/schemas/DsRecord"},"maxItems":20,"title":"Ds","type":"array"},"state":{"enum":["secure","insecure","bogus","unknown"],"title":"State","type":"string"},"validated":{"default":false,"title":"Validated","type":"boolean"}},"required":["domain","state"],"title":"DnssecData","type":"object"},"DomainHealthData":{"additionalProperties":false,"description":"One optional section per check. A section that failed is None; its code is a finding.","properties":{"bimi":{"anyOf":[{"$ref":"#/components/schemas/BimiData"},{"type":"null"}],"default":null},"caa":{"anyOf":[{"$ref":"#/components/schemas/CaaData"},{"type":"null"}],"default":null},"dkim":{"anyOf":[{"$ref":"#/components/schemas/DkimDiscoverData"},{"type":"null"}],"default":null},"dmarc":{"anyOf":[{"$ref":"#/components/schemas/DmarcData"},{"type":"null"}],"default":null},"dnssec":{"anyOf":[{"$ref":"#/components/schemas/DnssecData"},{"type":"null"}],"default":null},"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"},"mta_sts":{"anyOf":[{"$ref":"#/components/schemas/MtaStsData"},{"type":"null"}],"default":null},"mx":{"anyOf":[{"$ref":"#/components/schemas/MxData"},{"type":"null"}],"default":null},"provider":{"anyOf":[{"$ref":"#/components/schemas/MailProviderData"},{"type":"null"}],"default":null},"ptr":{"anyOf":[{"$ref":"#/components/schemas/PtrData"},{"type":"null"}],"default":null},"spf":{"anyOf":[{"$ref":"#/components/schemas/SpfData"},{"type":"null"}],"default":null}},"required":["domain"],"title":"DomainHealthData","type":"object"},"DsRecord":{"additionalProperties":false,"properties":{"algorithm":{"maximum":255,"minimum":0,"title":"Algorithm","type":"integer"},"digest_type":{"maximum":255,"minimum":0,"title":"Digest Type","type":"integer"},"key_tag":{"maximum":65535,"minimum":0,"title":"Key Tag","type":"integer"}},"required":["key_tag","algorithm","digest_type"],"title":"DsRecord","type":"object"},"ErrorBody":{"additionalProperties":false,"properties":{"details":{"default":[],"items":{"$ref":"#/components/schemas/ErrorDetail"},"maxItems":50,"title":"Details","type":"array"},"error":{"pattern":"^[a-z][a-z0-9_]{1,63}$","title":"Error","type":"string"},"message":{"maxLength":500,"minLength":1,"title":"Message","type":"string"},"request_id":{"maxLength":64,"minLength":1,"pattern":"^[A-Za-z0-9_-]+$","title":"Request Id","type":"string"}},"required":["error","message","request_id"],"title":"ErrorBody","type":"object"},"ErrorDetail":{"additionalProperties":false,"properties":{"loc":{"default":[],"items":{"anyOf":[{"maxLength":128,"type":"string"},{"minimum":0,"type":"integer"}]},"maxItems":10,"title":"Loc","type":"array"},"message":{"maxLength":300,"minLength":1,"title":"Message","type":"string"}},"required":["message"],"title":"ErrorDetail","type":"object"},"Finding":{"additionalProperties":false,"properties":{"code":{"maxLength":64,"pattern":"^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)+$","title":"Code","type":"string"},"evidence":{"additionalProperties":{"$ref":"#/components/schemas/JsonValue"},"maxProperties":32,"title":"Evidence","type":"object"},"explanation":{"maxLength":2000,"minLength":1,"title":"Explanation","type":"string"},"message":{"maxLength":300,"minLength":1,"title":"Message","type":"string"},"recommendation":{"anyOf":[{"maxLength":2000,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Recommendation"},"severity":{"$ref":"#/components/schemas/Severity"}},"required":["code","severity","message","explanation"],"title":"Finding","type":"object"},"HstsPolicy":{"additionalProperties":false,"description":"Strict-Transport-Security (RFC 6797). ``valid`` is False when a browser ignores it.","properties":{"include_subdomains":{"default":false,"title":"Include Subdomains","type":"boolean"},"max_age":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Max Age"},"preload":{"default":false,"title":"Preload","type":"boolean"},"raw":{"maxLength":1024,"title":"Raw","type":"string"},"valid":{"title":"Valid","type":"boolean"}},"required":["raw","valid"],"title":"HstsPolicy","type":"object"},"ItemError":{"additionalProperties":false,"properties":{"code":{"maxLength":64,"pattern":"^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)+$","title":"Code","type":"string"},"message":{"maxLength":300,"minLength":1,"title":"Message","type":"string"}},"required":["code","message"],"title":"ItemError","type":"object"},"JsonValue":{},"MailCheckData":{"additionalProperties":false,"properties":{"dkim":{"default":[],"items":{"$ref":"#/components/schemas/DkimData"},"maxItems":5,"title":"Dkim","type":"array"},"dmarc":{"anyOf":[{"$ref":"#/components/schemas/DmarcData"},{"type":"null"}],"default":null},"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"},"mx":{"anyOf":[{"$ref":"#/components/schemas/MxData"},{"type":"null"}],"default":null},"spf":{"anyOf":[{"$ref":"#/components/schemas/SpfData"},{"type":"null"}],"default":null}},"required":["domain"],"title":"MailCheckData","type":"object"},"MailProviderData":{"additionalProperties":false,"description":"``primary`` is the provider behind the MX host with the lowest preference, if known.","properties":{"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"},"list_version":{"maxLength":32,"minLength":1,"title":"List Version","type":"string"},"primary":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"title":"Primary"},"providers":{"default":[],"items":{"$ref":"#/components/schemas/ProviderMatch"},"maxItems":20,"title":"Providers","type":"array"}},"required":["domain","list_version"],"title":"MailProviderData","type":"object"},"Meta":{"additionalProperties":false,"properties":{"cache_hit":{"title":"Cache Hit","type":"boolean"},"duration_ms":{"minimum":0,"title":"Duration Ms","type":"integer"},"fresh_until":{"format":"date-time","title":"Fresh Until","type":"string"},"observed_at":{"format":"date-time","title":"Observed At","type":"string"},"resolver":{"anyOf":[{"maxLength":128,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Resolver"},"source":{"maxLength":64,"minLength":1,"title":"Source","type":"string"}},"required":["duration_ms","cache_hit","source","observed_at","fresh_until"],"title":"Meta","type":"object"},"MtaStsData":{"additionalProperties":false,"properties":{"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"},"mx_hosts":{"default":[],"items":{"maxLength":255,"minLength":1,"type":"string"},"maxItems":50,"title":"Mx Hosts","type":"array"},"policy":{"anyOf":[{"$ref":"#/components/schemas/MtaStsPolicy"},{"type":"null"}],"default":null},"policy_fetched":{"default":false,"title":"Policy Fetched","type":"boolean"},"policy_id":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"title":"Policy Id"},"record":{"anyOf":[{"maxLength":4096,"type":"string"},{"type":"null"}],"default":null,"title":"Record"},"tlsrpt_record":{"anyOf":[{"maxLength":4096,"type":"string"},{"type":"null"}],"default":null,"title":"Tlsrpt Record"},"tlsrpt_rua":{"default":[],"items":{"maxLength":512,"type":"string"},"maxItems":20,"title":"Tlsrpt Rua","type":"array"},"uncovered_mx":{"default":[],"items":{"maxLength":255,"minLength":1,"type":"string"},"maxItems":50,"title":"Uncovered Mx","type":"array"}},"required":["domain"],"title":"MtaStsData","type":"object"},"MtaStsPolicy":{"additionalProperties":false,"description":"The parsed policy file (RFC 8461 section 3.2); fields that did not parse are None.","properties":{"max_age":{"anyOf":[{"maximum":31557600,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Max Age"},"mode":{"anyOf":[{"enum":["enforce","testing","none"],"type":"string"},{"type":"null"}],"default":null,"title":"Mode"},"mx":{"default":[],"items":{"maxLength":512,"type":"string"},"maxItems":20,"title":"Mx","type":"array"},"version":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"title":"Version"}},"title":"MtaStsPolicy","type":"object"},"MxData":{"additionalProperties":false,"properties":{"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"},"hosts":{"default":[],"items":{"$ref":"#/components/schemas/MxHost"},"maxItems":50,"title":"Hosts","type":"array"},"implicit_mx":{"default":false,"title":"Implicit Mx","type":"boolean"},"null_mx":{"default":false,"title":"Null Mx","type":"boolean"}},"required":["domain"],"title":"MxData","type":"object"},"MxHost":{"additionalProperties":false,"properties":{"addresses":{"default":[],"items":{"maxLength":45,"type":"string"},"maxItems":32,"title":"Addresses","type":"array"},"exchange":{"maxLength":255,"minLength":1,"title":"Exchange","type":"string"},"preference":{"maximum":65535,"minimum":0,"title":"Preference","type":"integer"},"resolved":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Resolved"}},"required":["preference","exchange"],"title":"MxHost","type":"object"},"ProviderMatch":{"additionalProperties":false,"description":"A provider from the fixed list and the MX hosts or SPF include domains that matched.","properties":{"evidence":{"items":{"enum":["mx","spf"],"type":"string"},"maxItems":2,"minItems":1,"title":"Evidence","type":"array"},"kind":{"enum":["mailbox","gateway","sending"],"title":"Kind","type":"string"},"matched":{"default":[],"items":{"maxLength":255,"minLength":1,"type":"string"},"maxItems":10,"title":"Matched","type":"array"},"name":{"maxLength":512,"title":"Name","type":"string"}},"required":["name","kind","evidence"],"title":"ProviderMatch","type":"object"},"PtrAddress":{"additionalProperties":false,"description":"``forward_confirmed`` is None when a lookup failed and no conclusion is possible.","properties":{"address":{"maxLength":45,"title":"Address","type":"string"},"forward_confirmed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Forward Confirmed"},"host":{"maxLength":255,"minLength":1,"title":"Host","type":"string"},"ptr_names":{"default":[],"items":{"maxLength":255,"minLength":1,"type":"string"},"maxItems":5,"title":"Ptr Names","type":"array"}},"required":["host","address"],"title":"PtrAddress","type":"object"},"PtrData":{"additionalProperties":false,"properties":{"addresses":{"default":[],"items":{"$ref":"#/components/schemas/PtrAddress"},"maxItems":10,"title":"Addresses","type":"array"},"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"}},"required":["domain"],"title":"PtrData","type":"object"},"RdapData":{"additionalProperties":false,"description":"The registry's RDAP record for the registrable domain (RFC 9083).\n\nOnly the registrar entity is read; every other entity and vCard (registrant, contacts) is\ndiscarded, so no personal data is kept or returned. ``registered`` is False on a 404 and\nNone when the registry could not be asked.","properties":{"created":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"default":null,"title":"Created"},"days_to_expiry":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Days To Expiry"},"delegation_signed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Delegation Signed"},"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"},"expires":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"default":null,"title":"Expires"},"last_changed":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"default":null,"title":"Last Changed"},"ldh_name":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Ldh Name"},"nameservers":{"default":[],"items":{"maxLength":255,"minLength":1,"type":"string"},"maxItems":13,"title":"Nameservers","type":"array"},"rdap_server":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"title":"Rdap Server"},"registered":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Registered"},"registrar":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"title":"Registrar"},"registrar_iana_id":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Registrar Iana Id"},"statuses":{"default":[],"items":{"maxLength":32,"minLength":1,"type":"string"},"maxItems":20,"title":"Statuses","type":"array"}},"required":["domain"],"title":"RdapData","type":"object"},"RedirectChain":{"additionalProperties":false,"description":"Requests from ``start_url`` until a response that is not a redirect, or a failure.","properties":{"error":{"anyOf":[{"enum":["dns","no_address","blocked_address","connect","tls","timeout","malformed","too_large","status","redirect_limit","blocked_redirect"],"type":"string"},{"type":"null"}],"default":null,"title":"Error"},"final_status":{"anyOf":[{"maximum":599,"minimum":100,"type":"integer"},{"type":"null"}],"default":null,"title":"Final Status"},"final_url":{"anyOf":[{"maxLength":1024,"type":"string"},{"type":"null"}],"default":null,"title":"Final Url"},"hops":{"default":[],"items":{"$ref":"#/components/schemas/RedirectHop"},"maxItems":6,"title":"Hops","type":"array"},"start_url":{"maxLength":1024,"title":"Start Url","type":"string"}},"required":["start_url"],"title":"RedirectChain","type":"object"},"RedirectHop":{"additionalProperties":false,"description":"One response in a chain: the URL asked for, its status and Location (if any).","properties":{"location":{"anyOf":[{"maxLength":1024,"type":"string"},{"type":"null"}],"default":null,"title":"Location"},"status":{"maximum":599,"minimum":100,"title":"Status","type":"integer"},"url":{"maxLength":1024,"title":"Url","type":"string"}},"required":["url","status"],"title":"RedirectHop","type":"object"},"SecurityHeaders":{"additionalProperties":false,"description":"Security headers of the final HTTPS response, raw values clipped to 1 KB.","properties":{"content_security_policy":{"anyOf":[{"maxLength":1024,"type":"string"},{"type":"null"}],"default":null,"title":"Content Security Policy"},"content_security_policy_report_only":{"anyOf":[{"maxLength":1024,"type":"string"},{"type":"null"}],"default":null,"title":"Content Security Policy Report Only"},"cookies":{"default":[],"items":{"$ref":"#/components/schemas/CookieFlags"},"maxItems":20,"title":"Cookies","type":"array"},"cross_origin_opener_policy":{"anyOf":[{"maxLength":1024,"type":"string"},{"type":"null"}],"default":null,"title":"Cross Origin Opener Policy"},"permissions_policy":{"anyOf":[{"maxLength":1024,"type":"string"},{"type":"null"}],"default":null,"title":"Permissions Policy"},"referrer_policy":{"anyOf":[{"maxLength":1024,"type":"string"},{"type":"null"}],"default":null,"title":"Referrer Policy"},"strict_transport_security":{"anyOf":[{"$ref":"#/components/schemas/HstsPolicy"},{"type":"null"}],"default":null},"x_content_type_options":{"anyOf":[{"maxLength":1024,"type":"string"},{"type":"null"}],"default":null,"title":"X Content Type Options"},"x_frame_options":{"anyOf":[{"maxLength":1024,"type":"string"},{"type":"null"}],"default":null,"title":"X Frame Options"}},"title":"SecurityHeaders","type":"object"},"SecurityHeadersData":{"additionalProperties":false,"properties":{"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"},"from_http":{"$ref":"#/components/schemas/RedirectChain"},"from_https":{"$ref":"#/components/schemas/RedirectChain"},"headers":{"anyOf":[{"$ref":"#/components/schemas/SecurityHeaders"},{"type":"null"}],"default":null}},"required":["domain","from_http","from_https"],"title":"SecurityHeadersData","type":"object"},"Severity":{"enum":["info","warning","error"],"title":"Severity","type":"string"},"SiteHealthData":{"additionalProperties":false,"description":"One optional section per check. A section that failed is None; its code is a finding.","properties":{"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"},"http":{"anyOf":[{"$ref":"#/components/schemas/SecurityHeadersData"},{"type":"null"}],"default":null},"rdap":{"anyOf":[{"$ref":"#/components/schemas/RdapData"},{"type":"null"}],"default":null},"tls":{"anyOf":[{"$ref":"#/components/schemas/TlsCertificateData"},{"type":"null"}],"default":null}},"required":["domain"],"title":"SiteHealthData","type":"object"},"SpfData":{"additionalProperties":false,"properties":{"all_qualifier":{"anyOf":[{"enum":["+","-","~","?"],"type":"string"},{"type":"null"}],"default":null,"title":"All Qualifier"},"dns_lookup_count":{"default":0,"minimum":0,"title":"Dns Lookup Count","type":"integer"},"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"},"lookup_count_complete":{"default":true,"title":"Lookup Count Complete","type":"boolean"},"record":{"anyOf":[{"maxLength":4096,"type":"string"},{"type":"null"}],"default":null,"title":"Record"},"tree":{"anyOf":[{"$ref":"#/components/schemas/SpfNode"},{"type":"null"}],"default":null},"void_lookup_count":{"default":0,"minimum":0,"title":"Void Lookup Count","type":"integer"}},"required":["domain"],"title":"SpfData","type":"object"},"SpfNode":{"additionalProperties":false,"properties":{"children":{"default":[],"items":{"$ref":"#/components/schemas/SpfNodeLevel2"},"maxItems":20,"title":"Children","type":"array"},"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"},"error":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"title":"Error"},"record":{"anyOf":[{"maxLength":4096,"type":"string"},{"type":"null"}],"default":null,"title":"Record"},"terms":{"default":[],"items":{"$ref":"#/components/schemas/SpfTerm"},"maxItems":100,"title":"Terms","type":"array"},"via":{"enum":["root","include","redirect"],"title":"Via","type":"string"}},"required":["domain","via"],"title":"SpfNode","type":"object"},"SpfNodeLevel2":{"additionalProperties":false,"properties":{"children":{"default":[],"items":{"$ref":"#/components/schemas/SpfNodeLevel3"},"maxItems":20,"title":"Children","type":"array"},"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"},"error":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"title":"Error"},"record":{"anyOf":[{"maxLength":4096,"type":"string"},{"type":"null"}],"default":null,"title":"Record"},"terms":{"default":[],"items":{"$ref":"#/components/schemas/SpfTerm"},"maxItems":100,"title":"Terms","type":"array"},"via":{"enum":["root","include","redirect"],"title":"Via","type":"string"}},"required":["domain","via"],"title":"SpfNodeLevel2","type":"object"},"SpfNodeLevel3":{"additionalProperties":false,"properties":{"children":{"default":[],"items":{"$ref":"#/components/schemas/SpfNodeLevel4"},"maxItems":20,"title":"Children","type":"array"},"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"},"error":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"title":"Error"},"record":{"anyOf":[{"maxLength":4096,"type":"string"},{"type":"null"}],"default":null,"title":"Record"},"terms":{"default":[],"items":{"$ref":"#/components/schemas/SpfTerm"},"maxItems":100,"title":"Terms","type":"array"},"via":{"enum":["root","include","redirect"],"title":"Via","type":"string"}},"required":["domain","via"],"title":"SpfNodeLevel3","type":"object"},"SpfNodeLevel4":{"additionalProperties":false,"properties":{"children":{"default":[],"items":{"type":"object"},"maxItems":20,"title":"Children","type":"array"},"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"},"error":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"title":"Error"},"record":{"anyOf":[{"maxLength":4096,"type":"string"},{"type":"null"}],"default":null,"title":"Record"},"terms":{"default":[],"items":{"$ref":"#/components/schemas/SpfTerm"},"maxItems":100,"title":"Terms","type":"array"},"via":{"enum":["root","include","redirect"],"title":"Via","type":"string"}},"required":["domain","via"],"title":"SpfNodeLevel4","type":"object"},"SpfTerm":{"additionalProperties":false,"properties":{"kind":{"enum":["mechanism","modifier"],"title":"Kind","type":"string"},"name":{"maxLength":64,"minLength":1,"title":"Name","type":"string"},"qualifier":{"anyOf":[{"enum":["+","-","~","?"],"type":"string"},{"type":"null"}],"default":null,"title":"Qualifier"},"raw":{"maxLength":512,"title":"Raw","type":"string"},"value":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"title":"Value"}},"required":["raw","kind","name"],"title":"SpfTerm","type":"object"},"Status":{"enum":["ok","info","warning","error","unknown"],"title":"Status","type":"string"},"Tag":{"additionalProperties":false,"properties":{"name":{"maxLength":32,"minLength":1,"title":"Name","type":"string"},"value":{"maxLength":4096,"title":"Value","type":"string"}},"required":["name","value"],"title":"Tag","type":"object"},"TlsCertificateData":{"additionalProperties":false,"description":"The certificate a domain serves on port 443. Fields are None when no handshake worked.\n\n``trusted`` means the chain leads to a CA in the system bundle (host name and dates aside);\n``hostname_match`` and the dates are computed from the leaf certificate itself.","properties":{"address_family":{"anyOf":[{"enum":["ipv4","ipv6"],"type":"string"},{"type":"null"}],"default":null,"title":"Address Family"},"chain":{"default":[],"items":{"$ref":"#/components/schemas/ChainCertificate"},"maxItems":5,"title":"Chain","type":"array"},"cipher":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Cipher"},"days_remaining":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Days Remaining"},"domain":{"maxLength":255,"minLength":1,"title":"Domain","type":"string"},"hostname_match":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Hostname Match"},"issuer":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"title":"Issuer"},"key_bits":{"anyOf":[{"maximum":65536,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Key Bits"},"key_type":{"anyOf":[{"enum":["rsa","ec","ed25519","ed448","dsa","other"],"type":"string"},{"type":"null"}],"default":null,"title":"Key Type"},"not_after":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"default":null,"title":"Not After"},"not_before":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"default":null,"title":"Not Before"},"san":{"default":[],"items":{"maxLength":255,"minLength":1,"type":"string"},"maxItems":50,"title":"San","type":"array"},"serial_number":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Serial Number"},"signature_algorithm":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Signature Algorithm"},"subject_cn":{"anyOf":[{"maxLength":512,"type":"string"},{"type":"null"}],"default":null,"title":"Subject Cn"},"tls_version":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"title":"Tls Version"},"trusted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Trusted"},"untrusted_reason":{"anyOf":[{"enum":["self_signed","unknown_issuer","incomplete_chain","other"],"type":"string"},{"type":"null"}],"default":null,"title":"Untrusted Reason"}},"required":["domain"],"title":"TlsCertificateData","type":"object"},"X402PaymentRequired":{"properties":{"accepts":{"items":{"$ref":"#/components/schemas/X402PaymentRequirements"},"type":"array"},"error":{"description":"Why an attached payment was refused.","type":"string"},"extensions":{"additionalProperties":true,"type":"object"},"resource":{"$ref":"#/components/schemas/X402ResourceInfo"},"x402Version":{"const":2,"type":"integer"}},"required":["x402Version","accepts"],"type":"object"},"X402PaymentRequirements":{"properties":{"amount":{"description":"Price in USDC atomic units.","type":"string"},"asset":{"description":"USDC contract address.","type":"string"},"extra":{"additionalProperties":true,"type":"object"},"maxTimeoutSeconds":{"type":"integer"},"network":{"description":"CAIP-2 network id.","type":"string"},"payTo":{"description":"Recipient address.","type":"string"},"scheme":{"description":"Payment scheme, always 'exact'.","type":"string"}},"required":["scheme","network","asset","amount","payTo","maxTimeoutSeconds"],"type":"object"},"X402ResourceInfo":{"properties":{"description":{"type":"string"},"iconUrl":{"type":"string"},"mimeType":{"type":"string"},"serviceName":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"url":{"type":"string"}},"required":["url"],"type":"object"}}},"externalDocs":{"description":"API reference","url":"https://lookproof.dev/docs/api"},"info":{"description":"Mail, DNS and web checks for developers and AI agents: email authentication, DNS, TLS certificates, HTTP security headers and domain registration, paid per request with x402 (USDC). A request without payment is answered with 402 and the exact price.","title":"Lookproof API","version":"1.0","x-guidance":"Each operation is one check of a public domain, paid per request with x402 v2 in USDC. Call it without payment to get 402 with the exact price in the PAYMENT-REQUIRED header, then repeat the request with a PAYMENT-SIGNATURE header. Requests that fail are not charged. Use GET /v1/domain/health for a full email and DNS security report, /v1/site/health for the TLS certificate, HTTPS redirects, security headers and domain expiry, /v1/mail/check for SPF, DMARC, DKIM and MX together, or a single check when you need one record.","x-pricing-version":"pv1-4657190801188e0c"},"openapi":"3.1.0","paths":{"/v1/dns/caa":{"get":{"description":"Looks up CAA on the name and, if it has none, on its parents up to the registrable domain (RFC 8659). Reports the allowed issuers for normal and wildcard certificates, iodef targets, unknown critical tags and values that cannot be parsed.","operationId":"dns.caa","parameters":[{"example":"example.com","in":"query","name":"domain","required":true,"schema":{"examples":["example.com"],"maxLength":1024,"minLength":1,"title":"Domain","type":"string"}},{"$ref":"#/components/parameters/PaymentSignature"}],"responses":{"200":{"content":{"application/json":{"example":{"checked_at":"2026-10-24T12:00:00Z","data":{"domain":"example.com","inherited":false,"iodef":["mailto:security@example.com"],"issuers":["letsencrypt.org"],"record_name":"example.com","records":[{"critical":false,"flags":0,"tag":"iodef","value":"mailto:security@example.com"},{"critical":false,"flags":0,"tag":"issue","value":"letsencrypt.org"}],"wildcard_issuers":["letsencrypt.org"]},"endpoint":"dns.caa","findings":[],"meta":{"cache_hit":false,"duration_ms":42,"fresh_until":"2026-10-24T12:05:00Z","observed_at":"2026-10-24T12:00:00Z","resolver":"example","source":"dns"},"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","schema_version":"1.0","status":"ok"},"schema":{"$ref":"#/components/schemas/CheckResponse_CaaData_"}}},"description":"The check result. A result with negative findings is still delivered.","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-Request-ID":{"$ref":"#/components/headers/RequestId"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"bad_request: The request is malformed. Nothing is charged."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}},"description":"Payment required: the exact price and how to pay (x402 v2).","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payment_in_progress, payment_bound_to_other_request: This payment is already being processed, or it is bound to a different request. No new payment is taken. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"invalid_input: The input failed validation on a request that carries a payment; nothing is charged. Without a payment, invalid input gets a 402 whose error field names the problem. Nothing is charged."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"rate_limited: Too many requests from this IP address or payer. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"check_failed: The check could not be completed. Nothing is charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"busy, unavailable, payments_unavailable: The service is busy or temporarily unavailable. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"deadline_exceeded: The check ran out of time. Nothing is charged."}},"summary":"CAA record check","tags":["dns"],"x-data-class":"public","x-deadline-ms":10000,"x-finding-codes":["CHECK_QUERY_BUDGET_EXCEEDED","DNS_DOMAIN_NOT_FOUND","DNS_RESOLVER_FAILURE","DNS_RESOLVER_TIMEOUT","CAA_INVALID_IODEF","CAA_INVALID_VALUE","CAA_NOT_FOUND","CAA_NO_ISSUANCE","CAA_UNKNOWN_CRITICAL_TAG"],"x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","scheme":"exact"},"x-payment-info":{"price":{"amount":"0.01","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-price":{"display":{"single":"0.01"},"rule":{"amount":10000,"kind":"fixed"}}}},"/v1/dns/dnssec":{"get":{"description":"Queries SOA, DNSKEY and DS through validating public resolvers and reports secure, insecure, bogus or unknown from the AD flag; bogus is detected by repeating the query with checking disabled. There is no local cryptographic validation.","operationId":"dns.dnssec","parameters":[{"example":"example.com","in":"query","name":"domain","required":true,"schema":{"examples":["example.com"],"maxLength":1024,"minLength":1,"title":"Domain","type":"string"}},{"$ref":"#/components/parameters/PaymentSignature"}],"responses":{"200":{"content":{"application/json":{"example":{"checked_at":"2026-10-24T12:00:00Z","data":{"dnskeys":[{"algorithm":13,"flags":256,"protocol":3,"role":"zsk"},{"algorithm":13,"flags":257,"protocol":3,"role":"ksk"}],"domain":"example.com","ds":[{"algorithm":13,"digest_type":2,"key_tag":2371}],"state":"secure","validated":true},"endpoint":"dns.dnssec","findings":[],"meta":{"cache_hit":false,"duration_ms":42,"fresh_until":"2026-10-24T12:05:00Z","observed_at":"2026-10-24T12:00:00Z","resolver":"example","source":"dns"},"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","schema_version":"1.0","status":"ok"},"schema":{"$ref":"#/components/schemas/CheckResponse_DnssecData_"}}},"description":"The check result. A result with negative findings is still delivered.","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-Request-ID":{"$ref":"#/components/headers/RequestId"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"bad_request: The request is malformed. Nothing is charged."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}},"description":"Payment required: the exact price and how to pay (x402 v2).","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payment_in_progress, payment_bound_to_other_request: This payment is already being processed, or it is bound to a different request. No new payment is taken. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"invalid_input: The input failed validation on a request that carries a payment; nothing is charged. Without a payment, invalid input gets a 402 whose error field names the problem. Nothing is charged."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"rate_limited: Too many requests from this IP address or payer. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"check_failed: The check could not be completed. Nothing is charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"busy, unavailable, payments_unavailable: The service is busy or temporarily unavailable. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"deadline_exceeded: The check ran out of time. Nothing is charged."}},"summary":"DNSSEC check","tags":["dns"],"x-data-class":"public","x-deadline-ms":10000,"x-finding-codes":["CHECK_QUERY_BUDGET_EXCEEDED","DNS_DOMAIN_NOT_FOUND","DNS_RESOLVER_FAILURE","DNS_RESOLVER_TIMEOUT","DNSSEC_BOGUS","DNSSEC_DEPRECATED_ALGORITHM","DNSSEC_DS_WITHOUT_DNSKEY","DNSSEC_INDETERMINATE","DNSSEC_NOT_SIGNED","DNSSEC_SHA1_DIGEST"],"x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","scheme":"exact"},"x-payment-info":{"price":{"amount":"0.01","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-price":{"display":{"single":"0.01"},"rule":{"amount":10000,"kind":"fixed"}}}},"/v1/dns/lookup":{"get":{"description":"Queries the chosen record types for a name and returns the answers with TTL, observation time and which public resolver answered.","operationId":"dns.lookup","parameters":[{"example":"example.com","in":"query","name":"name","required":true,"schema":{"examples":["_dmarc.example.com"],"maxLength":1024,"minLength":1,"title":"Name","type":"string"}},{"example":["A","MX"],"explode":true,"in":"query","name":"types","required":false,"schema":{"default":["A"],"items":{"enum":["A","AAAA","CNAME","MX","NS","TXT","SOA","CAA","SRV"],"title":"RecordType","type":"string"},"maxItems":9,"minItems":1,"title":"Types","type":"array"},"style":"form"},{"$ref":"#/components/parameters/PaymentSignature"}],"responses":{"200":{"content":{"application/json":{"example":{"checked_at":"2026-10-24T12:00:00Z","data":{"answers":[{"rcode":"NOERROR","records":["192.0.2.10"],"ttl":300,"type":"A"},{"rcode":"NOERROR","records":["10 mx1.example.com.","20 mx2.example.com."],"ttl":300,"type":"MX"}],"name":"example.com"},"endpoint":"dns.lookup","findings":[],"meta":{"cache_hit":false,"duration_ms":42,"fresh_until":"2026-10-24T12:05:00Z","observed_at":"2026-10-24T12:00:00Z","resolver":"example","source":"dns"},"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","schema_version":"1.0","status":"ok"},"schema":{"$ref":"#/components/schemas/CheckResponse_DnsLookupData_"}}},"description":"The check result. A result with negative findings is still delivered.","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-Request-ID":{"$ref":"#/components/headers/RequestId"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"bad_request: The request is malformed. Nothing is charged."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}},"description":"Payment required: the exact price and how to pay (x402 v2).","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payment_in_progress, payment_bound_to_other_request: This payment is already being processed, or it is bound to a different request. No new payment is taken. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"invalid_input: The input failed validation on a request that carries a payment; nothing is charged. Without a payment, invalid input gets a 402 whose error field names the problem. Nothing is charged."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"rate_limited: Too many requests from this IP address or payer. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"check_failed: The check could not be completed. Nothing is charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"busy, unavailable, payments_unavailable: The service is busy or temporarily unavailable. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"deadline_exceeded: The check ran out of time. Nothing is charged."}},"summary":"DNS lookup","tags":["dns"],"x-data-class":"public","x-deadline-ms":10000,"x-finding-codes":["CHECK_QUERY_BUDGET_EXCEEDED","DNS_DOMAIN_NOT_FOUND","DNS_RESOLVER_FAILURE","DNS_RESOLVER_TIMEOUT"],"x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","scheme":"exact"},"x-payment-info":{"price":{"amount":"0.005","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-price":{"display":{"single":"0.005"},"rule":{"amount":5000,"kind":"fixed"}}}},"/v1/domain/health":{"get":{"description":"Runs MX, SPF, DMARC, DKIM selector discovery, MTA-STS with TLS-RPT, DNSSEC, reverse DNS of the mail servers, BIMI and CAA in parallel and returns one section per check. A section that fails is marked and the status becomes unknown. There is no score.","operationId":"domain.health","parameters":[{"example":"example.com","in":"query","name":"domain","required":true,"schema":{"examples":["example.com"],"maxLength":1024,"minLength":1,"title":"Domain","type":"string"}},{"$ref":"#/components/parameters/PaymentSignature"}],"responses":{"200":{"content":{"application/json":{"example":{"checked_at":"2026-10-24T12:00:00Z","data":{"bimi":{"authority_url":"https://example.com/brand/vmc.pem","declined":false,"dmarc_enforced":true,"domain":"example.com","logo_url":"https://example.com/brand/logo.svg","name":"default._bimi.example.com","record":"v=BIMI1; l=https://example.com/brand/logo.svg; a=https://example.com/brand/vmc.pem","record_domain":"example.com","selector":"default"},"caa":{"domain":"example.com","inherited":false,"iodef":["mailto:security@example.com"],"issuers":["letsencrypt.org"],"record_name":"example.com","records":[{"critical":false,"flags":0,"tag":"iodef","value":"mailto:security@example.com"},{"critical":false,"flags":0,"tag":"issue","value":"letsencrypt.org"}],"wildcard_issuers":["letsencrypt.org"]},"dkim":{"domain":"example.com","found":[{"domain":"example.com","key_bits":2048,"key_bytes":294,"key_type":"rsa","name":"selector1._domainkey.example.com","record":"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs6ZX/GhLgrfk4EWkcLHLsAA/sQpuwePEUAD14pyq8i99ADfMijZm/6TcqsTnpjDtgAgZ8UR5WAOeY8V5E07QFzvrYrm+Yxv++MVwRgxn5pG4IASlD+gvXY56Pqx553B4GD7ktrskcBZJbPBgshVmzJyP+wrCy8UHfa4wF/AOjWFAUvVkI1iuxTcz3w/P2n0GKqiMh/KfURMc1RPVTqbFuSsoLzZjTAY5K8gLxPIffaXdwN9BQpzr+YSQSjf0gFTCo2CoBByxCR/7Me4yAyIyy7OKORBsvLsCwCFJxlU73QAwzuPW19NKdTHuv20wP+MsW4OXkgy9xmmDU6wvzBcmmwIDAQAB","revoked":false,"selector":"selector1","tags":[{"name":"v","value":"DKIM1"},{"name":"k","value":"rsa"},{"name":"p","value":"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs6ZX/GhLgrfk4EWkcLHLsAA/sQpuwePEUAD14pyq8i99ADfMijZm/6TcqsTnpjDtgAgZ8UR5WAOeY8V5E07QFzvrYrm+Yxv++MVwRgxn5pG4IASlD+gvXY56Pqx553B4GD7ktrskcBZJbPBgshVmzJyP+wrCy8UHfa4wF/AOjWFAUvVkI1iuxTcz3w/P2n0GKqiMh/KfURMc1RPVTqbFuSsoLzZjTAY5K8gLxPIffaXdwN9BQpzr+YSQSjf0gFTCo2CoBByxCR/7Me4yAyIyy7OKORBsvLsCwCFJxlU73QAwzuPW19NKdTHuv20wP+MsW4OXkgy9xmmDU6wvzBcmmwIDAQAB"}],"testing":false}],"tried":["default","dkim","mail","smtp","sig1","s1","s2","k1","k2","k3","google","selector1","selector2","mandrill","smtpapi","mailo","mg","zoho","zmail","protonmail","protonmail2","protonmail3","fm1","fm2","fm3","mailjet","amazonses"]},"dmarc":{"adkim":"r","applied_policy":"reject","aspf":"r","domain":"example.com","nonexistent_policy":"reject","org_domain":"example.com","pct":100,"policy":"reject","record":"v=DMARC1; p=reject; rua=mailto:dmarc@example.com","record_domain":"example.com","rua":["mailto:dmarc@example.com"],"ruf":[],"subdomain_policy":"reject","tags":[{"name":"v","value":"DMARC1"},{"name":"p","value":"reject"},{"name":"rua","value":"mailto:dmarc@example.com"}],"test_mode":false},"dnssec":{"dnskeys":[{"algorithm":13,"flags":256,"protocol":3,"role":"zsk"},{"algorithm":13,"flags":257,"protocol":3,"role":"ksk"}],"domain":"example.com","ds":[{"algorithm":13,"digest_type":2,"key_tag":2371}],"state":"secure","validated":true},"domain":"example.com","mta_sts":{"domain":"example.com","mx_hosts":["mx1.example.com","mx2.example.com"],"policy":{"max_age":604800,"mode":"enforce","mx":["*.example.com"],"version":"STSv1"},"policy_fetched":true,"policy_id":"20261024T120000","record":"v=STSv1; id=20261024T120000","tlsrpt_record":"v=TLSRPTv1; rua=mailto:tlsrpt@example.com","tlsrpt_rua":["mailto:tlsrpt@example.com"],"uncovered_mx":[]},"mx":{"domain":"example.com","hosts":[{"addresses":["192.0.2.25"],"exchange":"mx1.example.com","preference":10,"resolved":true},{"addresses":["192.0.2.26"],"exchange":"mx2.example.com","preference":20,"resolved":true}],"implicit_mx":false,"null_mx":false},"provider":{"domain":"example.com","list_version":"2026-10-26","primary":null,"providers":[]},"ptr":{"addresses":[{"address":"192.0.2.25","forward_confirmed":true,"host":"mx1.example.com","ptr_names":["mx1.example.com"]},{"address":"192.0.2.26","forward_confirmed":true,"host":"mx2.example.com","ptr_names":["mx2.example.com"]}],"domain":"example.com"},"spf":{"all_qualifier":"-","dns_lookup_count":1,"domain":"example.com","lookup_count_complete":true,"record":"v=spf1 ip4:192.0.2.0/24 include:_spf.example.net -all","tree":{"children":[{"children":[],"domain":"_spf.example.net","error":null,"record":"v=spf1 ip4:198.51.100.0/24 -all","terms":[{"kind":"mechanism","name":"ip4","qualifier":null,"raw":"ip4:198.51.100.0/24","value":"198.51.100.0/24"},{"kind":"mechanism","name":"all","qualifier":"-","raw":"-all","value":null}],"via":"include"}],"domain":"example.com","error":null,"record":"v=spf1 ip4:192.0.2.0/24 include:_spf.example.net -all","terms":[{"kind":"mechanism","name":"ip4","qualifier":null,"raw":"ip4:192.0.2.0/24","value":"192.0.2.0/24"},{"kind":"mechanism","name":"include","qualifier":null,"raw":"include:_spf.example.net","value":"_spf.example.net"},{"kind":"mechanism","name":"all","qualifier":"-","raw":"-all","value":null}],"via":"root"},"void_lookup_count":0}},"endpoint":"domain.health","findings":[],"meta":{"cache_hit":false,"duration_ms":42,"fresh_until":"2026-10-24T12:05:00Z","observed_at":"2026-10-24T12:00:00Z","resolver":"example","source":"dns"},"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","schema_version":"1.0","status":"ok"},"schema":{"$ref":"#/components/schemas/CheckResponse_DomainHealthData_"}}},"description":"The check result. A result with negative findings is still delivered.","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-Request-ID":{"$ref":"#/components/headers/RequestId"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"bad_request: The request is malformed. Nothing is charged."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}},"description":"Payment required: the exact price and how to pay (x402 v2).","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payment_in_progress, payment_bound_to_other_request: This payment is already being processed, or it is bound to a different request. No new payment is taken. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"invalid_input: The input failed validation on a request that carries a payment; nothing is charged. Without a payment, invalid input gets a 402 whose error field names the problem. Nothing is charged."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"rate_limited: Too many requests from this IP address or payer. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"check_failed: The check could not be completed. Nothing is charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"busy, unavailable, payments_unavailable: The service is busy or temporarily unavailable. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"deadline_exceeded: The check ran out of time. Nothing is charged."}},"summary":"Domain health check","tags":["domain"],"x-data-class":"public","x-deadline-ms":15000,"x-finding-codes":["BIMI_DMARC_NOT_ENFORCED","BIMI_INSECURE_URL","BIMI_INVALID_RECORD","BIMI_LOGO_NOT_SVG","BIMI_NOT_FOUND","BIMI_NO_VMC","CAA_INVALID_IODEF","CAA_INVALID_VALUE","CAA_NOT_FOUND","CAA_NO_ISSUANCE","CAA_UNKNOWN_CRITICAL_TAG","CHECK_QUERY_BUDGET_EXCEEDED","DKIM_INVALID_KEY","DKIM_KEY_REVOKED","DKIM_MULTIPLE_RECORDS","DKIM_NO_COMMON_SELECTORS","DKIM_SYNTAX_ERROR","DKIM_TESTING_MODE","DKIM_WEAK_KEY","DMARC_HISTORIC_TAG","DMARC_INHERITED","DMARC_INVALID_POLICY","DMARC_MULTIPLE_RECORDS","DMARC_NOT_FOUND","DMARC_NO_RUA","DMARC_PARTIAL_PCT","DMARC_POLICY_NONE","DMARC_SYNTAX_ERROR","DMARC_TESTING_MODE","DMARC_UNKNOWN_TAG","DMARC_UNSUPPORTED_REPORT_URI","DNSSEC_BOGUS","DNSSEC_DEPRECATED_ALGORITHM","DNSSEC_DS_WITHOUT_DNSKEY","DNSSEC_INDETERMINATE","DNSSEC_NOT_SIGNED","DNSSEC_SHA1_DIGEST","DNS_DOMAIN_NOT_FOUND","DNS_RESOLVER_FAILURE","DNS_RESOLVER_TIMEOUT","MTASTS_INVALID_POLICY","MTASTS_INVALID_RECORD","MTASTS_LOW_MAX_AGE","MTASTS_MODE_NONE","MTASTS_MODE_TESTING","MTASTS_MULTIPLE_RECORDS","MTASTS_MX_NOT_COVERED","MTASTS_MX_NOT_COVERED_TESTING","MTASTS_NOT_FOUND","MTASTS_POLICY_UNAVAILABLE","MX_NOT_FOUND","MX_NULL","MX_NULL_WITH_OTHERS","MX_TARGET_IS_IP","MX_TARGET_UNRESOLVABLE","PTR_MISSING","PTR_MULTIPLE_RECORDS","PTR_NOT_FORWARD_CONFIRMED","PTR_NO_MAIL_HOSTS","SPF_INCLUDE_LOOP","SPF_INCLUDE_NOT_FOUND","SPF_MACRO_NOT_EVALUATED","SPF_MULTIPLE_RECORDS","SPF_NEUTRAL_ALL","SPF_NOT_FOUND","SPF_NO_ALL","SPF_PASS_ALL","SPF_PTR_MECHANISM","SPF_SOFTFAIL_ALL","SPF_SYNTAX_ERROR","SPF_TOO_MANY_LOOKUPS","SPF_TOO_MANY_VOID_LOOKUPS","TLSRPT_INVALID","TLSRPT_NOT_FOUND"],"x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","scheme":"exact"},"x-payment-info":{"price":{"amount":"0.08","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-price":{"display":{"single":"0.08"},"rule":{"amount":80000,"kind":"fixed"}}}},"/v1/domain/rdap":{"get":{"description":"Asks the registry's RDAP server from the IANA bootstrap file (RFC 9224) for the registrable domain and reports registrar, creation, change and expiry dates, EPP statuses, nameservers and DNSSEC delegation. Contact data is never kept or returned.","operationId":"domain.rdap","parameters":[{"example":"example.com","in":"query","name":"domain","required":true,"schema":{"examples":["example.com"],"maxLength":1024,"minLength":1,"title":"Domain","type":"string"}},{"$ref":"#/components/parameters/PaymentSignature"}],"responses":{"200":{"content":{"application/json":{"example":{"checked_at":"2026-10-24T12:00:00Z","data":{"created":"1995-08-14T04:00:00Z","days_to_expiry":292,"delegation_signed":true,"domain":"example.com","expires":"2027-08-13T04:00:00Z","last_changed":"2026-08-14T07:01:39Z","ldh_name":"example.com","nameservers":["a.iana-servers.net","b.iana-servers.net"],"rdap_server":"rdap.verisign.com","registered":true,"registrar":"RESERVED-Internet Assigned Numbers Authority","registrar_iana_id":376,"statuses":["client delete prohibited","client transfer prohibited","client update prohibited"]},"endpoint":"domain.rdap","findings":[],"meta":{"cache_hit":false,"duration_ms":42,"fresh_until":"2026-10-24T12:05:00Z","observed_at":"2026-10-24T12:00:00Z","resolver":null,"source":"dns"},"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","schema_version":"1.0","status":"ok"},"schema":{"$ref":"#/components/schemas/CheckResponse_RdapData_"}}},"description":"The check result. A result with negative findings is still delivered.","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-Request-ID":{"$ref":"#/components/headers/RequestId"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"bad_request: The request is malformed. Nothing is charged."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}},"description":"Payment required: the exact price and how to pay (x402 v2).","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payment_in_progress, payment_bound_to_other_request: This payment is already being processed, or it is bound to a different request. No new payment is taken. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"invalid_input: The input failed validation on a request that carries a payment; nothing is charged. Without a payment, invalid input gets a 402 whose error field names the problem. Nothing is charged."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"rate_limited: Too many requests from this IP address or payer. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"check_failed: The check could not be completed. Nothing is charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"busy, unavailable, payments_unavailable: The service is busy or temporarily unavailable. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"deadline_exceeded: The check ran out of time. Nothing is charged."}},"summary":"RDAP domain lookup","tags":["domain"],"x-data-class":"public","x-deadline-ms":10000,"x-finding-codes":["DOMAIN_EXPIRED","DOMAIN_EXPIRING_SOON","DOMAIN_NOT_REGISTERED","DOMAIN_ON_HOLD","DOMAIN_PENDING_DELETE","DOMAIN_TRANSFER_UNLOCKED","RDAP_UNAVAILABLE"],"x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","scheme":"exact"},"x-payment-info":{"price":{"amount":"0.01","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-price":{"display":{"single":"0.01"},"rule":{"amount":10000,"kind":"fixed"}}}},"/v1/http/security-headers":{"get":{"description":"Follows the redirect chains from http:// and https:// (at most five hops each, public hosts on ports 80 and 443 only) and reads HSTS, Content-Security-Policy, X-Content-Type-Options, frame protection, Referrer-Policy and cookie flags of the final HTTPS response. Page bodies are not read.","operationId":"http.security_headers","parameters":[{"example":"example.com","in":"query","name":"domain","required":true,"schema":{"examples":["example.com"],"maxLength":1024,"minLength":1,"title":"Domain","type":"string"}},{"$ref":"#/components/parameters/PaymentSignature"}],"responses":{"200":{"content":{"application/json":{"example":{"checked_at":"2026-10-24T12:00:00Z","data":{"domain":"example.com","from_http":{"error":null,"final_status":200,"final_url":"https://example.com/","hops":[{"location":"https://example.com/","status":301,"url":"http://example.com/"},{"location":null,"status":200,"url":"https://example.com/"}],"start_url":"http://example.com/"},"from_https":{"error":null,"final_status":200,"final_url":"https://example.com/","hops":[{"location":null,"status":200,"url":"https://example.com/"}],"start_url":"https://example.com/"},"headers":{"content_security_policy":"default-src 'self'; frame-ancestors 'none'","content_security_policy_report_only":null,"cookies":[{"http_only":true,"name":"session","same_site":"lax","secure":true}],"cross_origin_opener_policy":"same-origin","permissions_policy":"camera=(), microphone=()","referrer_policy":"strict-origin-when-cross-origin","strict_transport_security":{"include_subdomains":true,"max_age":63072000,"preload":true,"raw":"max-age=63072000; includeSubDomains; preload","valid":true},"x_content_type_options":"nosniff","x_frame_options":null}},"endpoint":"http.security_headers","findings":[],"meta":{"cache_hit":false,"duration_ms":42,"fresh_until":"2026-10-24T12:05:00Z","observed_at":"2026-10-24T12:00:00Z","resolver":null,"source":"dns"},"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","schema_version":"1.0","status":"ok"},"schema":{"$ref":"#/components/schemas/CheckResponse_SecurityHeadersData_"}}},"description":"The check result. A result with negative findings is still delivered.","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-Request-ID":{"$ref":"#/components/headers/RequestId"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"bad_request: The request is malformed. Nothing is charged."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}},"description":"Payment required: the exact price and how to pay (x402 v2).","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payment_in_progress, payment_bound_to_other_request: This payment is already being processed, or it is bound to a different request. No new payment is taken. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"invalid_input: The input failed validation on a request that carries a payment; nothing is charged. Without a payment, invalid input gets a 402 whose error field names the problem. Nothing is charged."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"rate_limited: Too many requests from this IP address or payer. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"check_failed: The check could not be completed. Nothing is charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"busy, unavailable, payments_unavailable: The service is busy or temporarily unavailable. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"deadline_exceeded: The check ran out of time. Nothing is charged."}},"summary":"Security headers check","tags":["http"],"x-data-class":"public","x-deadline-ms":15000,"x-finding-codes":["COOKIE_NOT_SECURE","CSP_MISSING","CSP_UNSAFE_INLINE","FRAME_PROTECTION_MISSING","HSTS_MISSING","HSTS_NOT_PRELOAD_READY","HSTS_SHORT_MAX_AGE","HTTPS_UNAVAILABLE","HTTP_NO_HTTPS_REDIRECT","HTTP_UNAVAILABLE","REDIRECT_LIMIT","REDIRECT_OFFSITE","REFERRER_POLICY_MISSING","XCTO_MISSING"],"x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","scheme":"exact"},"x-payment-info":{"price":{"amount":"0.01","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-price":{"display":{"single":"0.01"},"rule":{"amount":10000,"kind":"fixed"}}}},"/v1/mail/bimi":{"get":{"description":"Looks up <selector>._bimi for the domain and its organisational domain, parses v=BIMI1, l= and a=, checks HTTPS and the .svg logo path, and whether DMARC is enforced as BIMI requires. The logo and the mark certificate are not downloaded.","operationId":"mail.bimi","parameters":[{"example":"example.com","in":"query","name":"domain","required":true,"schema":{"examples":["example.com"],"maxLength":1024,"minLength":1,"title":"Domain","type":"string"}},{"in":"query","name":"selector","required":false,"schema":{"default":"default","examples":["default"],"maxLength":80,"minLength":1,"title":"Selector","type":"string"}},{"$ref":"#/components/parameters/PaymentSignature"}],"responses":{"200":{"content":{"application/json":{"example":{"checked_at":"2026-10-24T12:00:00Z","data":{"authority_url":"https://example.com/brand/vmc.pem","declined":false,"dmarc_enforced":true,"domain":"example.com","logo_url":"https://example.com/brand/logo.svg","name":"default._bimi.example.com","record":"v=BIMI1; l=https://example.com/brand/logo.svg; a=https://example.com/brand/vmc.pem","record_domain":"example.com","selector":"default"},"endpoint":"mail.bimi","findings":[],"meta":{"cache_hit":false,"duration_ms":42,"fresh_until":"2026-10-24T12:05:00Z","observed_at":"2026-10-24T12:00:00Z","resolver":"example","source":"dns"},"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","schema_version":"1.0","status":"ok"},"schema":{"$ref":"#/components/schemas/CheckResponse_BimiData_"}}},"description":"The check result. A result with negative findings is still delivered.","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-Request-ID":{"$ref":"#/components/headers/RequestId"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"bad_request: The request is malformed. Nothing is charged."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}},"description":"Payment required: the exact price and how to pay (x402 v2).","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payment_in_progress, payment_bound_to_other_request: This payment is already being processed, or it is bound to a different request. No new payment is taken. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"invalid_input: The input failed validation on a request that carries a payment; nothing is charged. Without a payment, invalid input gets a 402 whose error field names the problem. Nothing is charged."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"rate_limited: Too many requests from this IP address or payer. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"check_failed: The check could not be completed. Nothing is charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"busy, unavailable, payments_unavailable: The service is busy or temporarily unavailable. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"deadline_exceeded: The check ran out of time. Nothing is charged."}},"summary":"BIMI record check","tags":["mail"],"x-data-class":"public","x-deadline-ms":10000,"x-finding-codes":["CHECK_QUERY_BUDGET_EXCEEDED","DNS_RESOLVER_FAILURE","DNS_RESOLVER_TIMEOUT","BIMI_DMARC_NOT_ENFORCED","BIMI_INSECURE_URL","BIMI_INVALID_RECORD","BIMI_LOGO_NOT_SVG","BIMI_NOT_FOUND","BIMI_NO_VMC"],"x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","scheme":"exact"},"x-payment-info":{"price":{"amount":"0.01","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-price":{"display":{"single":"0.01"},"rule":{"amount":10000,"kind":"fixed"}}}},"/v1/mail/check":{"get":{"description":"Runs the MX, SPF and DMARC checks together and checks DKIM for any selectors you supply. DKIM is only checked for given selectors; a missing selector is not proof of missing DKIM.","operationId":"mail.check","parameters":[{"example":"example.com","in":"query","name":"domain","required":true,"schema":{"examples":["example.com"],"maxLength":1024,"minLength":1,"title":"Domain","type":"string"}},{"example":["selector1"],"explode":true,"in":"query","name":"dkim_selectors","required":false,"schema":{"default":[],"items":{"examples":["selector1"],"maxLength":200,"minLength":1,"type":"string"},"maxItems":5,"title":"Dkim Selectors","type":"array"},"style":"form"},{"$ref":"#/components/parameters/PaymentSignature"}],"responses":{"200":{"content":{"application/json":{"example":{"checked_at":"2026-10-24T12:00:00Z","data":{"dkim":[{"domain":"example.com","key_bits":2048,"key_bytes":294,"key_type":"rsa","name":"selector1._domainkey.example.com","record":"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs6ZX/GhLgrfk4EWkcLHLsAA/sQpuwePEUAD14pyq8i99ADfMijZm/6TcqsTnpjDtgAgZ8UR5WAOeY8V5E07QFzvrYrm+Yxv++MVwRgxn5pG4IASlD+gvXY56Pqx553B4GD7ktrskcBZJbPBgshVmzJyP+wrCy8UHfa4wF/AOjWFAUvVkI1iuxTcz3w/P2n0GKqiMh/KfURMc1RPVTqbFuSsoLzZjTAY5K8gLxPIffaXdwN9BQpzr+YSQSjf0gFTCo2CoBByxCR/7Me4yAyIyy7OKORBsvLsCwCFJxlU73QAwzuPW19NKdTHuv20wP+MsW4OXkgy9xmmDU6wvzBcmmwIDAQAB","revoked":false,"selector":"selector1","tags":[{"name":"v","value":"DKIM1"},{"name":"k","value":"rsa"},{"name":"p","value":"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs6ZX/GhLgrfk4EWkcLHLsAA/sQpuwePEUAD14pyq8i99ADfMijZm/6TcqsTnpjDtgAgZ8UR5WAOeY8V5E07QFzvrYrm+Yxv++MVwRgxn5pG4IASlD+gvXY56Pqx553B4GD7ktrskcBZJbPBgshVmzJyP+wrCy8UHfa4wF/AOjWFAUvVkI1iuxTcz3w/P2n0GKqiMh/KfURMc1RPVTqbFuSsoLzZjTAY5K8gLxPIffaXdwN9BQpzr+YSQSjf0gFTCo2CoBByxCR/7Me4yAyIyy7OKORBsvLsCwCFJxlU73QAwzuPW19NKdTHuv20wP+MsW4OXkgy9xmmDU6wvzBcmmwIDAQAB"}],"testing":false}],"dmarc":{"adkim":"r","applied_policy":"reject","aspf":"r","domain":"example.com","nonexistent_policy":"reject","org_domain":"example.com","pct":100,"policy":"reject","record":"v=DMARC1; p=reject; rua=mailto:dmarc@example.com","record_domain":"example.com","rua":["mailto:dmarc@example.com"],"ruf":[],"subdomain_policy":"reject","tags":[{"name":"v","value":"DMARC1"},{"name":"p","value":"reject"},{"name":"rua","value":"mailto:dmarc@example.com"}],"test_mode":false},"domain":"example.com","mx":{"domain":"example.com","hosts":[{"addresses":["192.0.2.25"],"exchange":"mx1.example.com","preference":10,"resolved":true},{"addresses":["192.0.2.26"],"exchange":"mx2.example.com","preference":20,"resolved":true}],"implicit_mx":false,"null_mx":false},"spf":{"all_qualifier":"-","dns_lookup_count":1,"domain":"example.com","lookup_count_complete":true,"record":"v=spf1 ip4:192.0.2.0/24 include:_spf.example.net -all","tree":{"children":[{"children":[],"domain":"_spf.example.net","error":null,"record":"v=spf1 ip4:198.51.100.0/24 -all","terms":[{"kind":"mechanism","name":"ip4","qualifier":null,"raw":"ip4:198.51.100.0/24","value":"198.51.100.0/24"},{"kind":"mechanism","name":"all","qualifier":"-","raw":"-all","value":null}],"via":"include"}],"domain":"example.com","error":null,"record":"v=spf1 ip4:192.0.2.0/24 include:_spf.example.net -all","terms":[{"kind":"mechanism","name":"ip4","qualifier":null,"raw":"ip4:192.0.2.0/24","value":"192.0.2.0/24"},{"kind":"mechanism","name":"include","qualifier":null,"raw":"include:_spf.example.net","value":"_spf.example.net"},{"kind":"mechanism","name":"all","qualifier":"-","raw":"-all","value":null}],"via":"root"},"void_lookup_count":0}},"endpoint":"mail.check","findings":[],"meta":{"cache_hit":false,"duration_ms":42,"fresh_until":"2026-10-24T12:05:00Z","observed_at":"2026-10-24T12:00:00Z","resolver":"example","source":"dns"},"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","schema_version":"1.0","status":"ok"},"schema":{"$ref":"#/components/schemas/CheckResponse_MailCheckData_"}}},"description":"The check result. A result with negative findings is still delivered.","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-Request-ID":{"$ref":"#/components/headers/RequestId"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"bad_request: The request is malformed. Nothing is charged."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}},"description":"Payment required: the exact price and how to pay (x402 v2).","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payment_in_progress, payment_bound_to_other_request: This payment is already being processed, or it is bound to a different request. No new payment is taken. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"invalid_input: The input failed validation on a request that carries a payment; nothing is charged. Without a payment, invalid input gets a 402 whose error field names the problem. Nothing is charged."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"rate_limited: Too many requests from this IP address or payer. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"check_failed: The check could not be completed. Nothing is charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"busy, unavailable, payments_unavailable: The service is busy or temporarily unavailable. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"deadline_exceeded: The check ran out of time. Nothing is charged."}},"summary":"Mail configuration check","tags":["mail"],"x-data-class":"public","x-deadline-ms":10000,"x-finding-codes":["CHECK_QUERY_BUDGET_EXCEEDED","DKIM_INVALID_KEY","DKIM_KEY_REVOKED","DKIM_MULTIPLE_RECORDS","DKIM_NOT_FOUND","DKIM_SYNTAX_ERROR","DKIM_TESTING_MODE","DKIM_WEAK_KEY","DMARC_HISTORIC_TAG","DMARC_INHERITED","DMARC_INVALID_POLICY","DMARC_MULTIPLE_RECORDS","DMARC_NOT_FOUND","DMARC_NO_RUA","DMARC_PARTIAL_PCT","DMARC_POLICY_NONE","DMARC_SYNTAX_ERROR","DMARC_TESTING_MODE","DMARC_UNKNOWN_TAG","DMARC_UNSUPPORTED_REPORT_URI","DNS_DOMAIN_NOT_FOUND","DNS_RESOLVER_FAILURE","DNS_RESOLVER_TIMEOUT","MX_NOT_FOUND","MX_NULL","MX_NULL_WITH_OTHERS","MX_TARGET_IS_IP","MX_TARGET_UNRESOLVABLE","SPF_INCLUDE_LOOP","SPF_INCLUDE_NOT_FOUND","SPF_MACRO_NOT_EVALUATED","SPF_MULTIPLE_RECORDS","SPF_NEUTRAL_ALL","SPF_NOT_FOUND","SPF_NO_ALL","SPF_PASS_ALL","SPF_PTR_MECHANISM","SPF_SOFTFAIL_ALL","SPF_SYNTAX_ERROR","SPF_TOO_MANY_LOOKUPS","SPF_TOO_MANY_VOID_LOOKUPS"],"x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","scheme":"exact"},"x-payment-info":{"price":{"amount":"0.03","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-price":{"display":{"single":"0.03"},"rule":{"amount":30000,"kind":"fixed"}}}},"/v1/mail/check/bulk":{"post":{"description":"Same engine as the single mail check. Results keep input order; duplicates count as items. Items that fail for technical reasons can be retried free for 15 minutes.","operationId":"mail.check.bulk","parameters":[{"$ref":"#/components/parameters/PaymentSignature"}],"requestBody":{"content":{"application/json":{"example":{"domains":["example.com","example.org"]},"schema":{"additionalProperties":false,"properties":{"domains":{"items":{"examples":["example.com"],"maxLength":1024,"minLength":1,"type":"string"},"maxItems":20,"minItems":1,"title":"Domains","type":"array"}},"required":["domains"],"title":"BulkDomainsInput","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"example":{"checked_at":"2026-10-24T12:00:00Z","endpoint":"mail.check.bulk","failed_count":0,"item_count":2,"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","results":[{"error":null,"index":0,"item":"example.com","result":{"checked_at":"2026-10-24T12:00:00Z","data":{"dkim":[],"dmarc":{"adkim":"r","applied_policy":"reject","aspf":"r","domain":"example.com","nonexistent_policy":"reject","org_domain":"example.com","pct":100,"policy":"reject","record":"v=DMARC1; p=reject; rua=mailto:dmarc@example.com","record_domain":"example.com","rua":["mailto:dmarc@example.com"],"ruf":[],"subdomain_policy":"reject","tags":[{"name":"v","value":"DMARC1"},{"name":"p","value":"reject"},{"name":"rua","value":"mailto:dmarc@example.com"}],"test_mode":false},"domain":"example.com","mx":{"domain":"example.com","hosts":[{"addresses":["192.0.2.25"],"exchange":"mx1.example.com","preference":10,"resolved":true},{"addresses":["192.0.2.26"],"exchange":"mx2.example.com","preference":20,"resolved":true}],"implicit_mx":false,"null_mx":false},"spf":{"all_qualifier":"-","dns_lookup_count":1,"domain":"example.com","lookup_count_complete":true,"record":"v=spf1 ip4:192.0.2.0/24 include:_spf.example.net -all","tree":{"children":[{"children":[],"domain":"_spf.example.net","error":null,"record":"v=spf1 ip4:198.51.100.0/24 -all","terms":[{"kind":"mechanism","name":"ip4","qualifier":null,"raw":"ip4:198.51.100.0/24","value":"198.51.100.0/24"},{"kind":"mechanism","name":"all","qualifier":"-","raw":"-all","value":null}],"via":"include"}],"domain":"example.com","error":null,"record":"v=spf1 ip4:192.0.2.0/24 include:_spf.example.net -all","terms":[{"kind":"mechanism","name":"ip4","qualifier":null,"raw":"ip4:192.0.2.0/24","value":"192.0.2.0/24"},{"kind":"mechanism","name":"include","qualifier":null,"raw":"include:_spf.example.net","value":"_spf.example.net"},{"kind":"mechanism","name":"all","qualifier":"-","raw":"-all","value":null}],"via":"root"},"void_lookup_count":0}},"endpoint":"mail.check","findings":[],"meta":{"cache_hit":false,"duration_ms":42,"fresh_until":"2026-10-24T12:05:00Z","observed_at":"2026-10-24T12:00:00Z","resolver":"example","source":"dns"},"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","schema_version":"1.0","status":"ok"}},{"error":null,"index":1,"item":"example.org","result":{"checked_at":"2026-10-24T12:00:00Z","data":{"dkim":[],"dmarc":{"adkim":null,"applied_policy":null,"aspf":null,"domain":"example.org","nonexistent_policy":null,"org_domain":"example.org","pct":null,"policy":null,"record":null,"record_domain":null,"rua":[],"ruf":[],"subdomain_policy":null,"tags":[],"test_mode":false},"domain":"example.org","mx":{"domain":"example.org","hosts":[],"implicit_mx":false,"null_mx":false},"spf":{"all_qualifier":null,"dns_lookup_count":0,"domain":"example.org","lookup_count_complete":true,"record":null,"tree":null,"void_lookup_count":0}},"endpoint":"mail.check","findings":[{"code":"DMARC_NOT_FOUND","evidence":{"count":1,"items":[{"domain":"example.org","org_domain":"example.org"}]},"explanation":"Without DMARC, receivers apply their own handling to mail that fails SPF and DKIM alignment, and the domain owner receives no reports.","message":"No DMARC record was found for the domain or any of its parent domains.","recommendation":"Publish a DMARC record, for example with p=none and a rua address, and use the reports to plan further steps.","severity":"warning"},{"code":"DNS_DOMAIN_NOT_FOUND","evidence":{"count":2,"items":[{"name":"example.org"},{"name":"example.org"}]},"explanation":"The resolver answered NXDOMAIN: it found no records for this name. Another resolver or a recent registration or delegation change could give a different answer.","message":"The DNS resolver reported that the domain does not exist.","recommendation":"Check the spelling and that the domain is registered and delegated.","severity":"error"}],"meta":{"cache_hit":false,"duration_ms":42,"fresh_until":"2026-10-24T12:05:00Z","observed_at":"2026-10-24T12:00:00Z","resolver":"example","source":"dns"},"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","schema_version":"1.0","status":"error"}}],"retry_token":null,"schema_version":"1.0","succeeded_count":2},"schema":{"$ref":"#/components/schemas/BulkResponse_MailCheckData_"}}},"description":"The check result. A result with negative findings is still delivered.","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-Request-ID":{"$ref":"#/components/headers/RequestId"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"bad_request: The request is malformed. Nothing is charged."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}},"description":"Payment required: the exact price and how to pay (x402 v2).","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payment_in_progress, payment_bound_to_other_request: This payment is already being processed, or it is bound to a different request. No new payment is taken. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payload_too_large: The body is larger than 64 KB. Nothing is charged."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"invalid_input: The input failed validation on a request that carries a payment; nothing is charged. Without a payment, invalid input gets a 402 whose error field names the problem. Nothing is charged."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"rate_limited: Too many requests from this IP address or payer. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"check_failed: The check could not be completed. Nothing is charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"busy, unavailable, payments_unavailable: The service is busy or temporarily unavailable. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"deadline_exceeded: The check ran out of time. Nothing is charged."}},"summary":"Bulk mail configuration check","tags":["mail"],"x-data-class":"public","x-deadline-ms":30000,"x-finding-codes":["CHECK_DEADLINE_EXCEEDED","CHECK_INTERNAL_ERROR","CHECK_QUERY_BUDGET_EXCEEDED","DKIM_INVALID_KEY","DKIM_KEY_REVOKED","DKIM_MULTIPLE_RECORDS","DKIM_NOT_FOUND","DKIM_SYNTAX_ERROR","DKIM_TESTING_MODE","DKIM_WEAK_KEY","DMARC_HISTORIC_TAG","DMARC_INHERITED","DMARC_INVALID_POLICY","DMARC_MULTIPLE_RECORDS","DMARC_NOT_FOUND","DMARC_NO_RUA","DMARC_PARTIAL_PCT","DMARC_POLICY_NONE","DMARC_SYNTAX_ERROR","DMARC_TESTING_MODE","DMARC_UNKNOWN_TAG","DMARC_UNSUPPORTED_REPORT_URI","DNS_DOMAIN_NOT_FOUND","DNS_RESOLVER_FAILURE","DNS_RESOLVER_TIMEOUT","MX_NOT_FOUND","MX_NULL","MX_NULL_WITH_OTHERS","MX_TARGET_IS_IP","MX_TARGET_UNRESOLVABLE","SPF_INCLUDE_LOOP","SPF_INCLUDE_NOT_FOUND","SPF_MACRO_NOT_EVALUATED","SPF_MULTIPLE_RECORDS","SPF_NEUTRAL_ALL","SPF_NOT_FOUND","SPF_NO_ALL","SPF_PASS_ALL","SPF_PTR_MECHANISM","SPF_SOFTFAIL_ALL","SPF_SYNTAX_ERROR","SPF_TOO_MANY_LOOKUPS","SPF_TOO_MANY_VOID_LOOKUPS"],"x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","scheme":"exact"},"x-payment-info":{"price":{"currency":"USD","max":"0.48","min":"0.03","mode":"dynamic"},"protocols":[{"x402":{}}]},"x-price":{"display":{"max_items":20,"minimum":"0.03","per_item":"0.024"},"rule":{"kind":"per_item","max_items":20,"minimum":30000,"per_item":24000}}}},"/v1/mail/check/bulk/retry":{"post":{"description":"Send the retry_token from a paid bulk response. Only the items that failed for a technical reason are run again, with the domains from the paid request; the input cannot be changed and nothing is charged. A token is valid for 15 minutes and 3 attempts in total. Each attempt that still has failed items returns a new token that replaces the old one.","operationId":"mail.check.bulk.retry","requestBody":{"content":{"application/json":{"example":{"retry_token":"Ex4mpleRetryToken_doNotUse-0123456789abcdef"},"schema":{"additionalProperties":false,"description":"Body of a free bulk retry: only the token from the paid response, never new input.","properties":{"retry_token":{"maxLength":256,"minLength":16,"pattern":"^[A-Za-z0-9_-]+$","title":"Retry Token","type":"string"}},"required":["retry_token"],"title":"BulkRetryInput","type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkResponse_MailCheckData_"}}},"description":"The bulk result with the retried items merged in. While items still fail and attempts are left, it holds a new retry_token that replaces the old one.","headers":{"X-Request-ID":{"$ref":"#/components/headers/RequestId"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"bad_request: The request is malformed. Nothing is charged."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"retry_token_invalid: The retry token is unknown, or a newer token from a later attempt has replaced it. Nothing is charged."},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"retry_in_progress: An attempt with this retry token is already running. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"retry_token_expired: The retry token has expired (15 minutes after it was issued), all 3 attempts are used, or no failed items are left. Nothing is charged."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payload_too_large: The body is larger than 64 KB. Nothing is charged."},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"invalid_input: The body is invalid: it must hold only retry_token. Nothing is charged."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"rate_limited: Too many requests from this IP address. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"busy, unavailable: The service is busy or temporarily unavailable. The attempt does not count. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"security":[],"summary":"Free retry of failed bulk items","tags":["mail"],"x-data-class":"public","x-deadline-ms":30000,"x-free":true,"x-retry-of":"mail.check.bulk","x-retry-token":{"max-attempts":3,"ttl-seconds":900}}},"/v1/mail/dkim":{"get":{"description":"Looks up selector._domainkey for the domain and validates the key record. This checks the published record only; verifying a message signature needs the message itself.","operationId":"mail.dkim","parameters":[{"example":"example.com","in":"query","name":"domain","required":true,"schema":{"examples":["example.com"],"maxLength":1024,"minLength":1,"title":"Domain","type":"string"}},{"example":"selector1","in":"query","name":"selector","required":true,"schema":{"examples":["selector1"],"maxLength":200,"minLength":1,"title":"Selector","type":"string"}},{"$ref":"#/components/parameters/PaymentSignature"}],"responses":{"200":{"content":{"application/json":{"example":{"checked_at":"2026-10-24T12:00:00Z","data":{"domain":"example.com","key_bits":2048,"key_bytes":294,"key_type":"rsa","name":"selector1._domainkey.example.com","record":"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs6ZX/GhLgrfk4EWkcLHLsAA/sQpuwePEUAD14pyq8i99ADfMijZm/6TcqsTnpjDtgAgZ8UR5WAOeY8V5E07QFzvrYrm+Yxv++MVwRgxn5pG4IASlD+gvXY56Pqx553B4GD7ktrskcBZJbPBgshVmzJyP+wrCy8UHfa4wF/AOjWFAUvVkI1iuxTcz3w/P2n0GKqiMh/KfURMc1RPVTqbFuSsoLzZjTAY5K8gLxPIffaXdwN9BQpzr+YSQSjf0gFTCo2CoBByxCR/7Me4yAyIyy7OKORBsvLsCwCFJxlU73QAwzuPW19NKdTHuv20wP+MsW4OXkgy9xmmDU6wvzBcmmwIDAQAB","revoked":false,"selector":"selector1","tags":[{"name":"v","value":"DKIM1"},{"name":"k","value":"rsa"},{"name":"p","value":"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs6ZX/GhLgrfk4EWkcLHLsAA/sQpuwePEUAD14pyq8i99ADfMijZm/6TcqsTnpjDtgAgZ8UR5WAOeY8V5E07QFzvrYrm+Yxv++MVwRgxn5pG4IASlD+gvXY56Pqx553B4GD7ktrskcBZJbPBgshVmzJyP+wrCy8UHfa4wF/AOjWFAUvVkI1iuxTcz3w/P2n0GKqiMh/KfURMc1RPVTqbFuSsoLzZjTAY5K8gLxPIffaXdwN9BQpzr+YSQSjf0gFTCo2CoBByxCR/7Me4yAyIyy7OKORBsvLsCwCFJxlU73QAwzuPW19NKdTHuv20wP+MsW4OXkgy9xmmDU6wvzBcmmwIDAQAB"}],"testing":false},"endpoint":"mail.dkim","findings":[],"meta":{"cache_hit":false,"duration_ms":42,"fresh_until":"2026-10-24T12:05:00Z","observed_at":"2026-10-24T12:00:00Z","resolver":"example","source":"dns"},"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","schema_version":"1.0","status":"ok"},"schema":{"$ref":"#/components/schemas/CheckResponse_DkimData_"}}},"description":"The check result. A result with negative findings is still delivered.","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-Request-ID":{"$ref":"#/components/headers/RequestId"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"bad_request: The request is malformed. Nothing is charged."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}},"description":"Payment required: the exact price and how to pay (x402 v2).","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payment_in_progress, payment_bound_to_other_request: This payment is already being processed, or it is bound to a different request. No new payment is taken. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"invalid_input: The input failed validation on a request that carries a payment; nothing is charged. Without a payment, invalid input gets a 402 whose error field names the problem. Nothing is charged."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"rate_limited: Too many requests from this IP address or payer. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"check_failed: The check could not be completed. Nothing is charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"busy, unavailable, payments_unavailable: The service is busy or temporarily unavailable. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"deadline_exceeded: The check ran out of time. Nothing is charged."}},"summary":"DKIM record check","tags":["mail"],"x-data-class":"public","x-deadline-ms":10000,"x-finding-codes":["DKIM_INVALID_KEY","DKIM_KEY_REVOKED","DKIM_MULTIPLE_RECORDS","DKIM_NOT_FOUND","DKIM_SYNTAX_ERROR","DKIM_TESTING_MODE","DKIM_WEAK_KEY"],"x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","scheme":"exact"},"x-payment-info":{"price":{"amount":"0.01","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-price":{"display":{"single":"0.01"},"rule":{"amount":10000,"kind":"fixed"}}}},"/v1/mail/dkim-discover":{"get":{"description":"Looks up selector._domainkey for a fixed list of selectors used by common mail providers and generic setups, and checks each key record found like the DKIM record check. Finding none is a hint, not proof that DKIM is missing.","operationId":"mail.dkim_discover","parameters":[{"example":"example.com","in":"query","name":"domain","required":true,"schema":{"examples":["example.com"],"maxLength":1024,"minLength":1,"title":"Domain","type":"string"}},{"$ref":"#/components/parameters/PaymentSignature"}],"responses":{"200":{"content":{"application/json":{"example":{"checked_at":"2026-10-24T12:00:00Z","data":{"domain":"example.com","found":[{"domain":"example.com","key_bits":2048,"key_bytes":294,"key_type":"rsa","name":"selector1._domainkey.example.com","record":"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs6ZX/GhLgrfk4EWkcLHLsAA/sQpuwePEUAD14pyq8i99ADfMijZm/6TcqsTnpjDtgAgZ8UR5WAOeY8V5E07QFzvrYrm+Yxv++MVwRgxn5pG4IASlD+gvXY56Pqx553B4GD7ktrskcBZJbPBgshVmzJyP+wrCy8UHfa4wF/AOjWFAUvVkI1iuxTcz3w/P2n0GKqiMh/KfURMc1RPVTqbFuSsoLzZjTAY5K8gLxPIffaXdwN9BQpzr+YSQSjf0gFTCo2CoBByxCR/7Me4yAyIyy7OKORBsvLsCwCFJxlU73QAwzuPW19NKdTHuv20wP+MsW4OXkgy9xmmDU6wvzBcmmwIDAQAB","revoked":false,"selector":"selector1","tags":[{"name":"v","value":"DKIM1"},{"name":"k","value":"rsa"},{"name":"p","value":"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs6ZX/GhLgrfk4EWkcLHLsAA/sQpuwePEUAD14pyq8i99ADfMijZm/6TcqsTnpjDtgAgZ8UR5WAOeY8V5E07QFzvrYrm+Yxv++MVwRgxn5pG4IASlD+gvXY56Pqx553B4GD7ktrskcBZJbPBgshVmzJyP+wrCy8UHfa4wF/AOjWFAUvVkI1iuxTcz3w/P2n0GKqiMh/KfURMc1RPVTqbFuSsoLzZjTAY5K8gLxPIffaXdwN9BQpzr+YSQSjf0gFTCo2CoBByxCR/7Me4yAyIyy7OKORBsvLsCwCFJxlU73QAwzuPW19NKdTHuv20wP+MsW4OXkgy9xmmDU6wvzBcmmwIDAQAB"}],"testing":false}],"tried":["default","dkim","mail","smtp","sig1","s1","s2","k1","k2","k3","google","selector1","selector2","mandrill","smtpapi","mailo","mg","zoho","zmail","protonmail","protonmail2","protonmail3","fm1","fm2","fm3","mailjet","amazonses"]},"endpoint":"mail.dkim_discover","findings":[],"meta":{"cache_hit":false,"duration_ms":42,"fresh_until":"2026-10-24T12:05:00Z","observed_at":"2026-10-24T12:00:00Z","resolver":"example","source":"dns"},"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","schema_version":"1.0","status":"ok"},"schema":{"$ref":"#/components/schemas/CheckResponse_DkimDiscoverData_"}}},"description":"The check result. A result with negative findings is still delivered.","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-Request-ID":{"$ref":"#/components/headers/RequestId"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"bad_request: The request is malformed. Nothing is charged."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}},"description":"Payment required: the exact price and how to pay (x402 v2).","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payment_in_progress, payment_bound_to_other_request: This payment is already being processed, or it is bound to a different request. No new payment is taken. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"invalid_input: The input failed validation on a request that carries a payment; nothing is charged. Without a payment, invalid input gets a 402 whose error field names the problem. Nothing is charged."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"rate_limited: Too many requests from this IP address or payer. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"check_failed: The check could not be completed. Nothing is charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"busy, unavailable, payments_unavailable: The service is busy or temporarily unavailable. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"deadline_exceeded: The check ran out of time. Nothing is charged."}},"summary":"DKIM selector finder","tags":["mail"],"x-data-class":"public","x-deadline-ms":10000,"x-finding-codes":["CHECK_QUERY_BUDGET_EXCEEDED","DNS_RESOLVER_FAILURE","DNS_RESOLVER_TIMEOUT","DKIM_INVALID_KEY","DKIM_KEY_REVOKED","DKIM_MULTIPLE_RECORDS","DKIM_NO_COMMON_SELECTORS","DKIM_SYNTAX_ERROR","DKIM_TESTING_MODE","DKIM_WEAK_KEY"],"x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","scheme":"exact"},"x-payment-info":{"price":{"amount":"0.02","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-price":{"display":{"single":"0.02"},"rule":{"amount":20000,"kind":"fixed"}}}},"/v1/mail/dmarc":{"get":{"description":"Finds the DMARC record for the domain or its organisational domain, validates the tags and explains policy, subdomain policy, alignment and reporting addresses.","operationId":"mail.dmarc","parameters":[{"example":"example.com","in":"query","name":"domain","required":true,"schema":{"examples":["example.com"],"maxLength":1024,"minLength":1,"title":"Domain","type":"string"}},{"$ref":"#/components/parameters/PaymentSignature"}],"responses":{"200":{"content":{"application/json":{"example":{"checked_at":"2026-10-24T12:00:00Z","data":{"adkim":"r","applied_policy":"reject","aspf":"r","domain":"example.com","nonexistent_policy":"reject","org_domain":"example.com","pct":100,"policy":"reject","record":"v=DMARC1; p=reject; rua=mailto:dmarc@example.com","record_domain":"example.com","rua":["mailto:dmarc@example.com"],"ruf":[],"subdomain_policy":"reject","tags":[{"name":"v","value":"DMARC1"},{"name":"p","value":"reject"},{"name":"rua","value":"mailto:dmarc@example.com"}],"test_mode":false},"endpoint":"mail.dmarc","findings":[],"meta":{"cache_hit":false,"duration_ms":42,"fresh_until":"2026-10-24T12:05:00Z","observed_at":"2026-10-24T12:00:00Z","resolver":"example","source":"dns"},"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","schema_version":"1.0","status":"ok"},"schema":{"$ref":"#/components/schemas/CheckResponse_DmarcData_"}}},"description":"The check result. A result with negative findings is still delivered.","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-Request-ID":{"$ref":"#/components/headers/RequestId"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"bad_request: The request is malformed. Nothing is charged."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}},"description":"Payment required: the exact price and how to pay (x402 v2).","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payment_in_progress, payment_bound_to_other_request: This payment is already being processed, or it is bound to a different request. No new payment is taken. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"invalid_input: The input failed validation on a request that carries a payment; nothing is charged. Without a payment, invalid input gets a 402 whose error field names the problem. Nothing is charged."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"rate_limited: Too many requests from this IP address or payer. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"check_failed: The check could not be completed. Nothing is charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"busy, unavailable, payments_unavailable: The service is busy or temporarily unavailable. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"deadline_exceeded: The check ran out of time. Nothing is charged."}},"summary":"DMARC check","tags":["mail"],"x-data-class":"public","x-deadline-ms":10000,"x-finding-codes":["CHECK_QUERY_BUDGET_EXCEEDED","DNS_RESOLVER_FAILURE","DNS_RESOLVER_TIMEOUT","DMARC_HISTORIC_TAG","DMARC_INHERITED","DMARC_INVALID_POLICY","DMARC_MULTIPLE_RECORDS","DMARC_NOT_FOUND","DMARC_NO_RUA","DMARC_PARTIAL_PCT","DMARC_POLICY_NONE","DMARC_SYNTAX_ERROR","DMARC_TESTING_MODE","DMARC_UNKNOWN_TAG","DMARC_UNSUPPORTED_REPORT_URI"],"x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","scheme":"exact"},"x-payment-info":{"price":{"amount":"0.01","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-price":{"display":{"single":"0.01"},"rule":{"amount":10000,"kind":"fixed"}}}},"/v1/mail/mta-sts":{"get":{"description":"Looks up _mta-sts, fetches the policy from https://mta-sts.<domain>/.well-known/mta-sts.txt with certificate verification and no redirects, parses mode, mx and max_age, compares the domain's MX hosts with the policy and validates the TLS-RPT record.","operationId":"mail.mta_sts","parameters":[{"example":"example.com","in":"query","name":"domain","required":true,"schema":{"examples":["example.com"],"maxLength":1024,"minLength":1,"title":"Domain","type":"string"}},{"$ref":"#/components/parameters/PaymentSignature"}],"responses":{"200":{"content":{"application/json":{"example":{"checked_at":"2026-10-24T12:00:00Z","data":{"domain":"example.com","mx_hosts":["mx1.example.com","mx2.example.com"],"policy":{"max_age":604800,"mode":"enforce","mx":["*.example.com"],"version":"STSv1"},"policy_fetched":true,"policy_id":"20261024T120000","record":"v=STSv1; id=20261024T120000","tlsrpt_record":"v=TLSRPTv1; rua=mailto:tlsrpt@example.com","tlsrpt_rua":["mailto:tlsrpt@example.com"],"uncovered_mx":[]},"endpoint":"mail.mta_sts","findings":[],"meta":{"cache_hit":false,"duration_ms":42,"fresh_until":"2026-10-24T12:05:00Z","observed_at":"2026-10-24T12:00:00Z","resolver":"example","source":"dns"},"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","schema_version":"1.0","status":"ok"},"schema":{"$ref":"#/components/schemas/CheckResponse_MtaStsData_"}}},"description":"The check result. A result with negative findings is still delivered.","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-Request-ID":{"$ref":"#/components/headers/RequestId"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"bad_request: The request is malformed. Nothing is charged."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}},"description":"Payment required: the exact price and how to pay (x402 v2).","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payment_in_progress, payment_bound_to_other_request: This payment is already being processed, or it is bound to a different request. No new payment is taken. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"invalid_input: The input failed validation on a request that carries a payment; nothing is charged. Without a payment, invalid input gets a 402 whose error field names the problem. Nothing is charged."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"rate_limited: Too many requests from this IP address or payer. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"check_failed: The check could not be completed. Nothing is charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"busy, unavailable, payments_unavailable: The service is busy or temporarily unavailable. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"deadline_exceeded: The check ran out of time. Nothing is charged."}},"summary":"MTA-STS and TLS-RPT check","tags":["mail"],"x-data-class":"public","x-deadline-ms":10000,"x-finding-codes":["CHECK_QUERY_BUDGET_EXCEEDED","DNS_RESOLVER_FAILURE","DNS_RESOLVER_TIMEOUT","MTASTS_INVALID_POLICY","MTASTS_INVALID_RECORD","MTASTS_LOW_MAX_AGE","MTASTS_MODE_NONE","MTASTS_MODE_TESTING","MTASTS_MULTIPLE_RECORDS","MTASTS_MX_NOT_COVERED","MTASTS_MX_NOT_COVERED_TESTING","MTASTS_NOT_FOUND","MTASTS_POLICY_UNAVAILABLE","TLSRPT_INVALID","TLSRPT_NOT_FOUND"],"x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","scheme":"exact"},"x-payment-info":{"price":{"amount":"0.02","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-price":{"display":{"single":"0.02"},"rule":{"amount":20000,"kind":"fixed"}}}},"/v1/mail/mx":{"get":{"description":"Resolves MX records, orders them by preference, and detects null MX (RFC 7505) and MX targets that do not resolve.","operationId":"mail.mx","parameters":[{"example":"example.com","in":"query","name":"domain","required":true,"schema":{"examples":["example.com"],"maxLength":1024,"minLength":1,"title":"Domain","type":"string"}},{"$ref":"#/components/parameters/PaymentSignature"}],"responses":{"200":{"content":{"application/json":{"example":{"checked_at":"2026-10-24T12:00:00Z","data":{"domain":"example.com","hosts":[{"addresses":["192.0.2.25"],"exchange":"mx1.example.com","preference":10,"resolved":true},{"addresses":["192.0.2.26"],"exchange":"mx2.example.com","preference":20,"resolved":true}],"implicit_mx":false,"null_mx":false},"endpoint":"mail.mx","findings":[],"meta":{"cache_hit":false,"duration_ms":42,"fresh_until":"2026-10-24T12:05:00Z","observed_at":"2026-10-24T12:00:00Z","resolver":"example","source":"dns"},"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","schema_version":"1.0","status":"ok"},"schema":{"$ref":"#/components/schemas/CheckResponse_MxData_"}}},"description":"The check result. A result with negative findings is still delivered.","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-Request-ID":{"$ref":"#/components/headers/RequestId"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"bad_request: The request is malformed. Nothing is charged."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}},"description":"Payment required: the exact price and how to pay (x402 v2).","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payment_in_progress, payment_bound_to_other_request: This payment is already being processed, or it is bound to a different request. No new payment is taken. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"invalid_input: The input failed validation on a request that carries a payment; nothing is charged. Without a payment, invalid input gets a 402 whose error field names the problem. Nothing is charged."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"rate_limited: Too many requests from this IP address or payer. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"check_failed: The check could not be completed. Nothing is charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"busy, unavailable, payments_unavailable: The service is busy or temporarily unavailable. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"deadline_exceeded: The check ran out of time. Nothing is charged."}},"summary":"MX lookup","tags":["mail"],"x-data-class":"public","x-deadline-ms":10000,"x-finding-codes":["CHECK_QUERY_BUDGET_EXCEEDED","DNS_DOMAIN_NOT_FOUND","DNS_RESOLVER_FAILURE","DNS_RESOLVER_TIMEOUT","MX_NOT_FOUND","MX_NULL","MX_NULL_WITH_OTHERS","MX_TARGET_IS_IP","MX_TARGET_UNRESOLVABLE"],"x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","scheme":"exact"},"x-payment-info":{"price":{"amount":"0.01","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-price":{"display":{"single":"0.01"},"rule":{"amount":10000,"kind":"fixed"}}}},"/v1/mail/provider":{"get":{"description":"Matches the MX hosts and the domains in the SPF include tree against a fixed, versioned list of about 30 providers. Each match says whether it came from MX, SPF or both; the provider behind the MX host with the lowest preference is the primary one.","operationId":"mail.provider","parameters":[{"example":"example.com","in":"query","name":"domain","required":true,"schema":{"examples":["example.com"],"maxLength":1024,"minLength":1,"title":"Domain","type":"string"}},{"$ref":"#/components/parameters/PaymentSignature"}],"responses":{"200":{"content":{"application/json":{"example":{"checked_at":"2026-10-24T12:00:00Z","data":{"domain":"example.com","list_version":"2026-10-26","primary":null,"providers":[]},"endpoint":"mail.provider","findings":[{"code":"MAIL_PROVIDER_UNKNOWN","evidence":{"count":1,"items":[{"domain":"example.com"}]},"explanation":"The domain receives mail, but none of its MX host names matches a provider on Lookproof's fixed list. The domain may run its own mail servers or use a provider that is not on the list.","message":"The MX hosts match no provider on the list.","recommendation":null,"severity":"info"}],"meta":{"cache_hit":false,"duration_ms":42,"fresh_until":"2026-10-24T12:05:00Z","observed_at":"2026-10-24T12:00:00Z","resolver":"example","source":"dns"},"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","schema_version":"1.0","status":"info"},"schema":{"$ref":"#/components/schemas/CheckResponse_MailProviderData_"}}},"description":"The check result. A result with negative findings is still delivered.","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-Request-ID":{"$ref":"#/components/headers/RequestId"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"bad_request: The request is malformed. Nothing is charged."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}},"description":"Payment required: the exact price and how to pay (x402 v2).","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payment_in_progress, payment_bound_to_other_request: This payment is already being processed, or it is bound to a different request. No new payment is taken. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"invalid_input: The input failed validation on a request that carries a payment; nothing is charged. Without a payment, invalid input gets a 402 whose error field names the problem. Nothing is charged."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"rate_limited: Too many requests from this IP address or payer. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"check_failed: The check could not be completed. Nothing is charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"busy, unavailable, payments_unavailable: The service is busy or temporarily unavailable. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"deadline_exceeded: The check ran out of time. Nothing is charged."}},"summary":"Mail provider detection","tags":["mail"],"x-data-class":"public","x-deadline-ms":10000,"x-finding-codes":["CHECK_QUERY_BUDGET_EXCEEDED","DNS_DOMAIN_NOT_FOUND","DNS_RESOLVER_FAILURE","DNS_RESOLVER_TIMEOUT","MAIL_NO_MX","MAIL_PROVIDER_MIXED","MAIL_PROVIDER_UNKNOWN"],"x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","scheme":"exact"},"x-payment-info":{"price":{"amount":"0.005","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-price":{"display":{"single":"0.005"},"rule":{"amount":5000,"kind":"fixed"}}}},"/v1/mail/ptr":{"get":{"description":"Looks up up to five MX hosts, their IPv4 and IPv6 addresses (at most ten), the PTR record of each address and whether a PTR name resolves back to the same address.","operationId":"mail.ptr","parameters":[{"example":"example.com","in":"query","name":"domain","required":true,"schema":{"examples":["example.com"],"maxLength":1024,"minLength":1,"title":"Domain","type":"string"}},{"$ref":"#/components/parameters/PaymentSignature"}],"responses":{"200":{"content":{"application/json":{"example":{"checked_at":"2026-10-24T12:00:00Z","data":{"addresses":[{"address":"192.0.2.25","forward_confirmed":true,"host":"mx1.example.com","ptr_names":["mx1.example.com"]},{"address":"192.0.2.26","forward_confirmed":true,"host":"mx2.example.com","ptr_names":["mx2.example.com"]}],"domain":"example.com"},"endpoint":"mail.ptr","findings":[],"meta":{"cache_hit":false,"duration_ms":42,"fresh_until":"2026-10-24T12:05:00Z","observed_at":"2026-10-24T12:00:00Z","resolver":"example","source":"dns"},"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","schema_version":"1.0","status":"ok"},"schema":{"$ref":"#/components/schemas/CheckResponse_PtrData_"}}},"description":"The check result. A result with negative findings is still delivered.","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-Request-ID":{"$ref":"#/components/headers/RequestId"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"bad_request: The request is malformed. Nothing is charged."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}},"description":"Payment required: the exact price and how to pay (x402 v2).","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payment_in_progress, payment_bound_to_other_request: This payment is already being processed, or it is bound to a different request. No new payment is taken. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"invalid_input: The input failed validation on a request that carries a payment; nothing is charged. Without a payment, invalid input gets a 402 whose error field names the problem. Nothing is charged."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"rate_limited: Too many requests from this IP address or payer. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"check_failed: The check could not be completed. Nothing is charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"busy, unavailable, payments_unavailable: The service is busy or temporarily unavailable. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"deadline_exceeded: The check ran out of time. Nothing is charged."}},"summary":"Reverse DNS check for mail servers","tags":["mail"],"x-data-class":"public","x-deadline-ms":10000,"x-finding-codes":["CHECK_QUERY_BUDGET_EXCEEDED","DNS_DOMAIN_NOT_FOUND","DNS_RESOLVER_FAILURE","DNS_RESOLVER_TIMEOUT","PTR_MISSING","PTR_MULTIPLE_RECORDS","PTR_NOT_FORWARD_CONFIRMED","PTR_NO_MAIL_HOSTS"],"x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","scheme":"exact"},"x-payment-info":{"price":{"amount":"0.01","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-price":{"display":{"single":"0.01"},"rule":{"amount":10000,"kind":"fixed"}}}},"/v1/mail/spf":{"get":{"description":"Fetches the SPF record, follows include and redirect chains, detects loops and multiple records, and counts DNS-querying mechanisms against the RFC 7208 limit of ten.","operationId":"mail.spf","parameters":[{"example":"example.com","in":"query","name":"domain","required":true,"schema":{"examples":["example.com"],"maxLength":1024,"minLength":1,"title":"Domain","type":"string"}},{"$ref":"#/components/parameters/PaymentSignature"}],"responses":{"200":{"content":{"application/json":{"example":{"checked_at":"2026-10-24T12:00:00Z","data":{"all_qualifier":"-","dns_lookup_count":1,"domain":"example.com","lookup_count_complete":true,"record":"v=spf1 ip4:192.0.2.0/24 include:_spf.example.net -all","tree":{"children":[{"children":[],"domain":"_spf.example.net","error":null,"record":"v=spf1 ip4:198.51.100.0/24 -all","terms":[{"kind":"mechanism","name":"ip4","qualifier":null,"raw":"ip4:198.51.100.0/24","value":"198.51.100.0/24"},{"kind":"mechanism","name":"all","qualifier":"-","raw":"-all","value":null}],"via":"include"}],"domain":"example.com","error":null,"record":"v=spf1 ip4:192.0.2.0/24 include:_spf.example.net -all","terms":[{"kind":"mechanism","name":"ip4","qualifier":null,"raw":"ip4:192.0.2.0/24","value":"192.0.2.0/24"},{"kind":"mechanism","name":"include","qualifier":null,"raw":"include:_spf.example.net","value":"_spf.example.net"},{"kind":"mechanism","name":"all","qualifier":"-","raw":"-all","value":null}],"via":"root"},"void_lookup_count":0},"endpoint":"mail.spf","findings":[],"meta":{"cache_hit":false,"duration_ms":42,"fresh_until":"2026-10-24T12:05:00Z","observed_at":"2026-10-24T12:00:00Z","resolver":"example","source":"dns"},"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","schema_version":"1.0","status":"ok"},"schema":{"$ref":"#/components/schemas/CheckResponse_SpfData_"}}},"description":"The check result. A result with negative findings is still delivered.","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-Request-ID":{"$ref":"#/components/headers/RequestId"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"bad_request: The request is malformed. Nothing is charged."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}},"description":"Payment required: the exact price and how to pay (x402 v2).","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payment_in_progress, payment_bound_to_other_request: This payment is already being processed, or it is bound to a different request. No new payment is taken. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"invalid_input: The input failed validation on a request that carries a payment; nothing is charged. Without a payment, invalid input gets a 402 whose error field names the problem. Nothing is charged."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"rate_limited: Too many requests from this IP address or payer. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"check_failed: The check could not be completed. Nothing is charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"busy, unavailable, payments_unavailable: The service is busy or temporarily unavailable. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"deadline_exceeded: The check ran out of time. Nothing is charged."}},"summary":"SPF check","tags":["mail"],"x-data-class":"public","x-deadline-ms":10000,"x-finding-codes":["CHECK_QUERY_BUDGET_EXCEEDED","DNS_DOMAIN_NOT_FOUND","DNS_RESOLVER_FAILURE","DNS_RESOLVER_TIMEOUT","SPF_INCLUDE_LOOP","SPF_INCLUDE_NOT_FOUND","SPF_MACRO_NOT_EVALUATED","SPF_MULTIPLE_RECORDS","SPF_NEUTRAL_ALL","SPF_NOT_FOUND","SPF_NO_ALL","SPF_PASS_ALL","SPF_PTR_MECHANISM","SPF_SOFTFAIL_ALL","SPF_SYNTAX_ERROR","SPF_TOO_MANY_LOOKUPS","SPF_TOO_MANY_VOID_LOOKUPS"],"x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","scheme":"exact"},"x-payment-info":{"price":{"amount":"0.01","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-price":{"display":{"single":"0.01"},"rule":{"amount":10000,"kind":"fixed"}}}},"/v1/site/health":{"get":{"description":"Runs the TLS certificate check, the security headers check and the RDAP lookup in parallel and returns one section per check. A section that fails is marked and the status becomes unknown. There is no score.","operationId":"site.health","parameters":[{"example":"example.com","in":"query","name":"domain","required":true,"schema":{"examples":["example.com"],"maxLength":1024,"minLength":1,"title":"Domain","type":"string"}},{"$ref":"#/components/parameters/PaymentSignature"}],"responses":{"200":{"content":{"application/json":{"example":{"checked_at":"2026-10-24T12:00:00Z","data":{"domain":"example.com","http":{"domain":"example.com","from_http":{"error":null,"final_status":200,"final_url":"https://example.com/","hops":[{"location":"https://example.com/","status":301,"url":"http://example.com/"},{"location":null,"status":200,"url":"https://example.com/"}],"start_url":"http://example.com/"},"from_https":{"error":null,"final_status":200,"final_url":"https://example.com/","hops":[{"location":null,"status":200,"url":"https://example.com/"}],"start_url":"https://example.com/"},"headers":{"content_security_policy":"default-src 'self'; frame-ancestors 'none'","content_security_policy_report_only":null,"cookies":[{"http_only":true,"name":"session","same_site":"lax","secure":true}],"cross_origin_opener_policy":"same-origin","permissions_policy":"camera=(), microphone=()","referrer_policy":"strict-origin-when-cross-origin","strict_transport_security":{"include_subdomains":true,"max_age":63072000,"preload":true,"raw":"max-age=63072000; includeSubDomains; preload","valid":true},"x_content_type_options":"nosniff","x_frame_options":null}},"rdap":{"created":"1995-08-14T04:00:00Z","days_to_expiry":292,"delegation_signed":true,"domain":"example.com","expires":"2027-08-13T04:00:00Z","last_changed":"2026-08-14T07:01:39Z","ldh_name":"example.com","nameservers":["a.iana-servers.net","b.iana-servers.net"],"rdap_server":"rdap.verisign.com","registered":true,"registrar":"RESERVED-Internet Assigned Numbers Authority","registrar_iana_id":376,"statuses":["client delete prohibited","client transfer prohibited","client update prohibited"]},"tls":{"address_family":"ipv4","chain":[{"issuer":"CN=Example Issuing CA","subject":"CN=example.com"},{"issuer":"CN=Example Issuing CA","subject":"CN=Example Issuing CA"}],"cipher":"TLS_AES_256_GCM_SHA384","days_remaining":36,"domain":"example.com","hostname_match":true,"issuer":"CN=Example Issuing CA","key_bits":256,"key_type":"ec","not_after":"2026-11-30T00:00:00Z","not_before":"2026-09-01T00:00:00Z","san":["example.com","www.example.com"],"serial_number":"5ec0de","signature_algorithm":"ecdsa-with-SHA256","subject_cn":"example.com","tls_version":"TLSv1.3","trusted":true,"untrusted_reason":null}},"endpoint":"site.health","findings":[],"meta":{"cache_hit":false,"duration_ms":42,"fresh_until":"2026-10-24T12:05:00Z","observed_at":"2026-10-24T12:00:00Z","resolver":null,"source":"dns"},"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","schema_version":"1.0","status":"ok"},"schema":{"$ref":"#/components/schemas/CheckResponse_SiteHealthData_"}}},"description":"The check result. A result with negative findings is still delivered.","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-Request-ID":{"$ref":"#/components/headers/RequestId"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"bad_request: The request is malformed. Nothing is charged."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}},"description":"Payment required: the exact price and how to pay (x402 v2).","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payment_in_progress, payment_bound_to_other_request: This payment is already being processed, or it is bound to a different request. No new payment is taken. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"invalid_input: The input failed validation on a request that carries a payment; nothing is charged. Without a payment, invalid input gets a 402 whose error field names the problem. Nothing is charged."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"rate_limited: Too many requests from this IP address or payer. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"check_failed: The check could not be completed. Nothing is charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"busy, unavailable, payments_unavailable: The service is busy or temporarily unavailable. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"deadline_exceeded: The check ran out of time. Nothing is charged."}},"summary":"Site health check","tags":["site"],"x-data-class":"public","x-deadline-ms":15000,"x-finding-codes":["COOKIE_NOT_SECURE","CSP_MISSING","CSP_UNSAFE_INLINE","DNS_RESOLVER_FAILURE","DNS_RESOLVER_TIMEOUT","DOMAIN_EXPIRED","DOMAIN_EXPIRING_SOON","DOMAIN_NOT_REGISTERED","DOMAIN_ON_HOLD","DOMAIN_PENDING_DELETE","DOMAIN_TRANSFER_UNLOCKED","FRAME_PROTECTION_MISSING","HSTS_MISSING","HSTS_NOT_PRELOAD_READY","HSTS_SHORT_MAX_AGE","HTTPS_UNAVAILABLE","HTTP_NO_HTTPS_REDIRECT","HTTP_UNAVAILABLE","RDAP_UNAVAILABLE","REDIRECT_LIMIT","REDIRECT_OFFSITE","REFERRER_POLICY_MISSING","TLS_CERT_EXPIRED","TLS_CERT_EXPIRING","TLS_CERT_EXPIRING_SOON","TLS_HOSTNAME_MISMATCH","TLS_UNAVAILABLE","TLS_UNTRUSTED","TLS_WEAK_KEY","TLS_WEAK_SIGNATURE","XCTO_MISSING"],"x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","scheme":"exact"},"x-payment-info":{"price":{"amount":"0.025","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-price":{"display":{"single":"0.025"},"rule":{"amount":25000,"kind":"fixed"}}}},"/v1/tls/certificate":{"get":{"description":"Connects to the domain on port 443 with SNI, verifies the certificate against the system's trusted roots and the host name (RFC 9525), and reports dates, names, issuer, chain, key and signature algorithm and the negotiated TLS version. No HTTP is sent.","operationId":"tls.certificate","parameters":[{"example":"example.com","in":"query","name":"domain","required":true,"schema":{"examples":["example.com"],"maxLength":1024,"minLength":1,"title":"Domain","type":"string"}},{"$ref":"#/components/parameters/PaymentSignature"}],"responses":{"200":{"content":{"application/json":{"example":{"checked_at":"2026-10-24T12:00:00Z","data":{"address_family":"ipv4","chain":[{"issuer":"CN=Example Issuing CA","subject":"CN=example.com"},{"issuer":"CN=Example Issuing CA","subject":"CN=Example Issuing CA"}],"cipher":"TLS_AES_256_GCM_SHA384","days_remaining":36,"domain":"example.com","hostname_match":true,"issuer":"CN=Example Issuing CA","key_bits":256,"key_type":"ec","not_after":"2026-11-30T00:00:00Z","not_before":"2026-09-01T00:00:00Z","san":["example.com","www.example.com"],"serial_number":"5ec0de","signature_algorithm":"ecdsa-with-SHA256","subject_cn":"example.com","tls_version":"TLSv1.3","trusted":true,"untrusted_reason":null},"endpoint":"tls.certificate","findings":[],"meta":{"cache_hit":false,"duration_ms":42,"fresh_until":"2026-10-24T12:05:00Z","observed_at":"2026-10-24T12:00:00Z","resolver":null,"source":"dns"},"request_id":"req_aaaaaaaaaaaaaaaaaaaaaaaaaa","schema_version":"1.0","status":"ok"},"schema":{"$ref":"#/components/schemas/CheckResponse_TlsCertificateData_"}}},"description":"The check result. A result with negative findings is still delivered.","headers":{"PAYMENT-RESPONSE":{"$ref":"#/components/headers/PaymentResponse"},"X-Request-ID":{"$ref":"#/components/headers/RequestId"}}},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"bad_request: The request is malformed. Nothing is charged."},"402":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/X402PaymentRequired"}}},"description":"Payment required: the exact price and how to pay (x402 v2).","headers":{"PAYMENT-REQUIRED":{"$ref":"#/components/headers/PaymentRequired"}}},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"payment_in_progress, payment_bound_to_other_request: This payment is already being processed, or it is bound to a different request. No new payment is taken. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"invalid_input: The input failed validation on a request that carries a payment; nothing is charged. Without a payment, invalid input gets a 402 whose error field names the problem. Nothing is charged."},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"rate_limited: Too many requests from this IP address or payer. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"check_failed: The check could not be completed. Nothing is charged."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"busy, unavailable, payments_unavailable: The service is busy or temporarily unavailable. Nothing is charged.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}},"504":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorBody"}}},"description":"deadline_exceeded: The check ran out of time. Nothing is charged."}},"summary":"TLS certificate check","tags":["tls"],"x-data-class":"public","x-deadline-ms":10000,"x-finding-codes":["TLS_CERT_EXPIRED","TLS_CERT_EXPIRING","TLS_CERT_EXPIRING_SOON","TLS_HOSTNAME_MISMATCH","TLS_UNAVAILABLE","TLS_UNTRUSTED","TLS_WEAK_KEY","TLS_WEAK_SIGNATURE"],"x-payment":{"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","network":"eip155:8453","scheme":"exact"},"x-payment-info":{"price":{"amount":"0.01","currency":"USD","mode":"fixed"},"protocols":[{"x402":{}}]},"x-price":{"display":{"single":"0.01"},"rule":{"amount":10000,"kind":"fixed"}}}}},"servers":[{"url":"https://api.lookproof.dev"}],"tags":[{"name":"dns"},{"name":"domain"},{"name":"http"},{"name":"mail"},{"name":"site"},{"name":"tls"}]}