Chronicling America (loc.gov) API
Free Library of Congress newspaper API with no key: full-text search across millions of digitised historic US newspaper pages, with OCR text and page images. Tested example included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the Chronicling America (loc.gov) API?
Chronicling America is the Library of Congress's free, key-free API for searching digitised historic American newspapers. It provides full-text search across millions of pages from 1690 onward, returning OCR text, page images and bibliographic metadata for each match.
This is one of the great open cultural datasets: millions of pages of American newspapers, digitised and OCR'd by the Library of Congress and the National Endowment for the Humanities, all searchable and all in the public domain. A single query for "abraham lincoln" returns over 400,000 matching pages, spanning contemporaneous reporting through a century of retrospectives.
One important operational note: the old `chroniclingamerica.loc.gov` host has been retired and now redirects to the unified `loc.gov` collections API. If you are following an older tutorial, that is why the endpoints have changed. The modern interface uses `fo=json` to request JSON and, critically, `at=` to select which top-level attributes you want — without it the response includes the full page-furniture payload and runs to nearly two megabytes for a single result.
Quick facts
- Base URL
https://www.loc.gov/collections/chronicling-america- Authentication
- No API key or account. Content is in the public domain as US federal government work and expired-copyright material.
- Rate limit
- Throttled per IP; the Library asks for a crawl delay between requests on bulk jobs. Burst traffic gets 429s.
- Pricing
- Free. Public domain.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Chronicling America (loc.gov) API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Search historic newspapers for Abraham Lincoln
GET https://www.loc.gov/collections/chronicling-america/?q=abraham+lincoln&fo=json&c=1&at=results,pagination
curl 'https://www.loc.gov/collections/chronicling-america/?q=abraham+lincoln&fo=json&c=1&at=results,pagination'const res = await fetch("https://www.loc.gov/collections/chronicling-america/?q=abraham+lincoln&fo=json&c=1&at=results,pagination");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://www.loc.gov/collections/chronicling-america/?q=abraham+lincoln&fo=json&c=1&at=results,pagination", timeout=20)
res.raise_for_status()
print(res.json()){
"pagination": {
"current": 1,
"first": null,
"from": 1,
"last": "https://www.loc.gov/collections/chronicling-america/?c=1&dl=page&fo=json&q=abraham+lincoln&sp=4",
"next": "https://www.loc.gov/collections/chronicling-america/?c=1&dl=page&fo=json&q=abraham+lincoln&sp=2",
"of": 407983,
"page_list": [
{
"number": 1,
"url": null
},
{
"number": 2,
"url": "https://www.loc.gov/collections/chronicling-america/?c=1&dl=page&fo=json&q=abraham+lincoln&sp=2"
},
{
"number": 3,
"url": "https://www.loc.gov/collections/chronicling-america/?c=1&dl=page&fo=json&q=abraham+lincoln&sp=3"
},
{
"number": "...",
"url": "https://www.loc.gov/collections/chronicling-america/?c=1&dl=page&fo=json&q=abraham+lincoln&sp=4"
}
],
"perpage": 1,
"perpage_options": [
20,
40,
80,
160
],
"previous": null,
"results": "1 - 1",
"to": 1,
"total": 407983
},
"results": [
{
"access_restricted": false,
"aka": [
"http://www.loc.gov/resource/sn89081128/1915-02-10/ed-1/?sp=15"
],
"batch": [
"mnhi_cadillac_ver01"
],
"campaigns": [],
"composite_location": [
"0/united states/",
"1/united states/minnesota/",
"2/united states/minnesota/brown/",
"3/united states/minnesota/brown/new ulm/"
],
"contributor": [
"minnesota historical society; saint paul, mn"
],
"date": "1915-02-10",
"dates": [
"191Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
q | query | Optional | Full-text search across OCR'd page content. abraham lincoln |
fo | query | Required | Output format. `json` is required — the default is HTML. json |
at | query | Optional | Which top-level attributes to return. Use it: without it the response carries the entire page payload and can approach two megabytes. results,pagination |
c | query | Optional | Results per page. 1 |
sp | query | Optional | Page number within the result set. 2 |
dates | query | Optional | Restrict to a date range, as `YYYY/YYYY`. 1860/1865 |
state | query | Optional | Restrict to newspapers published in a given US state. Virginia |
Response fields
pagination.ofinteger- Total matching pages across the whole archive — 407,983 for the example query.
pagination.next / laststring- Complete URLs for the next and final pages. Follow them rather than constructing your own.
pagination.current / perpageinteger- Where you are in the result set and how many items per page.
results[].titlestring- Newspaper title for the matching page.
results[].datestring- Publication date of the issue.
results[].image_urlarray- Page scan images at several resolutions.
results[].id / urlstring- Canonical identifier and human-facing page URL on loc.gov.
What you can build with the Chronicling America (loc.gov) API
- Research how a historical event was reported as it happened
- Build a genealogy tool that surfaces family names in period newspapers
- Trace the appearance and spread of a word or phrase over decades
- Source public domain historic imagery for publication
Common errors and how to fix them
308 redirect
The old `chroniclingamerica.loc.gov` host is retired.
Fix: Use `www.loc.gov/collections/chronicling-america/`. Older tutorials still reference the retired host.
HTML instead of JSON
The `fo` parameter was omitted.
Fix: Add `fo=json` to every request — HTML is the default.
Enormous response
No `at` parameter was supplied.
Fix: Add `at=results,pagination`. Without it a single-result query returns close to two megabytes of page furniture.
429
Too many requests too quickly.
Fix: The Library throttles by IP and asks for a crawl delay on bulk jobs. Space requests out and cache results.
Chronicling America (loc.gov) API — frequently asked questions
Is the Chronicling America API free?
Yes, free with no API key. The content is public domain — US federal government work combined with expired-copyright newspaper material — so it can be reused freely.
Why does the old chroniclingamerica.loc.gov URL not work?
That host was retired and now redirects to the unified loc.gov collections API. Older tutorials still reference it, which is the usual source of confusion. Use `www.loc.gov/collections/chronicling-america/` instead.
Why is the response so large?
Because by default the API returns the entire page payload, including navigation and facet data — nearly two megabytes even for a single result. Add `at=results,pagination` to select only the attributes you actually need and the response drops to a few kilobytes.
How far back does the archive go?
To 1690, though coverage is much denser from the mid-nineteenth century onward. The `dates` parameter restricts a search to a specific year range.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Word Counter
Count words, characters, sentences, paragraphs and estimated reading time instantly. Free online word counter for essays, blogs and social media.
Strip HTML Tags
Remove all HTML tags and convert markup to clean plain text. Decode HTML entities and keep line breaks for block elements like paragraphs and headings.
Chronicling America (loc.gov) is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.