The DNS lifecycle, as an API.
DomainDefender's dataset, queryable over HTTPS. Every endpoint is a direct view of MongoDB, computed on-demand. Registration facts, DNSSEC status, EPP locks, nameserver delegations, registrant country, plus the lifecycle cohorts (fresh / expiring / pending-delete / stale) that are our core differentiator.
What's in the corpus right now
source · https://designation-pennsylvania-lanka-remember.trycloudflare.com/v1/meta
https://designation-pennsylvania-lanka-remember.trycloudflare.com this URL is ephemeral until we bind a stable custom domain; bookmark this page, not the URL
Four audiences, one dataset.
"Was this phishing domain registered in the last 7 days? Who's the registrar? Is DNSSEC signed?"
"What % of .xyz registrations did we win last month vs. Dynadot?"
"Export every domain that re-registered within 30 days of expiry across .com in 2025."
"Other domains that share this one's registrar, NS set, and creation window?"
Your browser to our Mongo in five hops.
outbound-only tunnel · database never exposed to the public internet · TLS at the edge
Honest limit: today's tunnel is a Cloudflare quick-tunnel
(trycloudflare.com hostname) — convenient
for development, but the URL rotates on tunnel restart and the path
flakes intermittently. Migrating to a named tunnel
(api.domaindefender.com or similar) is queued.
Request access.
Internal alpha. Keys are issued manually. Reach out via the contact page with a one-liner about how you'd use it.
Pick your language.
# 1. Public: no key
curl -s https://designation-pennsylvania-lanka-remember.trycloudflare.com/v1/meta
# 2. Lookup a domain
KEY="dd_live_..."
curl -s -H "X-API-Key: $KEY" https://designation-pennsylvania-lanka-remember.trycloudflare.com/v1/domain/example.com
# 3. Lifecycle — fresh registrations in the last 7 days
curl -s -H "X-API-Key: $KEY" \
"https://designation-pennsylvania-lanka-remember.trycloudflare.com/v1/lifecycle/fresh?window_days=7&limit=5"
Sample responses.
GET /v1/domain/{domain} auth required {
"domain": "example.com",
"tld": "com",
"registrar": "MarkMonitor Inc.",
"registrar_iana_id": "292",
"creation_date": "1995-08-13T04:00:00Z",
"expiry_date": "2026-08-13T04:00:00Z",
"updated_date": "2025-08-14T07:01:39Z",
"dnssec": false,
"status": [
"clientDeleteProhibited",
"clientTransferProhibited",
"clientUpdateProhibited"
],
"nameservers": [
"a.iana-servers.net",
"b.iana-servers.net"
],
"registrant_country": "US",
"rdap_status": "ok",
"enriched_at": "2026-04-22T14:03:17Z"
} GET /v1/domain/{domain}/lifecycle auth required [
{ "event": "registered",
"timestamp": "1995-08-13T04:00:00Z" },
{ "event": "updated",
"timestamp": "2025-08-14T07:01:39Z" },
{ "event": "expiry_scheduled",
"timestamp": "2026-08-13T04:00:00Z" },
{ "event": "observed",
"timestamp": "2026-04-22T14:03:17Z" }
] GET /v1/lifecycle/fresh?window_days=7 auth required {
"window_days": 7,
"tld": null,
"total": 1651,
"returned": 3,
"results": [
{ "domain": "kuanefor.rest",
"creation_date": "2026-04-22T01:18:03Z",
"registrar": "Porkbun LLC",
"tld": "rest" },
{ "domain": "wd188.living",
"creation_date": "2026-04-22T01:11:52Z",
"registrar": "Spaceship, Inc.",
"tld": "living" },
{ "domain": "wd66.living",
"creation_date": "2026-04-22T01:11:52Z",
"registrar": "Spaceship, Inc.",
"tld": "living" }
]
} GET /v1/tld/{tld}/stats auth required {
"tld": "com",
"enriched_count": 4736,
"dnssec_signed": 193,
"dnssec_rate_pct": 4.08,
"oldest_creation_date": "1992-09-09T04:00:00Z",
"newest_creation_date": "2026-04-21T19:09:20Z"
} The v1 surface.
All endpoints under /v1/. Full spec + interactive try-it at https://designation-pennsylvania-lanka-remember.trycloudflare.com/v1/docs.
GET /v1/health Service health + Mongo reachability public GET /v1/meta Corpus size + latest record timestamp public GET /v1/domain/{domain} Full record for one domain key GET /v1/domain/{domain}/lifecycle Event stream: registered / updated / expired / observed key GET /v1/tld/{tld}/stats Record count, DNSSEC %, oldest + newest for a TLD key GET /v1/tld/{tld}/top-registrars Leading registrars within a TLD key GET /v1/registrar/{name}/stats Volume, DNSSEC rate, transfer-lock rate key GET /v1/registrar/{name}/tld-breakdown Top TLDs a registrar operates in key GET /v1/country/{iso2}/stats Volume + DNSSEC for a registrant country key GET /v1/search?... Multi-facet filter, cursor-paginated key GET /v1/lifecycle/fresh?window_days=30 Domains registered in the last N days key GET /v1/lifecycle/expiring?window_days=30 Domains expiring in the next N days key GET /v1/lifecycle/pending-delete Currently in EPP pendingDelete status key GET /v1/lifecycle/stale?min_age_years=3 Live domains with no registry update in N+ years key Depth over breadth.
Commercial vendors (Whisper, SecurityTrails, WhoisXML, DomainTools) spread their effort wide across infrastructure layers: domains, IPs, certs, ASNs, routing. DomainDefender picks one slice and goes deep: the biography of every domain we track, not just its current snapshot. The lifecycle endpoints are where that depth shows up.
"Here's what this domain looks like right now: registrar X, NS Y, cert Z, AS W."
"Here's its full biography: when it registered, every time the registry record changed, when it expired, whether it got re-registered by a new owner, and how its neighbourhood evolved at each step."
What keys can do.
Tiers are wired into the code; paid tiers aren't launched yet.
academic 100 10 issued on request developer 500 20 scoped (future) pro 10,000 100 paid (deferred) business 50,000 300 paid (deferred) enterprise ∞ ∞ contract (deferred) internal ∞ ∞ project team only