awp / autonomous agentic website pipeline

Original measurement, 2026-07-30 and 2026-07-31

Zero of 731 single English words were available as a .com

Every one of 731 ordinary single English words, drawn from 12 unrelated semantic fields, was checked against the Verisign .com registry using RDAP. Not one was available to register. In the same run, 81 candidates of premium brandable calibre returned zero available, and five pseudo-words invented for the test turned out to be registered as well.

This page publishes the measurement, the exact method, the per-domain raw file, and the reasons the wider figures on it shouldn't be read as a description of .com in general. The data was collected by the domain engine described on the pipeline's home page, pointed at its own naming problem.

  • 0of 731 single English words available
  • 0of 81 premium brandable candidates available
  • 6,135candidates checked against the live registry
  • 0left unresolved, no result was guessed

01The single-word .com space returned no availability at all

The strongest result in this dataset is also the narrowest, which is why it leads. A word list of 731 single English words was assembled deliberately across 12 semantic fields so that the sample would not sit in one register of the language, and each word was checked as a bare .com second-level domain. The available count was zero.

Twelve fields were used: tools and craft, architecture, navigation, geology, weather and light, textiles, horology, agriculture, measurement, abstract virtues, motion, and birds. Words ranged from the common to the technical. Here is some of what was tested, all of it registered.

tools and craftadze, gouge, mandrel, swage, whetstone architecturevoussoir, corbel, mullion, spandrel, keystone navigationbinnacle, capstan, windlass, lodestar geologycordierite, breccia, obsidian, moraine horologyremontoir, tourbillon textilesselvedge, bobbin, distaff, heddle birdswhimbrel, avocet, chough, godwit abstract and technicalbulwark, touchstone, ironclad, foolproof, clockwork, crucible, foundry, imprimatur, etalon, jidoka, andon, pokayoke

Every string above returned HTTP 200 from the registry, which means registered. Nothing here is cherry-picked, in either direction. The count of available words in the full 731 is zero, so any word on the list would have served as an example.

An independent cross-check on the word count

Because "single English word" is a judgement call, the raw file supports a check that isn't. Intersect the 6,135 checked strings with the Unix system dictionary at /usr/share/dict/words, a fixed external 234,456-entry word list that had no part in building the candidate pool, and you get 724 strings that are dictionary words, of which 0 are available. The 7-word gap against 731 is loanwords and specialist terms the Unix list doesn't carry, among them tourbillon, jidoka, andon and pokayoke. Each one is in the raw file and each one is registered.

Two counting rules, chosen independently, both return zero available.

Invented words were registered too

Five pseudo-words were coined during the search specifically to escape the dictionary: poiesa, certra, telosia, provenire, fabricor. All five were already registered. These five were checked in an earlier probe batch and are recorded in the search's decision report rather than in the raw JSON file published here, which covers the main 6,135-candidate sweep. Treat them as a note, not as part of the headline count.

02The method, stated so it can be repeated

Availability was determined by RDAP, the registry's own structured lookup protocol, not by a registrar search box and not by DNS. A registrar search box is a sales surface and may report a name as unavailable when it is merely being upsold; DNS resolution proves a domain is in use but its absence proves nothing about registration. RDAP asks the registry directly.

the decision ruleverisign rdap
GET https://rdap.verisign.com/com/v1/domain/<name>.com

  HTTP 404  AVAILABLE    no registration record exists
  HTTP 200  REGISTERED   a registration record was returned
  anything else   retry with backoff, then record UNKNOWN

# unknown is never collapsed into available.
# a false "available" sends you to a registrar to be told no.
Requests were rate limited with exponential backoff. Collected 2026-07-30 and 2026-07-31.

Across 6,135 candidates the unknown count is 0. Every candidate resolved to a definite state, so no figure on this page depends on a decision about how to treat ambiguous cases.

The checker was validated with a negative control

When 52 consecutive ordinary words came back registered, the correct response was to doubt the instrument rather than the namespace. A checker with a broken parser, an inverted condition, or a rate-limit response being read as a hit would produce exactly that result. So four random strings went through the same code path.

negative control4 random strings
xqvbzrtplm.com   AVAILABLE       zzqxwvfjkd.com   AVAILABLE
bnmqxzvwlp.com   AVAILABLE       qqzzxxvvbb.com   AVAILABLE
All four returned available, establishing that the checker was not simply reporting everything as registered.

That control is the difference between a zero that means something and a zero that means the code is broken. Without it, the headline result would be indistinguishable from an instrument fault, and it would deserve to be discounted entirely.

What the raw file contains

The published file data/domain-search-raw.json holds four keys: available (2,369 strings), taken (3,766 strings), unknown (empty), and detail, a per-domain object carrying the HTTP status code. The detail block covers 6,068 of the 6,135 candidates. The remaining 67 are recorded in the two lists only, because an earlier batch stored the verdict without the status code. Their verdicts are included in every count on this page, and they change no result: of the 67, 16 are available and 51 are registered, and the 14 that are dictionary words (including affidavit, attest, ratify and imprimatur) are all in the registered group.

03Below seven characters, availability collapses

Grouping all 6,135 candidates by the character length of the second-level label gives the table below. Both figures in every row were counted directly from the raw file by string length; the percentage is the available count divided by the checked count in that row.

Availability rate by candidate length, 4 to 16 characters CHARS 0% 25% 50% 75% 100% CHECKED 4 characters: 0 of 97 available, 0.0 percent 4 0.0 97 5 characters: 4 of 269 available, 1.5 percent 5 1.5 269 6 characters: 52 of 446 available, 11.7 percent 6 11.7 446 7 characters: 848 of 1,471 available, 57.6 percent 7 57.6 1,471 8 characters: 196 of 713 available, 27.5 percent 8 27.5 713 9 characters: 304 of 942 available, 32.3 percent 9 32.3 942 10 characters: 291 of 807 available, 36.1 percent 10 36.1 807 11 characters: 244 of 587 available, 41.6 percent 11 41.6 587 12 characters: 134 of 315 available, 42.5 percent 12 42.5 315 13 characters: 121 of 227 available, 53.3 percent 13 53.3 227 14 characters: 90 of 142 available, 63.4 percent 14 63.4 142 15 characters: 52 of 72 available, 72.2 percent 15 72.2 72 16 characters: 22 of 31 available, 71.0 percent 16 71.0 31
Availability rate by length within this pool. Lengths 3, 17, 18 and 19 are omitted from the chart because fewer than 10 candidates were checked at each; they are present in the table below. The 7-character row is a generator artifact, explained in section 05.
All 6,135 candidates by second-level label length, RDAP, 2026-07-30 and 07-31
Characters Checked Available Registered Available %
31010.0
4970970.0
526942651.5
64465239411.7
71,47184862357.6
871319651727.5
994230463832.3
1080729151636.1
1158724434341.6
1231513418142.5
1322712110653.3
14142905263.4
1572522072.2
163122971.0
1786275.0
1853260.0
19220100.0
All6,1352,3693,76638.6

The short end of the table is the part worth quoting. Short candidates are the only rows where the pool's own bias works against the finding rather than for it: a name search that wants short names tries harder to find them, and it still returned 0 of 97 at four characters and 4 of 269 at five. Rows of 12 characters and above are inflated by generated strings and shouldn't be read as a statement about long .com names generally.

04Availability rises exactly as meaning falls

Sorting the same 6,135 candidates by how each string is constructed shows the relationship the length table only hints at. Each candidate was assigned to the first class it matched, in the order listed, so the four classes are mutually exclusive and their counts sum to 6,135.

All 6,135 candidates by construction class, first match wins
Class Rule applied Checked Available Available %
Single dictionary word the whole string is an entry in /usr/share/dict/words 724 0 0.0
Two-word compound splits into two dictionary entries of 3 letters or more 2,946 770 26.1
Suffixed with "ai" ends in ai and is neither of the above 429 288 67.1
Neither word nor compound everything else, in practice machine-generated syllable strings 2,036 1,311 64.4
All6,1352,36938.6

Every figure in that table was computed by us from the raw JSON using the stated rules, run against the macOS system word list. The classification rule is crude on purpose: it's arithmetic anyone can rerun, not a judgement about whether a name is good.

The most available names are the ones nobody wants

The two classes with the highest availability are the two with the least meaning. Strings in the last row are things like bleamfo, blixjea and bluxgoa, produced by a syllable generator, and roughly two thirds of them are free. That's not an opportunity. It's a definition: a string is available because no human wanted it, and the same property that made it available makes it useless as a name. Availability and usability move in opposite directions across this dataset, and the single-word row is where that relationship terminates at zero.

Read before quoting any figure above

05This is not a random sample of the .com namespace

The 6,135 candidates were not drawn at random. They were generated by a search for one product's brand name, which means the pool inherits every preference that search had. Any figure computed over the whole pool describes that search, not the .com namespace. The limits are these.

  • LIMITThe overall 38.6 percent is not a fact about .com. It is the availability rate inside one biased pool, and it appears on this page only as a row total. Anyone reporting it as the share of .com names that are free would be wrong, and this page would deserve to be discounted for having invited it.
  • LIMITThe length distribution is an artifact of the generator. The 7-character row holds 1,471 candidates, more than any other length, and 750 of its 848 available names fall in the "neither word nor compound" class: they are syllable-engine output. Read down the length column and you are partly reading the shape of the generator, not the shape of the registry.
  • LIMITWord families are clustered. The search kept returning to a handful of semantic neighbourhoods (gates, proof, audit, pipelines, answers), so related strings are heavily over-represented and are not independent of one another.
  • LIMITAvailability is a point-in-time reading. Registrations lapse and are created continuously. These are the registry's answers on 2026-07-30 and 2026-07-31, and nothing more.
  • LIMITAvailable does not mean usable. RDAP reports registration only. It says nothing about trademarks, about a live company operating under the name on another extension, or about a domain's prior use. Several names in the available list here were later killed by exactly those screens.
  • LIMITOne extension only. Nothing here was measured on .io, .ai, .co, .net, or any other extension, and nothing here should be extended to them.

Why the single-word result survives the bias

The bias runs the other way for that particular sample. The 731 words are ordinary dictionary entries drawn deliberately across 12 unrelated fields, not strings emitted by a generator, and the search had every incentive to find one that was free. A biased pool that wanted a short real word, and tried 731 of them across geology and birds and horology and textiles, is a stronger test of the single-word claim than a random sample would be, because the sample was selected to succeed and did not.

So the honest form of the headline is narrow, and it should be quoted narrowly: of 731 single English words tested against the .com registry on 2026-07-30 and 2026-07-31, zero were available. That isn't a claim that every English word is registered, which nobody here measured. It's a claim about 731 of them.

06Reproduce this page from the raw file

Both data files are published unmodified alongside this page. The per-domain file is /data/domain-search-raw.json and the summary is /data/domain-search-stats.json. Every derived figure on this page can be recomputed from the first file with the standard library alone.

recompute every figurepython 3, no dependencies
# load the published raw file
import json
d = json.load(open("domain-search-raw.json"))
av, tk = set(d["available"]), set(d["taken"])
print(len(av), len(tk), len(d["unknown"]))        # 2369 3766 0

# section 03: the length table
for n in sorted({len(s) for s in av | tk}):
    row = [s for s in av | tk if len(s) == n]
    print(n, len(row), sum(s in av for s in row))

# section 01 and 04: the dictionary cross-check
w  = {x.strip().lower() for x in open("/usr/share/dict/words")}
w3 = {x for x in w if len(x) >= 3}
single = {s for s in av | tk if s in w}
print(len(single), len(single & av))             # 724 0

# section 04: the compound class, first match wins
def split2(s):
    return any(s[:i] in w3 and s[i:] in w3 for i in range(3, len(s) - 2))
comp = {s for s in av | tk if s not in single and split2(s)}
print(len(comp), len(comp & av))                  # 2946 770
The word list path is the macOS and Linux system dictionary. On a system without it, any fixed English word list will reproduce the shape of the result, though the exact count of 724 depends on which list is used.

To re-run the measurement itself rather than the arithmetic, query the registry directly. Availability changes, so a fresh run will not reproduce these counts exactly; the single-word rows are the ones to watch.

re-run the measurementlive rdap
# one candidate, straight from the registry
curl -s -o /dev/null -w "%{http_code}\n" \
  https://rdap.verisign.com/com/v1/domain/keystone.com

# 404 means available, 200 means registered.
# rate limit yourself: this is a shared public endpoint.

07What this does and does not license you to conclude

Four statements are supported by the data on this page, and four commonly adjacent statements are not.

  • HOLDSOf 731 single English words tested on 2026-07-30 and 2026-07-31, zero were available as a .com. Two independent counting rules return zero.
  • HOLDSOf 81 candidates judged to be of premium brandable calibre in the same search, zero were available.
  • HOLDSWithin this pool, availability at four characters was 0 of 97 and at five characters 4 of 269.
  • HOLDSWithin this pool, the strings with the highest availability are the ones carrying the least meaning, at 64.4 percent for machine-generated syllable strings against 0.0 percent for dictionary words.
  • DOES NOTIt does not establish that 38.6 percent of .com names are available. That figure describes one biased pool and nothing else.
  • DOES NOTIt does not establish that every English word is registered as a .com. 731 words were tested. The English lexicon is far larger, and this measurement says nothing about the remainder.
  • DOES NOTIt does not establish that a registered domain is unobtainable. Many are parked and for sale. Availability and acquirability are different questions, and only the first was measured.
  • DOES NOTIt does not say anything about any extension other than .com, or about any date other than the two on which it was collected.

The practical consequence, stated without a promise attached

If you're choosing a .com by registration rather than purchase, the single-word option is not a long shot in this data, it is absent from it. What remained available in this pool was compounds and coinages. That is a constraint on the shape of the name you can register, and it is worth knowing before spending a week generating candidates that a registry lookup would have eliminated in an hour. It implies nothing whatsoever about whether any given name will attract visitors, which depends on things no registry can report.

More on how the domain engine that produced this data fits into the wider pipeline is on the home page, and the questions people ask about it are answered in the FAQ.

08Where this data came from

This measurement is a by-product, not a study. The pipeline described on this site includes a domain engine: a name generator, a local filter, and a live RDAP verifier. When the project needed its own domain, that engine was pointed at the problem and left to run across 24 search angles over two days. The 6,135 checks are the complete log of that run, published as collected.

Nothing was gathered for the purpose of producing a statistic, which is the reason the pool is biased and the reason this page spends a full section saying so. A dataset assembled to answer a question would have been sampled properly. This one was assembled to buy a domain.

Measured 2026-07-30 and 2026-07-31. Published 2026-07-31. Raw file: /data/domain-search-raw.json, 6,135 candidates, 0 unresolved.