Less repetitive checking.
Use recent membership observations to decide which names need a live lookup.
Domain investor or building an AI tool? The registrar view is for you too.
CDN.MN Domains · Private access by request
A fast, timestamped pre-check for registrars, domain investors, and AI tools. Use our private API or approved local indexes to identify names observed in DNS zones or listed as registered by participating registries—before sending another live lookup.
Email us: domains@cdn.mn
A snapshot is not a live availability guarantee.
For registrars
Use recent membership observations to decide which names need a live lookup.
Start with the private API, or use approved downloadable indexes in your own infrastructure.
Use evidence, timestamps, and freshness to apply your own search and registration policy.
Why a shared pre-check
Illustrative scenario — not a CDN.MN measurement
Without a shared index, every preliminary check becomes a registry query (WHOIS, RDAP or EPP). With CDN.MN, in this scenario about 85 of every 100 are answered from the index (taken in a snapshot), and only the rest reach the registry.
1,000 clients × 1,000 checks
100 dots per lane; the counters carry the totals.
The share is an assumption, not a measurement. Model your own inputs
How it works
We index permitted DNS-zone observations from authorized access through ICANN CZDS and work with participating registries on additional data feeds, including registered names that may not appear in DNS.
Your registrar or agent checks the CDN.MN API, or checks an approved hashed list or Bloom file locally.
The result includes its evidence and snapshot time. Use it to prioritize names, request a live check, or continue an authorized registration workflow through your registrar.
“Not found” means not found in that dataset. It does not mean available to register.
Registrars may skip a separate EPP check before an authorized registration attempt where their integration and registry rules permit. CDN.MN does not submit registrations or authorize purchases. The registry still decides whether a registration succeeds.
Interactive example — not a live domain lookup.
Example clock: · Example freshness policy: 36 hours
Taken in snapshotFreshness: Fresh
Exact source membership, or a strong full-length hash match, supports a historical observation.
Safe next step
The name was observed as delegated in the DNS zone snapshot. Deprioritize it under your caching policy, and recheck with the registry when current availability matters.
Taken in snapshotFreshness: Fresh
Exact source membership, or a strong full-length hash match, supports a historical observation.
Safe next step
The registry's own list shows the name as registered, even though it may not appear in DNS. Deprioritize it under your caching policy, and recheck when current availability matters.
Possible matchFreshness: Fresh
A Bloom filter reports possible membership; there is no independent exact confirmation.
Safe next step
A Bloom file reports a possible match, with no exact confirmation for this snapshot. Confirm with the registry before treating the name as taken or unavailable.
Not found in this snapshotFreshness: Fresh
No match in the specified usable dataset.
Safe next step
Not found in this DNS zone snapshot. Registered names can be missing from DNS zones, and a name may have been registered since the snapshot. Check the authoritative registry; this is not an availability guarantee.
Taken in snapshotFreshness: Stale
The source snapshot is more than 36 hours older than the example clock. Recheck with the registry before relying on it.
Exact source membership, or a strong full-length hash match, supports a historical observation.
Safe next step
The name was listed as registered in an older registry snapshot, and that snapshot is stale. Recheck with the registry before relying on this observation.
No usable coverageFreshness: Freshness unknown
The source snapshot time is unknown, so freshness cannot be computed. No timestamp is invented.
The dataset is missing, unusable, incompatible, unauthorized, or its scope does not cover this query.
Safe next step
No usable dataset covers this name, so there is no source snapshot time to show. Use your normal authorized registry workflow.
{
"schema_version": "1.0-example",
"example": true,
"results": [
{
"domain": "delegated.example",
"state": "taken",
"evidence": "dns_delegation",
"match_method": "exact",
"source_type": "zone_file",
"dataset_id": "example-zone-demo",
"snapshot_id": "demo-2026-10-12",
"as_of": "2026-10-12T00:00:00Z",
"timestamp_basis": "source_snapshot",
"ingested_at": "2026-10-12T00:15:00Z",
"checked_at": "2026-10-12T02:00:00Z",
"freshness": "fresh",
"current_availability": "not_checked",
"bloom_false_positive_probability": null
}
]
}{
"schema_version": "1.0-example",
"example": true,
"results": [
{
"domain": "registered.example",
"state": "taken",
"evidence": "registry_registered",
"match_method": "exact",
"source_type": "registry_list",
"dataset_id": "example-registry-demo",
"snapshot_id": "demo-2026-10-12",
"as_of": "2026-10-12T00:00:00Z",
"timestamp_basis": "source_snapshot",
"ingested_at": "2026-10-12T00:20:00Z",
"checked_at": "2026-10-12T02:00:00Z",
"freshness": "fresh",
"current_availability": "not_checked",
"bloom_false_positive_probability": null
}
]
}{
"schema_version": "1.0-example",
"example": true,
"results": [
{
"domain": "candidate.example",
"state": "possibly_taken",
"evidence": "registry_registered",
"match_method": "bloom",
"source_type": "registry_bloom",
"dataset_id": "example-registry-bloom-demo",
"snapshot_id": "demo-2026-10-12",
"as_of": "2026-10-12T00:00:00Z",
"timestamp_basis": "source_snapshot",
"ingested_at": "2026-10-12T00:30:00Z",
"checked_at": "2026-10-12T02:00:00Z",
"freshness": "fresh",
"current_availability": "not_checked",
"bloom_false_positive_probability": 0.000001
}
]
}{
"schema_version": "1.0-example",
"example": true,
"results": [
{
"domain": "newidea.example",
"state": "not_in_snapshot",
"evidence": "none",
"match_method": "none",
"source_type": "zone_file",
"dataset_id": "example-zone-demo",
"snapshot_id": "demo-2026-10-12",
"as_of": "2026-10-12T00:00:00Z",
"timestamp_basis": "source_snapshot",
"ingested_at": "2026-10-12T00:15:00Z",
"checked_at": "2026-10-12T02:00:00Z",
"freshness": "fresh",
"current_availability": "not_checked",
"bloom_false_positive_probability": null
}
]
}{
"schema_version": "1.0-example",
"example": true,
"results": [
{
"domain": "oldrecord.example",
"state": "taken",
"evidence": "registry_registered",
"match_method": "sha256",
"source_type": "registry_hashes",
"dataset_id": "example-registry-hashes-demo",
"snapshot_id": "demo-2026-10-01",
"as_of": "2026-10-01T00:00:00Z",
"timestamp_basis": "source_snapshot",
"ingested_at": "2026-10-01T00:40:00Z",
"checked_at": "2026-10-12T02:00:00Z",
"freshness": "stale",
"current_availability": "not_checked",
"bloom_false_positive_probability": null
}
]
}{
"schema_version": "1.0-example",
"example": true,
"results": [
{
"domain": "unknown.example",
"state": "unknown",
"evidence": "none",
"match_method": "none",
"source_type": null,
"dataset_id": null,
"snapshot_id": null,
"as_of": null,
"timestamp_basis": "unknown",
"ingested_at": null,
"checked_at": "2026-10-12T02:00:00Z",
"freshness": "unknown",
"current_availability": "not_checked",
"bloom_false_positive_probability": null
}
]
}Fictitious domains and a fixed example clock. No DNS, WHOIS, RDAP, HTTP or EPP request is made.
Result
Freshness
Access options
Available formats and coverage depend on each source's permissions. Local checks do not send individual searched names to CDN.MN.
Illustrative inputs—not CDN.MN measurements
Assumes one preliminary upstream request per candidate name.
Leave unconfirmed Bloom positives out of the match share.
Final registration operations, extra verification, CDN.MN requests, and source ingestion are not counted. This is not a latency, cost, or total-infrastructure-load guarantee.
Registry contribution
Not every registry can publish a domain list. Choose an approach that fits your policy, then agree how the resulting information may be used and delivered.
Prefer no downstream files? Discuss API-only delivery with approved access and query limits.
Access to a source and permission to distribute it are separate. We review the permitted use of each source for each delivery mode—API, hashed download, or Bloom download—before offering it, and a mode that is not approved stays off.
Download access can be revoked, but copies already downloaded cannot be technically recalled. API-only delivery gives stronger control over query volume; it does not remove guessing or licensing questions.
Please don't email source files, credentials, or database exports. Start with the short form; we'll agree on a secure transfer method afterwards.
Sources and freshness
DNS-zone observations and registered-name feeds answer different questions. We keep those sources distinct so you can see what a result actually supports.
Authorized access through ICANN's Centralized Zone Data Service, or CZDS, provides one source of DNS-delegation observations. CZDS is an access channel to participating registries' zone files, not an endorsement of CDN.MN.
We aim to refresh supported datasets at least once every 24 hours, subject to source publication and access. Each response shows the source snapshot time, where available, so you can apply your own freshness policy.
A missing, delayed, or unsupported source is not silently treated as an available domain.
Tell us which TLDs and registration zones you need. We'll confirm current coverage, available formats, and refresh arrangements during onboarding.
Email usDevelopers and AI agents
Domain-search agents can generate large candidate lists. Give them a pre-check step before they contact registry infrastructure: normalize names, remove duplicates, check a local index or the private API, then use an authorized live check only when the workflow needs it.
Machine-readable results should preserve the source, timestamp, and difference between an exact observation and a possible match. A “not found” result is never permission to spend money or register a name.
Illustrative API contract — final endpoints and fields confirmed during onboarding.
# Illustrative server-side request, not a public demo endpoint.
# Use a real scoped token only after access has been granted.
curl 'https://domains.cdn.mn/api/v1/check' \
--request POST \
--header "Authorization: Bearer ${CDNMN_DOMAIN_API_KEY}" \
--header 'Content-Type: application/json' \
--data '{"domains":["registered.example"]}'{
"schema_version": "1.0-example",
"example": true,
"results": [
{
"domain": "registered.example",
"state": "taken",
"evidence": "registry_registered",
"match_method": "exact",
"source_type": "registry_list",
"dataset_id": "example-registry-demo",
"snapshot_id": "demo-2026-10-12",
"as_of": "2026-10-12T00:00:00Z",
"timestamp_basis": "source_snapshot",
"ingested_at": "2026-10-12T00:20:00Z",
"checked_at": "2026-10-12T02:00:00Z",
"freshness": "fresh",
"current_availability": "not_checked",
"bloom_false_positive_probability": null
}
]
}Participation and pricing
For registries
There is no service fee for contributing an agreed registry dataset. We work with you on scope, refreshes, access, and permitted distribution.
Join as a registryFor registrars, domain investors and AI-tool developers
A reasonable monthly fee supports data processing, storage, delivery, and maintenance. Contact us to discuss the TLDs, API usage, and local-file access your team needs.
Request access and pricingPrivate access by request.
FAQ
Email us: domains@cdn.mn
No. It means the specified source supports a historical membership observation. The domain may have changed since then. Check the registry when present availability matters.
No. Registered names can be missing from DNS zones, a name may have been registered since the snapshot, or registry policy may make it unavailable. The authoritative registration workflow decides.
Yes. That is a Bloom false positive. Bloom-only positives are marked as possible matches unless independently confirmed. This is separate from a domain changing after the snapshot.
They avoid distributing a readable name list, but guessed names can still be tested. Hash counts and Bloom metadata can also reveal information about dataset size. The chosen format and agreement must reflect that limitation.
An approved zone or registered-name source, or an agreed-format hash export or Bloom file. Registrant contact records and EPP credentials are not required for this membership service. API-only downstream delivery can also be discussed.
Coverage depends on authorized sources and participating registries. Ask us about your target TLDs and registration zones; we will confirm the current scope during onboarding.
The goal is daily refreshes for supported sources, subject to source publication and access. Results carry source timestamps where available. Check the freshness flag rather than assuming every response contains new data.
No. This is a pre-check step in front of your existing workflow. Your registry or registrar connection remains responsible for authoritative checks and registrations.
Yes. Use the registrar view and tell us your use case, target TLDs, and expected volume. Access and permitted uses are agreed during onboarding.
No. CDN.MN is an independent service. Authorized access through ICANN CZDS is one source of zone data; it is not ICANN certification or endorsement of this product.
Contact
Tell us what you operate and which namespaces you need. We'll discuss the right feed or access method.