Downloads
The list is plain text, 1 word a line, sorted. Its files live on Hugging Face; the subsets below are built from them with this site.
From the dataset
-
The list
data/merged_valid_words.txt: 345,162 words, about 4 MB. -
Every word's record
data/merged_valid_dict.json: how each word got on the list, about 280 MB. Fields vary by how the word came in; the dataset's card describes them. -
The candidates
data/merged_invalid_words.txt: 9,308,837 strings not on the list, about 90 MB. The nightly run checks about 1,000 of them a night. -
Word-game files
latest/brrrdle/: answers and allowed guesses for lengths 2 to 35, in JSON.
Subsets
-
Without the synthetic engine
without-synthetic.txt: 313,919 words, 3.4 MB. Every entry except those the synthetic engine made. -
Lengths 2 to 45
lengths-2-to-45.txt: 345,157 words, 3.8 MB. The bounds of tournament word lists. The full list breaks both on purpose: it holds 1-letter words and words longer than 45 letters.
Load it in code
Each prints the number of words: 345,162 for the list this site was built from.
huggingface_hubfrom huggingface_hub import hf_hub_download
path = hf_hub_download(
"ryanjosephkamp/english-openlist",
"data/merged_valid_words.txt",
repo_type="dataset",
)
words = open(path, encoding="utf-8").read().split()
print(len(words))
const url =
"https://huggingface.co/datasets/ryanjosephkamp/english-openlist/resolve/main/data/merged_valid_words.txt";
const words = (await (await fetch(url)).text()).split("\n").filter(Boolean);
console.log(words.length);
curl -sL -o merged_valid_words.txt \
https://huggingface.co/datasets/ryanjosephkamp/english-openlist/resolve/main/data/merged_valid_words.txt
wc -l < merged_valid_words.txt
The list changes when the nightly run publishes. To pin a version, put a revision of the dataset in place of
main in a link. The code that builds and checks the list is
on GitHub.