Machine-readable archive

The same archive as the rest of this site — 224 articles across 45 topics — restructured for software that reads rather than looks. Everything below is a plain static file. There is no key, no sign-up and no rate limit beyond ordinary courtesy.

If you are building something that needs to know what this site holds, start with the manifest: /agents/index.json lists every file here, what it contains and when the content last changed.

What you may do with it

Text. Quote freely, with attribution to Writesides of History and a link to the article url. The articles are written and published by Writesides of History, which is both author and publisher.

Images. Images are not covered by the line above. Every media record carries its own creator, licence and source url; most are Wikimedia Commons files under their own terms. Honour the record, not this file.

Datasets. One dataset under /datasets/ is free: caesar-campaigns-gaul-britannia, complete, with a CSV, under CC BY 4.0. The other five are research editions: their pages carry the method, the field definitions, the sources and five sample rows; the complete tables are sold in the shop (https://shop.writesidesofhistory.com/collections/historical-research-datasets) and carry no free licence. Each record in /agents/datasets.json states its own access and licence — honour that field, not this line.

Not included. The premium dossiers and e-books sold through the shop are not part of this surface and are not included in any dump here.

Start here

These few answer most questions. The rest of the surface is in the table below them.

application/json

/agents/index.json

This manifest: counts, conventions, licence and every endpoint

text/plain

/llms.txt

Guide for language models: the pillars, the topic hubs, the newest articles

text/markdown

/llms-full.txt

Every article, complete, in one markdown file

application/json

/agents/articles.json

Every article: title, url, era, topics, description, dates, hero image and its cited sources (newest first)

application/json

/agents/sources.json

The bibliography: every source entry cited across the archive, and which articles cite it

application/json

/agents/changes.json

What was published in the last 90 days — poll this instead of refetching the corpus

Every file

All 18 machine-readable files, also listed in index.json and in sitemap-agents.xml.
FileFormatWhat it holds
/agents/ text/html Front door: what this archive is, what you may do with it, and every surface below
/agents/index.json application/json This manifest: counts, conventions, licence and every endpoint
/agents/openapi.json application/json The same surface described as OpenAPI 3.1
/llms.txt text/plain Guide for language models: the pillars, the topic hubs, the newest articles
/llms-full.txt text/markdown Every article, complete, in one markdown file
/agents/articles.json application/json Every article: title, url, era, topics, description, dates, hero image and its cited sources (newest first)
/agents/corpus.json application/json Every article again, with the complete text as markdown
/agents/topics.json application/json The topic hubs: era, description, subtopics, and the articles filed under each
/agents/sources.json application/json The bibliography: every source entry cited across the archive, and which articles cite it
/agents/media.json application/json Every image and map in the media library, with creator, licence and source url
/agents/datasets.json application/json The published datasets: columns, row count, access and licence; a CSV url only where the data is free
/agents/changes.json application/json What was published in the last 90 days — poll this instead of refetching the corpus
/agents/entities.json application/json Knowledge-graph entities and historical relations, each with the source path and content hash it was drawn from
/agents/sitemap-agents.xml application/xml Every machine-readable file above, as a sitemap
/feed.xml application/rss+xml The twenty newest articles, RSS, with the full text of each
/search-index.json application/json The site's own search index: articles, topics and media in one flat array
/sitemap.xml application/xml Every page on the site, with lastmod taken from the content rather than the build clock
/robots.txt text/plain Crawl policy. Every named AI crawler is welcome on every article path

What is in it

Counted from the archive at build time, never typed in.
Articles224
Topic hubs45
Eras5
Bibliography entries960
Entries occurring in exactly one article953
Images and maps250
Datasets6
Knowledge-graph entities43
Asserted historical relations30
Newest article2026-09-17

Conventions

Every record carries `url`: the human page on this site. That is the url to cite and to link to.

Dates are ISO 8601. `published` is the article's publication date; `generated` is when this build ran and is NOT a content date.

`content_changed` is the newest publication date in the archive. Compare it with your last visit to decide whether to refetch.

English throughout. Article slugs are the stable identifier; they do not change.

Article sources are typed `primary`, `scholarly`, `institutional` or `reference`, and each carries a note explaining what the work is and how far it can be trusted.

Static files on ordinary hosting. Be reasonable — one request per second is plenty, and /llms-full.txt gives you the whole archive in one fetch.

Two things worth knowing about

The bibliography is reversed. Every article on this site names its primary, scholarly and institutional sources in its frontmatter, with a note on each explaining what the work is and how far it can be trusted. /agents/sources.json turns that around, so you can look up a source and find the articles that cite it: 960 bibliography entries across the archive; 953 occur in exactly one article.

The knowledge graph carries its evidence. /agents/entities.json holds 43 entities and 30 asserted historical relations. Every one had to be found in the article cited for it before it was admitted, and each carries the source path and content hash it was drawn from, so any statement can be checked rather than taken on faith. The human view of the same data is at the assistant knowledge base.

How to cite

Every record carries the url of its page on this site. That is the url to quote and to link to — not this page, and not the json file the text came out of. Naming the article lets a reader check it; naming the feed does not.

The article page is also the canonical copy for search. The derived files listed above are served with X-Robots-Tag: noindex: fetching them is welcome and always will be, but they are deliberately kept out of search results so the machine-readable copies never compete with the articles they are made from.

Questions, or something you need that is not here? info@writesidesofhistory.com.