<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://webatla.com/blog</id>
  <title>webatla — Blog</title>
  <subtitle>Notes on domain data, TLD trends, technology adoption.</subtitle>
  <link href="https://webatla.com/blog" rel="alternate"/>
  <link href="https://webatla.com/blog/feed.xml" rel="self"/>
  <updated>2026-06-13T21:54:02.982Z</updated>
  <entry>
    <id>https://webatla.com/blog/platform-security-upgrade-reset-credentials</id>
    <title>We&apos;ve upgraded webatla — please reset your password and regenerate your API keys</title>
    <link href="https://webatla.com/blog/platform-security-upgrade-reset-credentials"/>
    <published>2026-06-13T21:53:00.000Z</published>
    <updated>2026-06-13T21:54:02.982Z</updated>
    <author><name>Marina</name></author>
    <summary>webatla now runs on faster, more secure infrastructure. As a security precaution we&apos;re asking every account holder to reset their password and regenerate their API keys. All of your purchased datasets and download access are fully preserved — nothing you paid for has changed.</summary>
    <content type="html">&lt;p&gt;We&apos;ve completed a major upgrade to webatla&apos;s platform and the infrastructure behind it. The site now runs on rebuilt, faster application servers, sits behind Cloudflare, and ships with hardened TLS and an improved account and API layer.&lt;/p&gt;
&lt;p&gt;As part of that work we rotated the security keys that protect login sessions and API tokens. So that only &lt;strong&gt;you&lt;/strong&gt; hold the keys to your account going forward, we&apos;re asking every account holder to take two quick steps.&lt;/p&gt;
&lt;h2&gt;What you need to do&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Reset your password.&lt;/strong&gt; Open &lt;a href=&quot;/account/forgot-password&quot;&gt;Reset your password&lt;/a&gt;, enter your email, and follow the link we send to choose a new one.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Regenerate your API keys.&lt;/strong&gt; Go to your &lt;a href=&quot;/account/api&quot;&gt;API settings&lt;/a&gt;, generate a fresh key, and update any scripts or integrations that use the old one.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Both steps take less than a minute, and you only need to do them once.&lt;/p&gt;
&lt;h2&gt;Your datasets and access are safe&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Nothing you paid for has changed.&lt;/strong&gt; Every dataset you&apos;ve purchased — along with your download access and full order history — carried over to the new platform untouched. You don&apos;t need to buy anything again, and no files or entitlements were lost.&lt;/p&gt;
&lt;h2&gt;Why we&apos;re asking&lt;/h2&gt;
&lt;p&gt;Rotating credentials after an infrastructure change is routine security hygiene. It guarantees a clean break so that, going forward, you are the only person holding the keys to your account and API access. It&apos;s a precaution, not a sign that anything went wrong — and your data was never exposed.&lt;/p&gt;
&lt;h2&gt;Questions?&lt;/h2&gt;
&lt;p&gt;If you have any trouble resetting your password or regenerating a key, reach us through our &lt;a href=&quot;/contact&quot;&gt;contact page&lt;/a&gt; and we&apos;ll help you right away.&lt;/p&gt;
&lt;p&gt;— The webatla team&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://webatla.com/blog/rdap-vs-whois</id>
    <title>RDAP vs WHOIS: How Domain Lookups Work in 2026</title>
    <link href="https://webatla.com/blog/rdap-vs-whois"/>
    <published>2026-06-13T16:28:20.775Z</published>
    <updated>2026-06-13T16:28:20.775Z</updated>
    <author><name>Marina</name></author>
    <summary>WHOIS is being retired in favor of RDAP. Here is how the two protocols differ, why ICANN forced the switch, and how to query structured registration data at scale.</summary>
    <content type="html">&lt;p&gt;For four decades, &lt;strong&gt;WHOIS&lt;/strong&gt; was how you looked up who registered a domain. That era is ending. &lt;strong&gt;RDAP&lt;/strong&gt; — the Registration Data Access Protocol — has replaced it as the standard, and as of 2025 registries are no longer required to run the legacy WHOIS service at all. Here&apos;s what changed, why it matters, and how to query registration data the modern way.&lt;/p&gt;
&lt;h2&gt;What is WHOIS?&lt;/h2&gt;
&lt;p&gt;WHOIS is a simple request/response protocol that dates to 1982 (RFC 812, later RFC 3912). You connect to a server on &lt;strong&gt;port 43&lt;/strong&gt;, send a domain name, and get back a blob of text describing the registrant, registrar, key dates, and nameservers.&lt;/p&gt;
&lt;p&gt;It worked — but it was built for a different internet:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Unstructured text.&lt;/strong&gt; Every registry formatted its output differently, so parsing was a perpetual game of regex whack-a-mole.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No internationalization.&lt;/strong&gt; It was ASCII-oriented, and non-Latin registrant data was a mess.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No standard access control.&lt;/strong&gt; All-or-nothing output collided badly with privacy law like GDPR.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No standard discovery.&lt;/strong&gt; You had to already know each TLD&apos;s WHOIS server.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What is RDAP?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;RDAP&lt;/strong&gt; (RFCs 7480–7484, updated by 9082/9083) is the modern replacement. Same goal — registration data — but redesigned from the ground up:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;JSON over HTTPS.&lt;/strong&gt; Structured, predictable responses you can parse reliably.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A standard query scheme.&lt;/strong&gt; Consistent URLs like &lt;code&gt;https://rdap.example/domain/example.com&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bootstrapping.&lt;/strong&gt; IANA publishes a registry that tells you which RDAP server is authoritative for any TLD, so discovery is automatic.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Differentiated access.&lt;/strong&gt; It&apos;s authentication-aware, so a registry can return more data to authorized users while showing the public a redacted view — the GDPR-friendly model.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Internationalization and redaction&lt;/strong&gt; are first-class concerns, not afterthoughts.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;RDAP vs WHOIS: the key differences&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;WHOIS&lt;/th&gt;
&lt;th&gt;RDAP&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;Format&lt;/td&gt;
&lt;td&gt;Free-text&lt;/td&gt;
&lt;td&gt;Structured JSON&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Transport&lt;/td&gt;
&lt;td&gt;Port 43 (plaintext)&lt;/td&gt;
&lt;td&gt;HTTPS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Discovery&lt;/td&gt;
&lt;td&gt;Manual, per registry&lt;/td&gt;
&lt;td&gt;IANA bootstrap registry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Access control&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Standardized, auth-aware&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Internationalization&lt;/td&gt;
&lt;td&gt;Poor&lt;/td&gt;
&lt;td&gt;Built-in&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Status&lt;/td&gt;
&lt;td&gt;Being retired&lt;/td&gt;
&lt;td&gt;Current standard&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h2&gt;Why the industry switched&lt;/h2&gt;
&lt;p&gt;ICANN ratified RDAP as the successor to WHOIS and required gTLD registries and registrars to implement it. The decisive moment came in &lt;strong&gt;2025&lt;/strong&gt;, when contracted parties were no longer obligated to operate the legacy port-43 WHOIS service — formally ending WHOIS&apos;s run for gTLDs. If you&apos;re still building on WHOIS text parsing, you&apos;re building on a deprecated foundation.&lt;/p&gt;
&lt;h2&gt;How to query RDAP&lt;/h2&gt;
&lt;p&gt;A lookup is just an HTTPS GET. To find the right server you can consult the IANA bootstrap file, or hit a router endpoint that resolves it for you:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -s https://rdap.org/domain/example.com | jq &apos;{
  domain: .ldhName,
  status: .status,
  registrar: (.entities[]? | select(.roles[]? == &quot;registrar&quot;) | .vcardArray[1][1][3]),
  created: (.events[]? | select(.eventAction == &quot;registration&quot;) | .eventDate)
}&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Because the response is structured JSON, pulling a specific field — registration date, status, nameservers — is a one-liner instead of a fragile parser.&lt;/p&gt;
&lt;h2&gt;Querying registration data at scale&lt;/h2&gt;
&lt;p&gt;RDAP is ideal for one domain at a time. For &lt;em&gt;millions&lt;/em&gt; of domains you run into two walls: &lt;strong&gt;rate limits&lt;/strong&gt; and &lt;strong&gt;per-TLD server quirks&lt;/strong&gt; — every registry runs its own endpoint, with its own throttling and redaction rules.&lt;/p&gt;
&lt;p&gt;That&apos;s the gap the &lt;a href=&quot;/datasets/rdap-whois&quot;&gt;RDAP &amp;amp; WHOIS dataset&lt;/a&gt; fills. We resolve registration data across every active domain and ship it as normalized &lt;a href=&quot;/datasets&quot;&gt;JSONL&lt;/a&gt; — registrar, key dates, status, and nameservers in a single consistent schema — so you can analyze the whole namespace without running a distributed crawler or babysitting rate limits.&lt;/p&gt;
&lt;h2&gt;Frequently asked questions&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Is WHOIS dead?&lt;/strong&gt;
For gTLDs, effectively yes — RDAP is the required protocol and the port-43 mandate has ended. Some ccTLDs still run legacy WHOIS, but the direction of travel is one-way.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Is RDAP data different from WHOIS data?&lt;/strong&gt;
It&apos;s the &lt;em&gt;same&lt;/em&gt; registration data, exposed in a structured, access-controlled way. Public responses are often redacted for privacy; authenticated access can return more.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can I bulk-download registration data?&lt;/strong&gt;
Per-domain RDAP is rate-limited, so live bulk work is impractical. A prepared &lt;a href=&quot;/datasets/rdap-whois&quot;&gt;dataset&lt;/a&gt; is the scalable route.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How do I find the RDAP server for a TLD?&lt;/strong&gt;
Use IANA&apos;s bootstrap registry, or a router like &lt;code&gt;rdap.org&lt;/code&gt; that resolves it for you. You can browse coverage by &lt;a href=&quot;/tld&quot;&gt;TLD&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Work with registration data the modern way&lt;/h2&gt;
&lt;p&gt;Stop parsing port-43 text. &lt;a href=&quot;/datasets/rdap-whois&quot;&gt;Get the RDAP &amp;amp; WHOIS dataset →&lt;/a&gt; for structured registration data across every domain, or &lt;a href=&quot;/datasets&quot;&gt;see all datasets&lt;/a&gt; to combine it with technologies, ranking, and DNS.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://webatla.com/blog/how-to-download-list-of-all-active-domains</id>
    <title>How to Download a List of All Active Domains in 2026</title>
    <link href="https://webatla.com/blog/how-to-download-list-of-all-active-domains"/>
    <published>2026-03-10T16:28:00.000Z</published>
    <updated>2026-06-13T16:32:56.950Z</updated>
    <author><name>Marina</name></author>
    <summary>Need a complete list of active domain names? Compare zone files, registrars, and ready-made datasets — and download every registered domain as fresh JSONL.</summary>
    <content type="html">&lt;p&gt;Looking for a &lt;strong&gt;complete list of all active domains&lt;/strong&gt; — every registered domain name on the internet, in one structured file? Whether you&apos;re building a sales pipeline, running security research, training a model, or sizing a market, the hard part is rarely the analysis. It&apos;s getting clean, current, machine-readable data in the first place.&lt;/p&gt;
&lt;p&gt;This guide walks through the realistic options in 2026, what &quot;active&quot; actually means, and how to download the full set as fresh JSONL.&lt;/p&gt;
&lt;h2&gt;What counts as an &quot;active&quot; domain?&lt;/h2&gt;
&lt;p&gt;A domain is &lt;strong&gt;active&lt;/strong&gt; when it&apos;s registered in a registry and resolvable — it exists in a TLD&apos;s zone and usually has DNS records pointing somewhere. That&apos;s different from:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Parked domains&lt;/strong&gt; — registered but not serving a real site.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expired or pending-delete domains&lt;/strong&gt; — no longer registered.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Subdomains&lt;/strong&gt; — &lt;code&gt;blog.example.com&lt;/code&gt; is not a separate registration; &lt;code&gt;example.com&lt;/code&gt; is.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When people ask for &quot;all domains,&quot; they almost always mean &lt;em&gt;every registered second-level domain across every TLD&lt;/em&gt; — &lt;code&gt;example.com&lt;/code&gt;, &lt;code&gt;example.org&lt;/code&gt;, &lt;code&gt;example.de&lt;/code&gt;, and so on. There are hundreds of millions of them spread across &lt;a href=&quot;/tld&quot;&gt;thousands of TLDs&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Three ways to get the data&lt;/h2&gt;
&lt;h3&gt;1. TLD zone files&lt;/h3&gt;
&lt;p&gt;ICANN&apos;s Centralized Zone Data Service (CZDS) lets you request zone files for most gTLDs. A zone file lists the domains in a TLD along with their nameservers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt; authoritative and free. &lt;strong&gt;Cons:&lt;/strong&gt; you have to apply per-TLD and get approved, most ccTLDs (&lt;code&gt;.de&lt;/code&gt;, &lt;code&gt;.uk&lt;/code&gt;, &lt;code&gt;.fr&lt;/code&gt;, …) don&apos;t publish zones at all, and you only get the domain plus NS records — no technologies, no ranking, no registration data. You&apos;re also left merging hundreds of files in different states of freshness.&lt;/p&gt;
&lt;h3&gt;2. Registrar or registry exports&lt;/h3&gt;
&lt;p&gt;Some registries sell or publish lists. Coverage is inconsistent, formats vary, ccTLD policies differ wildly, and you rarely get anything beyond the bare domain. Stitching global coverage together this way is a project in itself.&lt;/p&gt;
&lt;h3&gt;3. A ready-made domain dataset&lt;/h3&gt;
&lt;p&gt;The pragmatic option is to download a dataset that has already handled the collection, de-duplication, and enrichment. That&apos;s exactly what the &lt;a href=&quot;/datasets/all-active-domains&quot;&gt;All Active Domains dataset&lt;/a&gt; is: one downloadable file covering every active domain we observe across all TLDs, refreshed daily.&lt;/p&gt;
&lt;h2&gt;What&apos;s inside the All Active Domains dataset&lt;/h2&gt;
&lt;p&gt;Each line is one domain, with the fields you need to filter and segment:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;th&gt;Use&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;code&gt;domain&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;example.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;the registration itself&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tld&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;filter by &lt;a href=&quot;/tld&quot;&gt;TLD&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;created&lt;/code&gt; / &lt;code&gt;updated&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;2014-03-09&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;age, freshness, newly-registered filters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ns&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ns1.cloudflare.com&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;DNS provider and hosting clusters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;active&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;resolvable vs parked&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Need more than the list itself? Layer on the &lt;a href=&quot;/datasets/technologies&quot;&gt;Technologies dataset&lt;/a&gt; to see what each site runs, or &lt;a href=&quot;/datasets/rdap-whois&quot;&gt;RDAP &amp;amp; WHOIS&lt;/a&gt; for registration details.&lt;/p&gt;
&lt;h2&gt;Why JSONL?&lt;/h2&gt;
&lt;p&gt;Every webatla dataset ships as &lt;strong&gt;JSONL&lt;/strong&gt; — one JSON object per line. It&apos;s the format that scales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Streamable&lt;/strong&gt; — process it line by line without loading the whole file into memory.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tool-friendly&lt;/strong&gt; — works out of the box with &lt;code&gt;jq&lt;/code&gt;, pandas, DuckDB, BigQuery, and Spark.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Schema-stable&lt;/strong&gt; — new fields can be added without breaking your parser.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Count domains per TLD with nothing but &lt;code&gt;jq&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cat all-active-domains.jsonl | jq -r .tld | sort | uniq -c | sort -rn | head
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Or query it directly in DuckDB:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sql&quot;&gt;SELECT tld, count(*) AS domains
FROM &apos;all-active-domains.jsonl&apos;
GROUP BY tld
ORDER BY domains DESC;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;How fresh is the data?&lt;/h2&gt;
&lt;p&gt;Domains are registered and dropped every minute, so a six-month-old list is mostly noise. Our exports are rebuilt &lt;strong&gt;daily&lt;/strong&gt; and every download is versioned by date, so you always know exactly what you have. Newly registered domains are where most of the value sits — they signal new businesses, product launches, and campaigns before anyone else notices.&lt;/p&gt;
&lt;h2&gt;Frequently asked questions&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;How many active domains are there?&lt;/strong&gt;
Hundreds of millions across all TLDs combined, and the number moves every day. The dataset reflects the current resolvable set — not a stale historical dump.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can I get only new domains?&lt;/strong&gt;
Yes. Filter by &lt;code&gt;created&lt;/code&gt; date to isolate newly-registered domains, or start from the &lt;a href=&quot;/datasets/domain-investor&quot;&gt;Domain Investor dataset&lt;/a&gt;, which focuses on fresh registrations.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Isn&apos;t scraping WHOIS a faster route?&lt;/strong&gt;
No. WHOIS — now &lt;a href=&quot;/datasets/rdap-whois&quot;&gt;RDAP&lt;/a&gt; — returns registration details for domains you &lt;em&gt;already know about&lt;/em&gt;. It won&apos;t enumerate the full namespace, and rate limits make bulk lookups slow.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What does it cost?&lt;/strong&gt;
One flat price for a month of downloads, with no subscription. See &lt;a href=&quot;/pricing&quot;&gt;pricing&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Get the full list&lt;/h2&gt;
&lt;p&gt;Skip the zone-file paperwork and the half-finished scrapers. &lt;a href=&quot;/datasets/all-active-domains&quot;&gt;Download the All Active Domains dataset →&lt;/a&gt; and have every active domain as clean JSONL today, or &lt;a href=&quot;/datasets&quot;&gt;browse all datasets&lt;/a&gt; to see what you can layer on top.&lt;/p&gt;
</content>
  </entry>
</feed>
