DomainRef / Docs

DomainRef docs

One HTTP call grades a domain's public email and web security setup and returns JSON: each check with its grade, finding and exact fix, plus a 0-100 score and a letter. No account and no signup.

Routes

RoutePriceWhat it returns
GET /v1/domain/check?domain={domain}$0.01The full graded report: every check with its grade, finding and fix, the score and the letter.
GET /v1/domain/age?domain={domain}$0.005Registrar, age, expiry and status flags, graded for newly registered domains. Not for registries without RDAP, e.g. .za/.co.za, .me, .de, .io, .eu: refused free (422).
/grade (people, HTML)FreeThe letter, the score and pass, warn, fail or info for each check, without findings or fixes. 3 per visitor per day. Not an API: agents use the paid route.
/sample and /sample.jsonFreeA real full report for 3l-groupconsulting.co.za, our own domain, refreshed daily. Only for that domain.

HEAD on either paid route is a free 402 preview and is never charged.

How to pay

Machine-readable prices and payment details: /.well-known/x402.

Example

Unpaid, the call answers with the price:

$ curl -si "https://domainref.dev/v1/domain/check?domain=example.com"
HTTP/2 402
payment-required: eyJ4NDAyVmVyc2lvbiI6Mi…

Paid, it returns the report. Real output for example.com, trimmed to three of its checks:

{
  "domain": "example.com",
  "score": 100,
  "letter": "A",
  "summary": "example.com scores 100/100 (A): 6 pass, 0 warn, 0 fail, 7 info. Nothing to fix.",
  "checks": [
    { "check": "dmarc", "label": "DMARC", "grade": "pass",
      "finding": "DMARC enforces p=reject on 100% of mail.", "fix": null },
    { "check": "mta_sts", "label": "MTA-STS", "grade": "info",
      "finding": "Not applicable: the domain publishes a null MX, so it takes no mail.", "fix": null },
    { "check": "registration", "label": "Registration (registrar and age)", "grade": "pass",
      "finding": "Registered 1995-08-14 via RESERVED-Internet Assigned Numbers Authority (IANA 376), 11390 days old, expires 2027-08-13.", "fix": null }
  ]
}

The full shape of both responses is in openapi.json, and /sample.json is a complete live report.

MCP

https://domainref.dev/mcp is a streamable HTTP MCP server with two tools, domain_check and domain_age. MCP calls pay with api_key (an Afriref key with card credit from afriref.dev/pricing). Per-call x402 and MPP payment is HTTP only, so a call without a key returns an api_key_required error that names the HTTP endpoint.

{ "mcpServers": { "domainref": { "url": "https://domainref.dev/mcp" } } }

Limits and guardrails

More