Email authentication posture check
Email authentication posture check: parses SPF, DMARC and DKIM plus MX for any domain and grades deliverability/anti-spoofing gaps (SPF +all, SPF >10 lookups, DMARC p=none, missing DKIM). Clean JSON for deliverability and security-ops automation.
Answeringour last check, 2026-09-24
1 of 1checks answered this week
606 msmedian answer time
$0.01listed price per call
$0.01price it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
GET https://email-auth.use.x402atlas.com/check
| Category | Everything else |
|---|---|
| Provider host | email-auth.use.x402atlas.com |
| Networks | eip155:137, eip155:42161, eip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp |
| Payment schemes | exact |
| Self-reported calls, 30 days | 23 from 10 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-09-24 | valid payment request | 402 | $0.01 | 606 ms |
Example input (from the provider)
{
"method": "GET",
"queryParams": {
"domain": "example.com",
"selector": "google"
},
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"properties": {
"domain": {
"description": "Domain to check \u2014 hostname only, no scheme/IP literal, no trailing dot, no localhost, no local/internal/reserved suffix (.local, .internal, .localdomain, .lan, .test)",
"maxLength": 253,
"pattern": "^[A-Za-z0-9-]{1,63}(\\.[A-Za-z0-9-]{1,63})*$",
"type": "string"
},
"selector": {
"description": "Optional DKIM selector to check authoritatively; if omitted, a common-selector list is probed",
"type": "string"
}
},
"required": [
"domain"
],
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"accepts_mail": {
"description": "true when the domain has at least one MX record",
"type": "boolean"
},
"dkim": {
"properties": {
"checked_selectors": {
"description": "exact selectors probed",
"items": {
"type": "string"
},
"type": "array"
},
"found": {
"items": {
"properties": {
"record": {
"type": "string"
},
"selector": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"dmarc": {
"description": "null when no DMARC record is present",
"properties": {
"adkim": {
"default": "r",
"enum": [
"r",
"s"
],
"type": "string"
},
"aspf": {
"default": "r",
"enum": [
"r",
"s"
],
"type": "string"
},
"pct": {
"default": 100,
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"policy": {
"description": "p= tag; empty when missing/invalid",
"enum": [
"none",
"quarantine",
"reject",
""
],
"type": "string"
},
"record": {
"type": "string"
},
"rua": {
"description": "aggregate report addresses",
"items": {
"type": "string"
},
"type": "array"
},
"ruf": {
"description": "forensic report addresses",
"items": {
"type": "string"
},
"type": "array"
},
"subdomain_policy": {
"description": "sp= tag; empty when absent (inherits policy)",
"type": "string"
}
},
"type": [
"object",
"null"
]
},
"domain": {
"type": "string"
},
"mx": {
"items": {
"properties": {
"host": {
"type": "string"
},
"pref": {
"maximum": 65535,
"minimum": 0,
"type": "integer"
}
},
"type": "object"
},
"type": "array"
},
"queried_at": {
"format": "date-time",
"type": "string"
},
"spf": {
"description": "null when no SPF record is present",
"properties": {
"all_qualifier": {
"description": "qualifier on the all mechanism; empty when absent",
"enum": [
"-all",
"~all",
"?all",
"+all",
""
],
"type": "string"
},
"dns_lookups": {
"description": "count of lookup-causing terms; RFC 7208 limit is 10",
"minimum": 0,
"type": "integer"
},
"mechanisms": {
"items": {
"properties": {
"causes_dns": {
"type": "boolean"
},
"kind": {
"enum": [
"include",
"a",
"mx",
"ip4",
"ip6",
"all",
"exists",
"ptr",
"redirect",
"exp",