# SPF Record Parser

> SPF Record Parser is a paid API for AI agents from emailauth.openverbs.com, paid per call via x402, $0.004/call, status unknown (last checked 2026-09-13).

Parses an SPF TXT record string into its constituent qualified mechanisms and modifiers

## Facts

- Endpoint: POST https://emailauth.openverbs.com/v1/spf-parse
- Price: $0.004/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/spf-record-parser-d013b5d3
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_rrIee4TKeXIf6o6-pPzKd

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability spf-record-parser-d013b5d3 -d '<json body>'
```

Example prompt: Can you parse this SPF record for me and break down all its mechanisms and modifiers: 'v=spf1 ip4:192.0.2.0/24 include:_spf.google.com ~all'?

## When to prefer this

Use this endpoint when you need to programmatically decompose an SPF TXT record string into structured, queryable mechanisms and modifiers — for example, auditing which IPs or senders are authorized, validating a record before publishing, or diffing two records. Prefer this over the sibling SPF-evaluate endpoint when you want structural analysis of the record itself rather than testing a specific IP against it.

## Known failure modes

- 400 if the record string does not begin with 'v=spf1'
- 400 if the record contains unknown or unsupported mechanisms
- 400 if the record field is missing or empty
- Malformed IP ranges or include targets may cause parsing errors

## How this service works

Parse an SPF TXT record ("v=spf1 …") into its qualified mechanisms and modifiers. Records that do not start with v=spf1 or use unknown mechanisms are clean 400s.

## Output

A structured breakdown of the SPF record's qualified mechanisms (ip4, ip6, include, a, mx, all, etc.) and modifiers (redirect, exp), each with its qualifier (pass, fail, softfail, neutral) and associated values. Returns a 400 error for records that don't start with v=spf1 or contain unrecognized mechanisms.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object",
     "required": [
      "record"
     ],
     "properties": {
      "record": {
       "type": "string",
       "description": "SPF TXT record, e.g. \"v=spf1 ip4:192.0.2.0/24 include:_spf.example.com ~all\"."
      }
     },
     "additionalProperties": false
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/spf-record-parser-d013b5d3/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from emailauth.openverbs.com](https://www.zero.xyz/host/emailauth.openverbs.com/llms.txt)
