isitdns?

Privacy

privacy

Lookups you send to isitdns are logged: what you asked, when, and how it went. Your IP address and user agent are logged only when the request fails or is refused. During a flood, lookups past the logging limit are not written; MCP calls past it are still counted, with no address.

This page covers isitdns.net: the site, the API, the CLI surface (curl), the MCP server and DNS queries to the isitdns.net zone.

purposes

I use this data only for the purposes listed below.

  • Run the service and fix wrong or missing readings.
  • Enforce the rate limit: 100 requests a minute per address.
  • Find and stop abuse.
  • Count use: requests a day, by tool and by client type.
  • Feedback: see which pages work for readers.
  • Questions: answer them.
  • Probe signups: reply about hosting a probe.
  • Probe reports: show and check each probe's readings.
  • Name server query logs: trace faults and abuse in the probe zone.
data collected

For every MCP tool and API route, the log stores the tool or route and every argument sent, up to 2,048 characters.

fieldwhat is writtenwhy
timeWhen the answer was ready, to the millisecond.Orders the log and starts the 30-day clock.
IP addressIn full, as Cloudflare passes it. Failed or refused requests only.Abuse handling, and finding your rows for an access or deletion request.
user agentThe first 512 characters sent. Failed or refused requests only. MCP rows keep the client type (browser, curl, SDK, Claude, ChatGPT, probe), and dig and check rows whether the request came from a browser on this site.Which client asked, to keep each one working.
surfaceThe route and HTTP method, or the MCP tool.Which part was used.
argumentsEvery argument, stored up to 2,048 characters: the name or domain, record type, resolver, transport, address family, flags, client subnet, a resolver address you typed. Refused names too.What was asked, to fix wrong or missing readings and refusals.
refusalWhy a request was refused: special-use name, name inside a network, private address, resolver not on the board, bad argument, limited, or failed.To see which refusals are wrong.
outcomeThe HTTP status, the tool's outcome, the DNS response code, and a domain check's ok, warn and fail counts.What result the service reported, to look into wrong or failed readings.
latencyTime to answer, in milliseconds.How fast it answered.
locationThe Cloudflare data center the request entered, and its country.To read latency and vantage.

Two example records from test lookups. The addresses are documentation addresses (RFC 5737, RFC 3849). ts is Unix time in milliseconds.

An MCP call that worked: dig example.com A. No address, no user agent.

POST https://isitdns.net/mcp  from 192.0.2.10
tools/call dig {"name":"example.com","type":"A"}

request row:
ts          1791813600008
name        "example.com"
qtype       "A"
resolver    "cloudflare"
transport   "doh"
ip_family   "v4"
flags       "dnssec"
ecs         NULL
custom_ip   NULL
country     "NL"
colo        "AMS"
source      "auto"
rcode       "NOERROR"
latency_ms  6
ua          NULL
ip          NULL
refusal     NULL
argv        "{\"name\":\"example.com\",\"type\":\"A\",\"dnssec\":true,\"cd\":false,\"noRecurse\":false,\"nsid\":false,\"transport\":\"doh\",\"ipFamily\":\"v4\",\"resolver\":\"cloudflare\"}"

MCP row:
ts       1791813600010
class    "other"
tool     "dig"
name     "example.com"
args     "A @cloudflare"
outcome  "ok:NOERROR"
ms       10
colo     "AMS"
country  "NL"
ip       NULL
ua       NULL
refusal  NULL
argv     "{\"name\":\"example.com\",\"type\":\"A\"}"

A request that was refused: /dig for nonexistent.invalid, a special-use name. The address and user agent are kept.

POST https://isitdns.net/api/query  from 2001:db8::10
{"name":"nonexistent.invalid","type":"A","resolver":"cloudflare","dnssec":true,"cd":false,"transport":"doh"}

request row:
ts          1791813600014
name        "nonexistent.invalid"
qtype       "A"
resolver    "cloudflare"
transport   "doh"
ip_family   "v4"
flags       "dnssec"
ecs         NULL
custom_ip   NULL
country     "NL"
colo        "AMS"
source      "site"
rcode       NULL
latency_ms  1
ua          "Mozilla/5.0 (example browser)"
ip          "2001:db8::10"
refusal     "special-use"
argv        "{\"name\":\"nonexistent.invalid\",\"type\":\"A\",\"resolver\":\"cloudflare\",\"dnssec\":true,\"cd\":false,\"transport\":\"doh\"}"

Values: source "auto" = MCP, "site" = the /dig page. class "other" = a client type that is not one of ours. flags "dnssec" = the DO bit set.

Other data:

  • Web pages: Cloudflare's beacon counts page views. No cookies. No accounts. Opening a page writes no log row; the /top100, /top-100, /status.txt and isitdns.net/<domain> redirects write one, with no address; a lookup the page runs does.
  • MCP counts at Cloudflare contain the method, tool, client type, outcome and latency, and for a failed or refused call the first 80 characters of the user agent after email addresses are removed. They contain no IP address. Counts written before this change, which went live on 2026-10-13 UTC, carry that part of the user agent for every call; each expires three months after it was written, the last by 2027-01-13.
  • Rate limit: a hash of your IP address and a count, per minute.
  • Feedback and question endpoints (/api/feedback, /api/inquiry): what you send, your country as recorded for that request, and a hash of your IP address that changes daily.
  • Probe signup list: email addresses, an optional note, your country as recorded for that request, and a hash of your IP address that changes daily.
  • Probe reports (/api/hive/report): a probe's own summary of its DNS traffic (counts, latency, top names), its country and network number.
  • Tool outputs: a check_domain answer is cached 5 minutes in the Cloudflare data center that ran it and served to the next caller there who checks that domain. dig, trace, dnssec_chain, sweep_domain and registration answers are returned to the caller only. Resolver readings and monitored-domain snapshots are measurements of public DNS, used for the status board and its history. They hold no visitor data.
  • DNS: Cloudflare answers the isitdns.net zone, and isitdns receives no record of those queries. isitdns's own name servers answer probe.isitdns.net and log only the queries they answer with an error (SERVFAIL, REFUSED or NOTIMP): the address that asked (usually a resolver), the name, type, transport, response code and time. A query answered without an error leaves no address.
how long it is kept

When it works, isitdns does not keep who asked. Failed or refused requests keep the address and user agent 30 days, so they can be traced. Request logs are deleted at 30 days.

Separate MCP usage counts keep up to 80 characters of a failed or refused call's user agent, after email addresses are removed, for three months. The rate limit keeps a hash of the address for up to a day.

  • Request log rows: 30 days.
  • A second copy of the dig, MCP and API rows, for the operator dashboards: 15 days.
  • Backups: deleted rows stay in Cloudflare database backups up to 30 more days.
  • Counts, with no address: requests a day by tool and client type, digs by resolver and record type. Kept with no set end.
  • MCP count points at Cloudflare: three months.
  • Page-view counts at Cloudflare: six months.
  • Resolver readings: raw readings up to 2 days, 5-minute summaries 30 days, hourly summaries 90 days, daily summaries with no set end.
  • Monitored-domain snapshots: one per domain per day, with no set end.
  • Rate limit entries: deleted within a day.
  • Name server query logs: 30 days.
  • Feedback, questions, probe signups and probe reports: kept while isitdns runs, to answer them and keep each probe's history; deleted on request.
  • Email to isitdns: no scheduled deletion date; deleted on request.
recipients
  • Cloudflare: every request passes through it. It hosts the site, the API, the database and the page-view counts. Cloudflare's privacy policy.
  • Hosting and network providers carry each probe's and name server's traffic. A lookup run from a probe passes through that probe's hosting provider.
  • The DNS servers a lookup asks receive the name, the type, and a client subnet if you send one. RDAP servers receive the domain name. isitdns does not add your IP address; a DNS server receives a client subnet only if you supply one.
  • Email to isitdns goes to Apple iCloud Mail.
  • Not sold. Not shared for advertising. The one third-party script is Cloudflare's page-view beacon.
your controls

No accounts.

To see or delete your data, write to security@isitdns.net. Answered within 30 days.

  • Request log rows: give the IP address and the time window (UTC). A lookup by IP finds only failed or refused requests; a request that worked has no address to find in the request log.
  • Feedback and questions: give the IP address and the day, or the text or email address you sent.
  • Probe signups: give the email address.
  • Probe reports: give the probe's id.

You get the rows found, or they are deleted from active storage, and the reply says which. Deleted rows remain in Cloudflare backups for 30 days. The second copy is not reached by a deletion; it expires within 15 days.

changes

Changes are dated below.

Last changed: 2026-10-15.