# Changelog of Bulk DNS & Domain Checker — Records, WHOIS & Expiry (`haketa/bulk-dns-checker`) Actor

- **URL**: https://apify.com/haketa/bulk-dns-checker/changelog.md
- **Full Actor documentation**: https://apify.com/haketa/bulk-dns-checker.md

## Changelog

### 0.2.0 — 2026-11-01

- **Fixed WHOIS/RDAP coverage on large runs.** The checker now resolves each TLD to its **authoritative RDAP server** via the live IANA bootstrap registry (`data.iana.org/rdap/dns.json`) and queries it directly, falling back to the public `rdap.org` proxy only when a TLD is not in the bootstrap or its server is unavailable. Previously the free proxy intermittently dropped requests under concurrent load, leaving `registrar`, `expiryDate`, `daysUntilExpiry`, `createdDate`, `updatedDate`, `statusCodes` and `dnssec` empty on many domains that actually publish RDAP (only ~46% of `.com` domains returned WHOIS). A pre-fix verification run of 496 mixed domains recovered **40/40** previously-failing `.com` domains against their authoritative server. No input or output field names changed.
- Verified a fresh run of **496 unique domains, 0 duplicates** in ~5.6 minutes with full WHOIS: core DNS coverage `aRecords` 100%, `nsRecords` 100%, `mxRecords` 97%, `txtRecords` 99% of resolving domains; `mailProvider` 76%; no value bugs, no `[object Object]`, correct ISO timestamps and `YYYY-MM-DD` dates.
- Hardened the RDAP parser: a `200` response with no registrar and no event dates is treated as "empty from this source" and falls through to the next endpoint instead of masking a recoverable lookup.
- Refreshed the README to the gold standard — Output example and field reference now match a real fresh-run record exactly, added the authoritative-RDAP behavior to the feature list and FAQ, documented honest per-field coverage, and clarified the `resolves` vs MX/NS edge case.
