Public data reference
Developer data reference
Choose an immutable release for reproducible analysis, or a documented rolling feed when your application should keep up with completed-puzzle measurements.
Choose the right source
Immutable research releases
Best for notebooks, articles, charts, validation, and any result another person should be able to reproduce later. Every file is manifest-listed and SHA-256 checksummed.
Rolling public resources
Best for readers, dashboards, and update notifications. Rolling resources may add fields; clients should ignore fields they do not understand and respect the response cache headers.
Immutable release files
The canonical human page is https://www.fiveletterwords.io/data/releases/v2026-09-01/. The manifest identifies every downloadable file, media type, byte size, role, license, and SHA-256 checksum.
curl -L https://www.fiveletterwords.io/data/releases/v2026-09-01/manifest.json- Stability: a published release ID is never repointed. New data receives a new release ID.
- Integrity: verify a downloaded file against the manifest's SHA-256 value.
- Cross-origin reads: manifest-listed artifacts return
Access-Control-Allow-Origin: *. - Caching: release artifacts return a one-year immutable cache policy.
- Description: each artifact's HTTP
Linkheader points back to its human release page withrel="describedby". - Licensing: derived statistics and documentation are CC BY 4.0. The preserved answer-pool input, where present, keeps its upstream source terms.
Current coherent data snapshot
/data/current/manifest.json describes a mutable, internally coherent snapshot built only from answers that are complete worldwide. Fetch the manifest first, then use one or more of these current resources:
/data/current/answer-history-summary.csvor JSON/data/current/answer-repeats.csvor JSON — answer-word-free totals, year summaries, and gap bands/data/current/letter-frequency.csvor JSON/data/current/puzzle-difficulty.csvor JSON
Every representation in a successful refresh carries the same snapshot identity. JSON bodies expose snapshot_id and data_through; every current response also sends X-Data-Snapshot-ID and X-Data-Through. The manifest lists absolute content URLs and record counts. Mutable snapshots use ETags rather than fixed checksums.
Responses permit cross-origin reads, are CC BY 4.0, and require revalidation after five minutes. If the completed-date sequence has a gap, the whole current snapshot fails closed with 503 and no-store rather than publishing mismatched dates. Compare snapshot IDs when combining files. Use an immutable release, not /data/current/, when a citation must reproduce the same bytes later.
Fetch JSON in a browser
const response = await fetch('https://www.fiveletterwords.io/data/current/manifest.json');
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const manifest = await response.json();
console.log(manifest.snapshot_id, manifest.answer_history_data_through);
Download and parse CSV
curl --fail --location --remote-name \
https://www.fiveletterwords.io/data/current/answer-repeats.csv
import csv
with open('answer-repeats.csv', newline='', encoding='utf-8') as source:
rows = list(csv.DictReader(source))
Completed-puzzle and repeat embeds
Each worldwide-completed puzzle has one scoped, answer-word-free solver row at /data/wordle/<n>/solver-pressure.csv and a matching 1200×630 SVG at /embed/wordle/<n>/solver-pressure.svg. Live, future and unknown puzzle numbers return 404. The CSV includes its snapshot_id and data_through; both responses also carry the standard current-snapshot headers.
The living repeat chart is /embed/wordle-answer-repeats.svg. It is generated from answer-repeats.csv, contains only aggregate annual counts, and can be embedded cross-origin. The controlled repeat-word/date evidence remains on the records and repeats guide.
Spoiler-safe difficulty JSON Feed
/feeds/wordle-data.json is a JSON Feed 1.1 document containing recent completed-puzzle model measurements. Each item's _measurements object includes the puzzle number, date, solver-pressure percentile and label, solver turns where available, trap-family size, and repeated-letter flag.
The feed intentionally omits answer words. Solver pressure is a repeatable model comparison within the recorded archive, not a measurement of average human difficulty.
curl -L https://www.fiveletterwords.io/feeds/wordle-data.jsonResearch update Atom feed
/feeds/research.atom announces durable research pages and data publications. Use it to discover updates; use the linked immutable release page and manifest as the source for a reproducible calculation.
Wordle Observatory rolling and monthly data
The Observatory publishes four scoped CSVs from one privacy-thresholded, opt-in aggregate:
/data/observatory/overall.csv— sample size, observed-puzzle coverage and overall metrics./data/observatory/result-distribution.csv— 1–6 and X, with hidden values labelledsuppressedrather than filled with zero./data/observatory/openers.csv— only opener rows that clear the published minimum./data/observatory/puzzles.csv— the latest 50 qualifying, worldwide-completed puzzle rows.
/data/observatory/snapshot.json is the coherent JSON representation used by the monthly publisher. Responses include X-Observatory-Snapshot-ID, X-Observatory-Generated-At, X-Observatory-Data-Through, X-Observatory-Minimum-Sample, the self-selection flag, CORS, ETag, licence and method links. A storage failure returns 503 and no-store.
Immutable cumulative checkpoints live at /data/observatory/YYYY-MM/manifest.json after the named month has closed in UTC−12. Each directory freezes the CSV, JSON, SVG, methods, licence, citation and SHA-256 checksums. The older /data/observatory-aggregates.csv puzzle-only schema remains as a compatibility alias.
curl -L https://www.fiveletterwords.io/data/observatory/snapshot.jsonRead the visible Observatory method and self-selection caveat before using any figure. These submitted games do not represent all Wordle players, and solver pressure is a separate model comparison.
Live chart embeds and downloads
The public cards can be embedded as ordinary images. They are convenience views, not a substitute for the source data.
<img src="https://www.fiveletterwords.io/embed/difficulty.svg" alt="Completed Wordle solver-pressure percentile distribution">/embed/difficulty.png is the downloadable raster companion. Both formats expose the same X-Data-Snapshot-ID and X-Data-Through headers.<img src="https://www.fiveletterwords.io/embed/opener/crane.svg" alt="CRANE Wordle opener benchmark"><img src="https://www.fiveletterwords.io/data/observatory/result-distribution.svg" alt="Thresholded result distribution for the self-selected Wordle Observatory sample"><img src="https://www.fiveletterwords.io/data/observatory/puzzle-difficulty.svg" alt="Recent qualifying felt-difficulty averages from opt-in Observatory submissions">Replace crane with a valid five-letter accepted guess that has a published opener benchmark.
Versioned Wordle difficulty study
The What makes a Wordle hard? article has an immutable v1 packet at /data/wordle-difficulty-study/v1/manifest.json. It includes an answer-word-free analysis table, univariate associations, adjusted coefficients, group contrasts, JSON results, methods, reusable SVG/PNG, citation and licence files.
The study is a descriptive analysis of a pinned example solver. It is not a representative human-performance dataset and must not be described causally.
Versioned Echoes pronunciation research
The Echoes pronunciation-graph study has its own immutable v1 research packet at /data/echoes-phoneme-graph/v1/manifest.json. Its bounded summary, CAT-neighbourhood sample, chart, methods, citation and license files are supported research artifacts.
That packet is deliberately not the full internal game graph. The static graph used to run Echoes remains an implementation detail outside this compatibility contract.
Compatibility and responsible use
- Cache rolling responses for at least the lifetime stated in
Cache-Control; hourly polling is sufficient for the public feeds. - Treat added JSON fields or CSV columns as compatible changes and ignore unknown fields.
- A removed field or changed meaning requires a new documented path or version.
- Check the HTTP status and content type before parsing. Do not turn a transient error page into data.
- Attribute derived research under CC BY 4.0 and preserve the separate upstream-license boundary.
The private /api/ routes are application implementation details, not a supported public API. Static game implementation files—including the internal pronunciation/phoneme graph—are also outside this compatibility contract and may change without notice.
Questions and corrections
For a missing field, a reproducibility problem, or a proposed public integration, email [email protected]. The About page identifies the creator and explains the project's methods.