Free DNS API
Every tool on this site is an HTTP endpoint. No key, no account.
The pages here are thin clients over a public API you can call yourself — from a script, from CI, from a monitoring job. No registration, no API key.
No key required
There is no sign-up and no token. The endpoints reach nothing that belongs to anyone, so there is nothing to authenticate.
Points, not request counts
Each caller gets a points budget per minute. A single lookup costs one; a full report costs more, because it does more.
Queued, not dropped
When the service is busy you are queued rather than refused, and told where you stand. Nothing is charged for a request that did not run.
One command
# One record, no key, no account
curl "https://dremaxx.de/api/v1/dns-tools/lookup?name=example.com&type=MX"
# The full report, including the health score
curl "https://dremaxx.de/api/v1/dns-tools/analyze?domain=example.com" | jq .health
# POST works everywhere GET does
curl -X POST "https://dremaxx.de/api/v1/dns-tools/email-security" \
-H 'content-type: application/json' \
-d '{"domain":"example.com"}'Every endpoint accepts GET and POST alike — GET for the command line, POST for anything with a body.
Endpoints
Base URL /api/dns-tools. Costs are read live from the running service, so this table cannot go stale.
| Endpoint | Parameters | Cost |
|---|---|---|
/capabilities | — | — |
/lookup | name, type, resolver, authoritative, dnssec | — |
/reverse | ip, forwardConfirm | — |
/rdap | domain | — |
/ns-consistency | domain | — |
/propagation | name, type | — |
/encrypted-dns | host, dohPath, name | — |
/dnssec | domain | — |
/trace | name, type | — |
/zone-transfer | domain | — |
/email-security | domain, dkimSelectors | — |
/resolver-speed | name, type | — |
/analyze | domain | — |
Budget and back-pressure
Every response carries the budget, so you can pace yourself before running into a limit rather than after:
RateLimit-Limit: 60
RateLimit-Remaining: 45
RateLimit-Reset: 38
RateLimit-Cost: 15Three statuses are worth handling:
429— your own budget is spent. Wait for the reset given in the response.503— the service is at capacity. Nothing was charged; retry after the interval given.400— the input was rejected before any query ran, and nothing was charged.
Anything that did not actually run is refunded, so a rejected input or a queued request never costs points.
From JavaScript
const res = await fetch(
'https://dremaxx.de/api/v1/dns-tools/analyze?domain=example.com'
);
// Pace yourself from the headers rather than by guessing.
const remaining = Number(res.headers.get('RateLimit-Remaining'));
const report = await res.json();
console.log(report.health.score, report.health.grade);The health score as an image
An SVG you can embed anywhere. Served from cache, so an embed costs nothing per view.
https://dremaxx.de/api/v1/dns-tools/badge/example.comThe same tools over MCP
Every endpoint is also an MCP tool on a public, token-free endpoint — so an assistant can run these checks itself.
Fair use: the budget is generous for interactive use and for scripts that pace themselves. Please do not use it for bulk scanning — the queries go to other people’s nameservers, not only to ours.