New The MCP server is live: all 45 APIs in Claude, Cursor or any MCP client. Connect your agent

Parse and look up DMARC policies

DMARC Parser API

The DMARC Parser API turns a DMARC record into structured JSON and tells you what is wrong with it. Send a domain and the API looks up its _dmarc TXT record in live DNS first, or send the record text to check it before it goes live.

Built for email security teams, deliverability tools and agencies that need to see, at scale, which domains enforce DMARC, where their reports go, and which records carry mistakes that receivers will ignore.

Free tier included, no credit card required. One key works across every API.

At a glance

DMARC Parser API

5 credits / call
Free calls / month
200
Endpoints
2
Tags checked
10
Record limit
8,192 chars
Get your free API key

200 free calls on the free plan

Key features

  • Domain lookup: finds the v=DMARC1 TXT record at _dmarc.{domain} in live DNS and parses it
  • Record parsing: send the record as JSON, plain text or a form field to check it before publishing
  • Every tag returned: p, sp, adkim, aspf, pct, rua, ruf, fo, ri and any other tag, exactly as published
  • Validation: policies, alignment modes, pct and ri ranges and fo options are checked, with one message per problem
  • Report address checks: each rua and ruf entry must be a mailto: address or an http(s) URL
  • Clear outcomes: success is true only for a valid record; a missing record is reported, not an error

Built for

  • DMARC enforcement audits across many domains
  • Pre-publish checks in DNS management tools
  • Email deliverability and security dashboards
  • Onboarding checks for email-sending platforms
  • Agency monitoring of client domains
  • Phishing and spoofing exposure reviews
  • Vendor and supplier security assessments
  • Compliance evidence for sender requirements

MCP · for your agent

Hand the DMARC Parser API to your agent

Connect Claude, Cursor or any MCP client once, then ask in plain words. Your agent finds this API, reads its docs and makes the call: 5 credits per call, the same as REST, from your team's balance.

Check a domain's DMARC policy

“Is DMARC enforced on example.com yet? Tell me the policy, the alignment modes and where aggregate reports go.”

list_apis · get_api_docsfree

api_request POST /dmarc-parser/v1/domain 5 cr

The published record's tags (p, sp, adkim, aspf, pct, rua) parsed, with any validation errors.

Validate a record before publishing

“Here's the DMARC record I'm about to publish for billing.example.com. Is it valid, and what will it enforce?”

list_apis · get_api_docsfree

api_request POST /dmarc-parser/v1/text 5 cr

Each tag parsed and checked, with mistakes like a bad pct or rua URI flagged before it goes live.

Audit DMARC across client domains

“We manage 8 client domains. Look up each one's DMARC record and list the ones still on p=none.”

list_apis · get_api_docsfree

api_request POST /dmarc-parser/v1/domain 5 cr

Each domain's DMARC policy side by side, with the ones on p=none or with no record flagged.

$ claude mcp add --transport http apicodex https://mcp.apicodex.io

Illustrative asks; the calls and prices are real. Claude, Cursor, VS Code and Windsurf setup: mcp.apicodex.io

Try it

Build the request for your data

Edit the parameters below and see the exact request and curl command you'd send. No key required to preview.

POST /dmarc-parser/v1/domain
Open in Playground
Request · HTTP
POST /dmarc-parser/v1/domain HTTP/1.1
Host: api.apicodex.io
Content-Type: application/json
X-Api-Key: YOUR_API_KEY

{
  "domain": "example.com"
}
Response · JSON 200 OK
{
  "success": true,
  "parsed_at": "2026-10-11T09:14:22.381Z",
  "dmarc_record": "v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s; rua=mailto:[email protected]",
  "parsed_tags": {
    "v": "DMARC1",
    "p": "reject",
    "sp": "reject",
    "adkim": "s",
    "aspf": "s",
    "rua": "mailto:[email protected]"
  },
  "validation_errors": [],
  "domain": "example.com",
  "dmarc_domain": "_dmarc.example.com",
  "dns_lookup": true
}

Documentation

DMARC Parser API Documentation

The DMARC Parser API has two endpoints: POST /v1/domain looks up and parses a domain's published DMARC record, and POST /v1/text parses a record you send. Both return the record, its tags and a list of validation errors; success is true only when the record is valid.

Base URL

url
https://api.apicodex.io/dmarc-parser

Authentication

Authenticate every request with your API key: send it in an X-Api-Key header, or pass it as an ?apikey= query parameter.

headers
{
"X-Api-Key": "YOUR_API_KEY"
}

Request and response

Illustrative values. Confirm current endpoint behavior, quotas, and data freshness in the API documentation before production use.

request · http
POST /dmarc-parser/v1/domain HTTP/1.1
Host: api.apicodex.io
Content-Type: application/json
X-Api-Key: YOUR_API_KEY

{
  "domain": "example.com"
}
response · json
{
  "success": true,
  "parsed_at": "2026-10-11T09:14:22.381Z",
  "dmarc_record": "v=DMARC1; p=reject; sp=reject; adkim=s; aspf=s; rua=mailto:[email protected]",
  "parsed_tags": {
    "v": "DMARC1",
    "p": "reject",
    "sp": "reject",
    "adkim": "s",
    "aspf": "s",
    "rua": "mailto:[email protected]"
  },
  "validation_errors": [],
  "domain": "example.com",
  "dmarc_domain": "_dmarc.example.com",
  "dns_lookup": true
}

Code examples

cURL
# Look up and parse a domain's DMARC record
curl --request POST \
  --url 'https://api.apicodex.io/dmarc-parser/v1/domain' \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{"domain": "example.com"}'

# Validate a record before you publish it
curl --request POST \
  --url 'https://api.apicodex.io/dmarc-parser/v1/text' \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{"dmarc_record": "v=DMARC1; p=quarantine; pct=25; rua=mailto:[email protected]"}'

Endpoints

POST /v1/domain

Look up the TXT record at _dmarc.{domain} and parse the first one starting with v=DMARC1. JSON body {"domain": "example.com"}. A domain with no DMARC record answers success: false with "No DMARC record found for this domain".

curl -X POST "https://api.apicodex.io/dmarc-parser/v1/domain" -H "X-Api-Key: YOUR_API_KEY" -H "Content-Type: application/json" -d '{"domain": "example.com"}'

POST /v1/text

Parse a record you supply (up to 8,192 characters): JSON {"dmarc_record": "..."} (or "text"), a text/plain body, or a multipart form field. No DNS lookup.

curl -X POST "https://api.apicodex.io/dmarc-parser/v1/text" -H "X-Api-Key: YOUR_API_KEY" -H "Content-Type: text/plain" --data 'v=DMARC1; p=none; rua=mailto:[email protected]'

Response Fields

Required parameters

  • success True only when the record parsed and every tag passed validation.
  • dmarc_record The record that was parsed, trimmed.
  • parsed_tags Each tag mapped to its value as a string, exactly as published (pct is "100", rua is the comma-separated list). Empty when parsing stopped early.
  • validation_errors One message per problem found; empty for a valid record.

Optional parameters

  • domain / dmarc_domain On /v1/domain: the domain you sent and the _dmarc name that was looked up.
  • dns_lookup On /v1/domain: always true.
  • error On /v1/domain when the domain publishes no DMARC record.

Pricing

DMARC Parser API Pricing

This API costs 5 credits per request. Credits are shared across every API on your plan.

Cost estimator

requests per month → cheapest plan that covers it

Estimate your monthly cost

Drag the slider to match your expected request volume. We'll recommend the cheapest plan that covers it.

10,000

Recommended plan

Starter

$29.99 /month

Credits used
Credits included
Cost per 1K requests
Choose Starter

Free

Free
1,000 credits · ~200 requests/mo · 2 rps
  • All APIs included
  • No credit card required
  • Full documentation and examples
  • MCP server for your AI agents
  • Up to 5 active API keys
Start for free

Starter

Popular
$29.99 /month
50,000 credits · ~10,000 requests/mo · 10 rps
  • All APIs included
  • Email support
  • Usage dashboard and analytics
  • MCP server for your AI agents
  • Up to 5 active API keys
Start with Starter

Pro

$99.99 /month
250,000 credits · ~50,000 requests/mo · 25 rps
  • All APIs included
  • Priority support
  • MCP server for your AI agents
  • Up to 5 active API keys
Start with Pro

Need a different plan?

Tell us about your API, volume, or support requirements.

Contact us

FAQ

Frequently asked questions

Ready to integrate DMARC Parser?