changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "properties": {
+ "analysis": {
+ "description": "Full parsed analysis. Absent when success is false (error string returned instead).",
+ "properties": {
+ "attachments": {
+ "properties": {
+ "boundary": {
+ "description": "MIME multipart boundary, or null.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "content_type": {
+ "description": "Raw Content-Type value, or null.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "has_attachments": {
+ "description": "True when Content-Type is multipart.",
+ "type": "boolean"
+ },
+ "parts": {
+ "description": "Reserved; currently always empty.",
+ "items": {
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "authentication": {
+ "description": "SPF/DKIM/DMARC results extracted from Authentication-Results header(s).",
+ "properties": {
+ "authentication_results": {
+ "description": "All parsed Authentication-Results entries (each with raw plus any spf/dkim/dmarc).",
+ "items": {
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "dkim": {
+ "description": "DKIM result object {result, details} or null.",
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "dmarc": {
+ "description": "DMARC result object {result, details} or null.",
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "issues": {
+ "description": "Warnings for any auth method whose result is not pass ({type, message}).",
+ "items": {
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "spf": {
+ "description": "SPF result object {result, details} or null if not present.",
+ "type": [
+ "object",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "basic_info": {
+ "description": "From/To/Subject/Date/Message-ID plus, when parseable, sender_name, sender_email, parsed_date (UTC) and unix timestamp. Missing fields are the string \"Not found\".",
+ "type": "object"
+ },
+ "headers": {
+ "additionalProperties": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "description": "Parsed header map: lowercase header name to array of string values (a header may appear more than once).",
+ "type": "object"
+ },
+ "routing": {
+ "description": "Delivery path from Received headers.",
+ "properties": {
+ "delivery_time": {
+ "description": "Seconds between first and last hop timestamp, or null if not computable.",
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "delivery_time_formatted": {
+ "description": "Human-readable delivery duration (present only when delivery_time is set).",
+ "type": "string"
+ },
+ "path": {
+ "description": "Each Received hop parsed into from/by/with/id/for/timestamp/formatted_date/raw (each null when absent).",
+ "items": {
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "received_headers": {
+ "description": "Raw Received header strings, reversed into chronological (oldest-first) order.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "total_hops": {
+ "description": "Count of Received headers found.",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "security": {
+ "description": "Transport security extracted from Received headers.",
+ "properties": {
+ "cipher_suite": {
+ "description": "Cipher from a (cipher=...) token, or null.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "recommendations": {
+ "description": "Security recommendations (may be empty).",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "security_issues": {
+ "description": "Warnings, e.g. missing Authentication-Results header.",
+ "items": {
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "tls_version": {
+ "description": "TLS version from a (version=...) token, or null.",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "spam_indicators": {
+ "properties": {
+ "indicators": {
+ "description": "Heuristic flags ({type, message}), e.g. From/Reply-To mismatch or bulk-mail markers.",
+ "items": {
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "risk_level": {
+ "description": "Spam risk derived from the score.",
+ "enum": [
+ "low",
+ "medium",
+ "high"
+ ],
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric value parsed from X-Spam-Score (0 if absent/unparseable).",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "summary": {
+ "properties": {
+ "authentication_status": {
+ "description": "Overall auth grade from pass ratio.",
+ "enum": [
+ "unknown",
+ "poor",
+ "moderate",
+ "good",
+ "excellent"
+ ],
+ "type": "string"
+ },
+ "recommendations": {
+ "description": "Top-level recommendations (may be empty).",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "routing_hops": {
+ "description": "Number of Received hops.",
+ "type": "integer"
+ },
+ "security_level": {
+ "description": "Overall security level (unknown by default).",
+ "type": "string"
+ },
+ "total_headers": {
+ "description": "Total header values parsed.",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "error": {
+ "description": "Error message; present only when success is false (blank input or parser failure).",
+ "type": "string"
+ },
+ "success": {
+ "description": "Whether the headers were parsed successfully.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+}