Skip to content
Start here

SPF

SPFInspect

Inspect SPF Record
GET/zones/{zone_id}/email/auth/spf/inspect
ModelsExpand Collapse
InspectGetResponse object { components, domain, record, 2 more }

Recursive SPF inspection tree

components: array of unknown

Parsed SPF components (mechanisms)

domain: string

Domain being inspected

record: string

Raw SPF record content

total_lookups: number

Total number of DNS lookups performed across all includes

errors: optional array of object { code, domain, message, details }

All errors encountered during inspection, collected from the entire tree. This includes errors from nested includes at any depth, providing a quick overview of all issues without needing to traverse the nested structure. Each error includes a domain field to identify where it occurred. Empty array if no errors (omitted from JSON when empty).

code: string

Error code. Known values:

  • lookup_failed — DNS TXT lookup failed
  • spf_not_found — no SPF record found
  • invalid_spf — record does not start with v=spf1
  • invalid_domain — PSL validation failed
  • loop_detected — include/redirect cycle detected
  • invalid_mechanism — unrecognised or malformed mechanism
  • resource_limit_exceeded — internal resource protection limits exceeded (recursion depth or query budget)
  • max_lookups — RFC 7208 10-lookup limit exceeded
domain: string

Domain where the error occurred

message: string

Human-readable error message

details: optional string

Additional error-specific details (optional).

  • For invalid_domain errors: the invalid domain string
  • For invalid_mechanism errors: the invalid mechanism text (e.g., “invalidmech123”)
  • For loop_detected errors: the domain that caused the loop
  • For other error types: not present