Domain Availability Checker & Brand TLD Matrix
Pricing
from $2.50 / 1,000 domain checkeds
Domain Availability Checker & Brand TLD Matrix
Check brand keywords across TLDs with authoritative RDAP and DNS evidence, stable matrix output, and explicit unknown states.
Pricing
from $2.50 / 1,000 domain checkeds
Rating
0.0
(0)
Developer
TrueNorth
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Share
Turn brand names into a deterministic keyword × top-level domain (TLD) matrix for naming research, startup domain discovery, agency projects, portfolio monitoring, and brand-protection watchlists. This bulk domain checker uses authoritative Registration Data Access Protocol (RDAP) routing plus optional Domain Name System (DNS) evidence and returns one auditable row per candidate.
Every result is registered, available, or unknown. Stable row, column, and matrix indexes make repeated runs easy to compare through JSON, CSV, Excel, Google Sheets, webhooks, or the Apify API.
Use it as a TLD availability matrix, TLD checker, brand domain checker, RDAP domain lookup, domain status API, domain availability API, or brand domain monitor. It is not a WHOIS scraper, premium domain pricing tool, registrar checkout, or domain-registration service.
This Actor is not affiliated with Vercel, any registry, or any registrar. It does not return registrar prices, premium status, purchasability, ownership advice, trademark clearance, registration services, or purchase guarantees.
Why use this domain availability checker?
- Generate every brand keyword × TLD combination automatically.
- Discover registry RDAP endpoints from the official Internet Assigned Numbers Authority (IANA) bootstrap registry.
- Require both authoritative RDAP
404and exact DNSNXDOMAINbefore returningavailable. - Preserve explicit
unknownresults for rate limits, unsupported TLDs, stale evidence, malformed responses, transport failures, and RDAP/DNS conflicts. - Include evidence timestamps, endpoint provenance, cache status, attempts, HTTP status, and stable reason codes.
- Export one strict domain-status API row per candidate.
- Schedule identical matrices and monitor domain registration status over time.
- Cache stable positive and negative evidence while never persisting transient errors.
Input
{"keywords": ["acme", "acme-labs"],"tlds": ["com", "org", "io"],"dnsCorroboration": true}
| Field | Required | Exact limits | Meaning |
|---|---|---|---|
keywords | yes | 1–100; each canonical label ≤ 63 bytes | One DNS label per entry |
tlds | no | 1–50; default com, org, net, io | Single-label TLDs; one leading dot accepted |
dnsCorroboration | no | default true | Required for any available result |
Maximum matrix size is 2,000 cells. Input is Unicode Normalization Form C (NFC)-normalized, lowercased, converted with Internationalized Domain Names in Applications (IDNA), and validated at runtime. Canonical duplicates, embedded dots, invalid labels, unknown properties, and oversized matrices fail input validation.
Output
Default dataset contains one strict item per matrix cell. Keyword order is outer; TLD order is inner. Concurrent network completion never changes row-major output order.
{"keyword": "acme","tld": "com","canonicalKeyword": "acme","canonicalTld": "com","domain": "acme.com","rowIndex": 0,"columnIndex": 0,"matrixIndex": 0,"status": "unknown","reason": "CONFLICT_RDAP_404_DNS_EXISTS","checkedAt": "2026-07-27T12:00:00.000Z","rdap": {"classification": "not_found","authoritative": true,"bootstrapFresh": true,"serviceBaseUrl": "https://registry.example/rdap/","requestUrl": "https://registry.example/rdap/domain/acme.com","finalUrl": "https://registry.example/rdap/domain/acme.com","httpStatus": 404,"attempts": 1,"cached": false,"responseTimeMs": 121,"checkedAt": "2026-07-27T12:00:00.000Z","errorCode": null},"dns": {"enabled": true,"classification": "exists","queryType": "SOA","attempts": 1,"cached": false,"responseTimeMs": 42,"checkedAt": "2026-07-27T12:00:00.000Z","errorCode": null}}
Run-level OUTPUT in the default key-value store reports exact total, registered, available, and unknown counts, DNS setting, timestamps, and dataset ID.
Understanding the three states
registered: authoritative RDAP returned a valid matching domain entity. With DNS enabled, DNS must not contradict RDAP withNXDOMAIN.available: fresh IANA routing led to an authoritative RDAP404, and DNS returned exactNXDOMAIN.unknown: evidence was incomplete, stale, unsupported, malformed, rate-limited, unavailable, or contradictory.
available describes evidence at check time, not a purchase guarantee. Domain state can change immediately after a check.
Common unknown reasons:
CONFLICT_RDAP_FOUND_DNS_NXDOMAINCONFLICT_RDAP_404_DNS_EXISTSDNS_ERRORDNS_REQUIRED_FOR_AVAILABILITYSTALE_BOOTSTRAP_CANNOT_PROVE_AVAILABILITYNO_AUTHORITATIVE_RDAP_SERVICERDAP_HTTP_ERRORRDAP_RATE_LIMITEDRDAP_TRANSPORT_ERRORRDAP_INVALID_RESPONSE
Evidence and cache policy
Actor downloads official IANA DNS RDAP bootstrap data, accepts only HTTPS service bases, follows at most three HTTPS redirects, and never guesses registry endpoints. Bootstrap remains fresh for 24 hours and can locate positive RDAP records from stale fallback for up to seven days; stale 404 never proves availability.
Cached evidence keeps its original timestamp:
- RDAP found: 12 hours
- RDAP
404: 15 minutes - DNS exists: 15 minutes
- DNS
NXDOMAIN: 5 minutes
Errors are never persisted between runs. DNS disabled skips DNS network calls; RDAP 404 then remains unknown. A DNS Start of Authority (SOA) query distinguishes exact NXDOMAIN from NOERROR with no data (NODATA).
Billing behavior
Pay-Per-Event (PPE) integration uses one domain-checked event per successfully persisted dataset row. No event is charged before persistence, after a failed dataset write, or during guarded local fixture verification. Apify Store pricing shown at run time is the source of truth; this repository does not claim that planned pricing is remotely configured.
Monitoring and AI workflows
Schedule identical input and compare domain, status, reason, and checkedAt. Stable indexes support Sheets, CSV, webhooks, vector databases, relational databases, and Retrieval-Augmented Generation (RAG) pipelines. Preserve status, reason, rdap, and dns when asking a large language model (LLM) to rank candidates. Treat transitions into or out of unknown as evidence-health changes, not registration events.
Do not use output as legal trademark advice or proof that a domain can be purchased.
Data sources and limits
- IANA RDAP bootstrap:
https://data.iana.org/rdap/dns.json - Registry RDAP endpoints: validated HTTPS bases published through IANA bootstrap data
- DNS evidence: exact SOA query with
NXDOMAINseparated fromNOERROR/NODATA
No WHOIS (historical domain-registration lookup protocol) HTML scraping, browser automation, registrar account, private API key, pricing endpoint, checkout action, typo generation, or legal conclusion is used.
Local development
Requires Node.js 22 and pnpm 10.
pnpm install --frozen-lockfilepnpm testpnpm coveragepnpm format:checkpnpm lintpnpm typecheckpnpm buildpnpm validate:schemasapify validate-schema
Deterministic fixture mode is internal and test-only. It requires NODE_ENV=test, loopback transport, fixture files under tests/fixtures, and a non-Cloud environment. Any fixture flag on Apify Cloud aborts startup. Fixture verification persists rows and writes OUTPUT but never emits PPE charges.