Email API · Free, no key

DMARC Record Checker
API

The dmarc record checker API is a free, keyless REST endpoint: send a GET request to https://api.domainee.dev/v1/tools/dmarc-record-checker and you get JSON back. No API key, no signup, no token. CORS is enabled so browser JavaScript can call it directly. Limits are 30 requests per minute and 500 per day, per IP.

Free. No API key. CORS-enabled. Rate-limited per IP.

GEThttps://api.domainee.dev/v1/tools/dmarc-record-checker?domain=domainee.dev

Look up the DMARC record at _dmarc.<domain>, parse the policy (`p`), subdomain policy (`sp`), alignment, reporting addresses (`rua`/`ruf`), and percentage. Flags issues like missing policy or too-permissive settings.

Free. No API key required. CORS-enabled. Rate-limited per IP at 30/min and 500/day.

Parameters

NameInTypeDescription
domainrequiredquerystring
Domain to check DMARC for.
example: domainee.dev

Example request

curl
curl -s "https://api.domainee.dev/v1/tools/dmarc-record-checker?domain=domainee.dev" | jq

Example response

response.json
{
  "ok": true,
  "data": {
    "domain": "domainee.dev",
    "record": "v=DMARC1; p=none;",
    "tags": {
      "v": "DMARC1",
      "p": "none"
    },
    "issues": [
      {
        "level": "warning",
        "message": "Policy is `none` — no enforcement."
      }
    ]
  }
}

Other languages

fetch.js
const res = await fetch("https://api.domainee.dev/v1/tools/dmarc-record-checker?domain=domainee.dev");
const { ok, data } = await res.json();
requests.py
import requests
r = requests.get(
    "https://api.domainee.dev/v1/tools/dmarc-record-checker",
    params={"domain":"domainee.dev"},
)
data = r.json()["data"]

Rate limits & errors

  • 30 requests/minute and 500 requests/day per IP. Exceeding either returns HTTP 429 with a Retry-After header.
  • All responses are JSON with the envelope { "ok": true, "data": {...} } on success or { "ok": false, "error": { "code", "message" } } on failure.
  • code values are stable; safe to switch on programmatically. message is human-friendly and may change.

Why we give this away

Most dmarc record checker APIs put a signup wall and a key in front of a single DNS or HTTP lookup. We would rather you call ours in the time it takes to paste a curl command, because the thing we actually sell is harder than a lookup. Domainee is a custom domains API for SaaS with a native MCP server — 50 domains and 100 GB free. These 16 endpoints are the same code paths our own domain verification runs on, so if they behave well under your test, that is a fair signal.

The tradeoff is honest: the free endpoints are rate-limited per IP and carry no uptime commitment. Anything you put in front of customers should use the authenticated API, or the MCP server if an AI agent is doing the calling.

Prefer a UI?

Try the dmarc record checker in your browser →

No code, no curl. Type a domain, get a result.

Full reference

Documentation for /v1/tools/dmarc-record-checker

All parameters, error codes, edge cases.

Frequently asked questions

Do I need an API key?+

No. The dmarc record checker API takes no key, no token, and no signup. Send a GET request to https://api.domainee.dev/v1/tools/dmarc-record-checker and you get JSON back. There is nothing to register for and no header to set.

Is it really free?+

Yes, and there is no paid tier for these endpoints. They exist so developers evaluating Domainee can call something real before creating an account. We rate-limit per IP instead of charging.

What are the rate limits?+

30 requests per minute and 500 requests per day, per IP address. Going over either one returns HTTP 429 with a Retry-After header telling you how long to wait. If you need more than that, the authenticated Domainee API has no such cap.

Can I call it from browser JavaScript?+

Yes. CORS is enabled on every free endpoint, so fetch() from a browser works without a proxy. That also means you should not treat the limits as a secret, since anyone reading your JS can see the same URL.

What parameters does it take?+

domain is required: Domain to check DMARC for. For example, domain=domainee.dev. The full parameter table, response schema, and error codes are on this page and in the reference docs.

Need more than free?

Domainee's full platform: Custom Domains API, MCP for AI agents, Buy-a-Domain API, and 50 customer domains free forever. The same engineering team that built these free APIs.