For market researchers and academics

A census of the internet, on a research budget

The whole active-domain population, not a sample. 406M domains with DNS, technology and ranking as one file you can measure, cite and re-run. The starter census is €29. A free 10,000-row sample needs no account.

Get a free 10K sample See the €29 census

Can I publish findings from it? →

406Mthe whole population, not a sample
€29starter census, one payment
Dateda fixed snapshot you can cite
10Kfree sample rows, no account

Measure the whole web, not a survey of it

Four aggregate recipes on the real schema. The first runs on the €29 census. The rest use all-data where a question needs more columns.

DomainTLDDomain typeCountry by IPTechnologiesDNS StatusPR valueHarmonic valueDomain creation date

Domains per TLD, the whole census

The simplest population measure, and it runs on the €29 starter set. Count every active domain by TLD.

bash + jq
zstdcat webatla-all-active-domains-2026-07-10.jsonl.zst |
jq -r '.TLD' |
sort | uniq -c | sort -rn > domains-by-tld.txt

Technology adoption across the population

How many sites run each technology, counted over the whole file. The technology field ships in two shapes, so branch on its JSON type.

duckdb
WITH t AS (
  SELECT CASE json_type("Technologies")
           WHEN 'ARRAY'  THEN json_extract_string("Technologies", '$[*]')
           WHEN 'OBJECT' THEN json_keys("Technologies")
           ELSE []::VARCHAR[] END AS techs
  FROM read_json('webatla-all-data-2026-07-10.jsonl.zst',
       format='newline_delimited', compression='zstd',
       columns={'Technologies':'JSON'})
)
SELECT tech, count(*) AS sites
FROM t, unnest(t.techs) AS u(tech)
GROUP BY tech ORDER BY sites DESC LIMIT 25;

Where the web is hosted

Distribution of domains by hosting country, from the resolved IP. A one-line group-by over the whole export.

duckdb
SELECT "Country by IP" AS country, count(*) AS domains
FROM read_json('webatla-all-data-2026-07-10.jsonl.zst',
       format='newline_delimited', compression='zstd',
       columns={'Country by IP':'VARCHAR'})
WHERE country IS NOT NULL
GROUP BY country ORDER BY domains DESC;

What share of the namespace resolves

A reproducible headline number. The percentage of tracked domains that currently answer in DNS, straight from the file.

duckdb
SELECT "DNS Status" AS resolves, count(*) AS n,
       round(100.0*count(*)/sum(count(*)) OVER (), 2) AS pct
FROM read_json('webatla-all-data-2026-07-10.jsonl.zst',
       format='newline_delimited', compression='zstd',
       columns={'DNS Status':'VARCHAR'})
GROUP BY resolves ORDER BY n DESC;

Every recipe runs on the sample and on the full file with no change. Report the number you get, and cite the dated file it came from.

Yes, you can publish what you find

The honest split for academic and market work.

Publish freely

  • Aggregated statistics, tables, charts and maps
  • Findings, methods and conclusions in a paper or report
  • A handful of example domains to illustrate a point
  • Derived indicators and indexes you compute

The work is yours. Cite the dataset and the snapshot date so others can line up their numbers with yours.

Start with the census

Sharing the raw rows needs a word

  • Posting the raw dataset as replication or supplementary data
  • Redistributing whole or substantial parts of the file

That is redistribution, which needs a written agreement. If a journal requires open replication data, tell us. We would rather help you meet that than have you stuck.

Ask about academic terms

What makes it good for research

Not another API you have to caveat in the methods section.

Population, not a sample

You measure every active domain we track, so your denominator is the real one. No sampling frame to defend to a reviewer.

A fixed, citable snapshot

Each export is dated. Cite the file and the date, and anyone can request the same snapshot and reproduce your table.

Cite exact numbers

The count is the count. 406,809,239 domains in this snapshot, not an estimate behind a rate limit that answers differently each run.

Fits a grant line

The starter census is €29 and everything joined is €599. That clears most thesis and departmental budgets without a procurement cycle.

Open, boring format

One JSON-per-line file. No proprietary reader to describe in the methods, no client to install on a locked-down machine.

Public records only

No contact PII: no names, emails or phone numbers. Registration, DNS and technology facts, the kind of data an ethics board waves through.

Questions a reviewer would ask

Answered without hedging.

Is this the whole population or a sample?

The whole active-domain population we track, 406,809,239 domains in the current snapshot. Not a sample, so your rates and shares use the real denominator.

How do I make it reproducible?

Every export is dated in the filename. Cite the dataset and that date. The file is fixed, so the same snapshot produces the same numbers on any machine. If someone needs the exact snapshot you used, point them to us.

Can I publish the results?

Yes. Aggregated statistics, figures, derived indicators and conclusions are yours to publish. Sharing the raw rows as replication data is redistribution and needs a written agreement, and we are happy to arrange that for a journal requirement. See the split above.

What is the ethics and PII position?

Public registration, DNS and technology records only. No contact PII: no registrant names, emails or phone numbers. The design is deliberate, which usually makes the ethics review short.

Is the methodology documented?

One stable, documented schema across every dataset, with the same keys on every line. The ranking signals, PageRank and harmonic centrality, are computed by us across the graph we index.

Run your first measurement for free

10,000 real rows, no account. If the numbers hold up, the full census is €29 and every column is €599.