fshy

Home

Chronicling America

loc.gov · 2 records in Data APIs, Storage · JSON

Records 2

www.loc.gov/apis/json-and-yaml/Historic newspaper API and bulk OCRdata-apis/chronicling-americaJSONcomparereport an error

Free allowance
Free with no API key or authentication: the loc.gov JSON/YAML API at 20 requests per minute, and bulk OCR downloads of every digitized newspaper batch as one tar.bz2 file each.
Verdict
caveatusable, with a named limit or an unprobed read path
Cost
free tier
Identity
anonymousno card, no phone
Binding limit
request-rate20 requests per minute on the JSON/YAML API, 1 hour block if exceeded; 150 requests per minute on text services, 1 hour block if exceeded
Evidence
documented14 sources; a first-party page was read and the sentence quoted
Freshness
stale on 2026-12-03checked 2026-11-02 (live); stale on 2026-12-03
Free tierFree with no API key or authentication: the loc.gov JSON/YAML API at 20 requests per minute, and bulk OCR downloads of every digitized newspaper batch as one tar.bz2 file each.
unit requests; metered on request-count; Going over the rate blocks the caller for 1 hour. Text services allow 150 requests per minute. Under heavy load the limits drop and a 429 or a CAPTCHA page can appear below the stated rate. The collection holds over 21 million newspaper pages.
Pricenone stated
Limits
  • request-rate (binding) 20 requests per minute on the JSON/YAML API, 1 hour block if exceeded source
  • request-rate (binding) 150 requests per minute on text services, 1 hour block if exceeded source
  • per-object-cap 100,000 items per query; 1,000 items per page recommended source
  • per-ip-shaping a bot challenge: a keyless GET to the collection JSON endpoint answered HTTP 403 with a Cloudflare challenge page from a residential ISP address
Bindingrequest-rate 20 requests a minute is the documented ceiling, and the Cloudflare challenge on the JSON endpoints can bind first for a plain script; the bulk OCR files carry no stated limit.
Identityanonymous No account and no key for the API; the bulk OCR files and a ranged read of one answered with no credentials.
Egressbulk OCR files download from chroniclingamerica.loc.gov/data/ocr with no stated transfer price or quota; ranged reads are honoured
Per-object capone tar.bz2 of OCR text per batch; the batch fu_eleven_ver02 is 56026786 bytes
Retentionnot applicable: a permanent collection of newspaper pages published through 1963
Interfacerest JSON or YAML over HTTPS from www.loc.gov by adding fo=json to collection, search, item and resource URLs; text, image (IIIF) and streaming microservices; bulk OCR as tar.bz2 files with a sha256 checksum each, listed in a CSV, a TXT and a JSON version of the datasets table
Toolingany HTTP client; the Library publishes Jupyter notebooks for the Chronicling America collection
Composes withPage-level OCR text and metadata of historic US newspapers: facet or date-slice a query to stay under 100,000 items, or take the bulk OCR tarballs and skip the API.
ReliabilityA keyless GET of the collection JSON from a residential ISP address answered HTTP 403 with a Cloudflare 'Just a moment' challenge, while the documentation page answered 200 and the bulk OCR host answered 200 and 206; the same JSON was readable through a cached page-reader path. The limits fall under heavy load.
NotesStorage: no storage limit is stated; the bulk OCR files are meant to be downloaded and kept. Bulk path: tar.bz2 OCR files, one per batch, at chroniclingamerica.loc.gov/data/ocr, each with a sha256 checksum, listed in the datasets table (CSV, TXT and JSON versions); the JSON API is the route for metadata and for slices of a query. This is the read API; the deposit question has its own record in storage.
Evidence notedocumented Limits, paging caps and the no-key statement are read from first-party pages; the bulk file size and range support were measured, and the JSON endpoints were blocked by a challenge to a direct script, so the API throughput is not measured.
Parsed numbers
  • has-free-tier 1
  • request-rate 20 requests / minute
  • request-rate 150 requests / minute
Evidence 14
datesourcewhat it proved
2026-11-02www.loc.gov/apis/json-and-yaml/working-within-limits/the API needs no key or authentication
2026-11-02www.loc.gov/apis/json-and-yaml/working-within-limits/the JSON/YAML API allows 20 requests per minute
2026-11-02www.loc.gov/apis/json-and-yaml/working-within-limits/exceeding the rate blocks the caller for 1 hour
2026-11-02www.loc.gov/apis/json-and-yaml/working-within-limits/under heavy load the limits drop and 429 or CAPTCHA answers appear below the stated rates
2026-11-02www.loc.gov/apis/json-and-yaml/working-within-limits/a query is capped at 100,000 items
2026-11-02www.loc.gov/apis/json-and-yaml/working-within-limits/1,000 items per page is the recommended maximum
2026-11-02www.loc.gov/collections/chronicling-america/datasets/bulk OCR data is offered for research and external services
2026-11-02www.loc.gov/collections/chronicling-america/datasets/a batch row lists its tar.bz2, a sha256 checksum and its size
2026-11-02www.loc.gov/ndnp/migration/computational users keep bulk OCR and are pointed to the loc.gov API
2026-11-02www.loc.gov/ndnp/migration/the collection holds over 21 million newspaper pages
2026-11-02www.loc.gov/collections/chronicling-america/about-this-collethe newspapers are in the public domain or have no known restriction
2026-11-02probe: https://chroniclingamerica.loc.gov/data/ocr/fu_eleven_ver02.tar.bz2a HEAD of one bulk OCR file answered HTTP 200 with its size and no credentials
2026-11-02probe: https://chroniclingamerica.loc.gov/data/ocr/fu_eleven_ver02.tar.bz2a ranged read of the first 1,024 bytes answered HTTP 206 of 56026786 bytes
2026-11-02probe: https://www.loc.gov/collections/chronicling-america/?fo=json&at=pagination&c=1a keyless GET of the collection JSON answered HTTP 403 with a Cloudflare challenge page

www.loc.gov/programs/national-digital-newspaper-program/aboustorage/library-of-congress-chronicling-america-ndnpJSONcomparereport an error

Free allowance
Not a deposit surface for individuals.
Verdict
fails: quotathe free allowance is too small to matter
Cost
not stated
Identity
email?placeholder, not evidence; card unknown, phone unknown
Binding limit
noneno named constraint binds
Evidence
reported1 source; a third party said so
Freshness
stale on 2026-11-05checked 2026-10-21 (inherited); stale on 2026-11-05
Free tierNot a deposit surface for individuals. LoC acquires through NDNP state-partner awards and its own collections; there is no open upload endpoint, no account system, and no quota to consume.…
unit none; metered on none
Pricenone stated
Identityemail (placeholder) not published
Egressnot recorded
Interfaceunknown
Toolingnot recorded
Evidence 1
datesourcewhat it proved
2026-10-21www.loc.gov/programs/national-digital-newspaper-program/abouthe text of Free tier, above
More fields 1
dead end{"failure_class": "quota","why": "Not a deposit surface for individuals. LoC acquires through NDNP state-partner awards and its own collections; there is no open upload endpoint, no account system, and no quota to consume.…","retry_when": null,"first_recorded": "2026-10-21"}
Unknown values 7
  • chaining: no value was recorded for this field
  • egress terms: no value was recorded for this field
  • interface: the access interface was not established
  • per object cap notes: no value was recorded for this field
  • per object cap stated: no value was recorded for this field
  • retention stated: no value was recorded for this field
  • tooling: no value was recorded for this field