{"id":"email-address-list-validate","version":"1.0.0","description":"Check RFC 5322 address-list syntax, including dots, quotes, comments, and groups.","supported_operations":["validate an rfc 5322 address list","is this recipient list syntactically valid","reject consecutive dots in a mailbox domain","check group syntax in a recipient list","find a bad local-part in an address list","rfc 5322 address list syntax check"],"unsupported_operations":["return the mailbox tree","rewrite the address list into canonical form","check that the domain has an MX record"],"semantics":["Dot-atom-text is 1*atext *(\".\" 1*atext) per RFC 5322 section 3.2.3, used by section 3.4.1. U+002E is not atext. A leading dot, a trailing dot, or two dots in a row is rejected in a local-part and in a domain, in both ascii and utf-8 modes. Inside a domain-literal or a quoted-string, a dot is ordinary text.","mode ascii accepts only Unicode scalar values U+0000 through U+007F. mode utf-8 also treats U+0080 through U+10FFFF as atext, qtext, ctext, dtext and VCHAR, which is the RFC 6532 section 3.2 extension. The dot separator stays U+002E only.","Well-typed text that is not a valid address-list returns valid false and a reason. Counts are zero in that case. Wrong types and limit breaches still throw.","Obsolete null list slots and source routes (obs-route) are rejected. Domain-literals are not interpreted as IP addresses. RFC 5321 length limits and the SMTP requirement for a dot in the domain are not applied.","The same text and mode always produce the same verdict. No clock, locale, or network.","Disclaimer: format transform only; provides no confidentiality, integrity, or authenticity."],"limits":{"max_input_bytes":2048,"max_addresses":32,"max_groups":32,"max_comment_depth":8,"max_output_bytes":65536},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["text","mode"],"properties":{"text":{"type":"string","maxLength":2048},"mode":{"type":"string","enum":["ascii","utf-8"]}}},"output_schema":{"type":"object","additionalProperties":false,"required":["valid","reason","address_count","mailbox_count","group_count"],"properties":{"valid":{"type":"boolean"},"reason":{"type":"string","enum":["ok","empty","bad_local_part","bad_domain","invalid_address_list","unbalanced_delimiter","non_ascii"]},"address_count":{"type":"integer","minimum":0,"maximum":32},"mailbox_count":{"type":"integer","minimum":0,"maximum":32},"group_count":{"type":"integer","minimum":0,"maximum":32}}},"examples":[{"input":{"text":"Mary Smith <mary@x.test>, jdoe@example.org, Who? <one@y.test>","mode":"ascii"},"output":{"valid":true,"reason":"ok","address_count":3,"mailbox_count":3,"group_count":0}},{"input":{"text":"a@example..com","mode":"utf-8"},"output":{"valid":false,"reason":"bad_domain","address_count":0,"mailbox_count":0,"group_count":0}}],"execute_url":"/v1/tools/email-address-list-validate/versions/1.0.0/execute"}