ParseForge Scrapers

Library of Congress Scraper

parseforge/loc-gov-library-of-congress-scraper

Other

Scrapes Library of Congress items by format, search term, language, date range, or collection. Returns each item as a flat row with title, creator, date, description, and URL.

Run this scraper See the API call
Total users
2
Monthly active
1
Total runs
106
Bookmarked
0
Rating
Not rated yet
Last modified
9 days ago

Overview

ParseForge

Library of Congress Scraper

Scrape Library of Congress collections by format, keyword, language, date, or collection, up to a million items per run. Every item comes with its title, creator, date, description, and URL. No API key or login. Export to CSV, JSON, Excel, or XML.

The Library of Congress holds millions of books, photos, maps, manuscripts, audio recordings, and more, but its search interface is built for browsing one page at a time. This Actor reads the public search results directly, applies your filters as it goes, and returns each matching item in one flat row. No official API key, no rate-limit headaches, no manual copying.

Who uses it What they scrape Library of Congress for
Digital humanities researchers Building a corpus of primary sources for text analysis
Librarians and archivists Auditing holdings or compiling bibliographies by subject
Genealogists Finding historical newspapers, maps, and manuscripts about a family
Data journalists Pulling historical documents to fact-check or enrich a story
Educators Gathering public-domain images and texts for lesson materials

What it does

This Actor collects Library of Congress items by format, search term, language, date range, or collection, and returns each one as a flat row.

  • πŸ“š Format collections: books, audio, film, maps, manuscripts, newspapers, photos, sheet music, web archives, notated music, and curated collections.
  • πŸ”Ž Keyword search: free-text query across the chosen format, like the Library's own search box.
  • 🌐 Language filter: restrict results to a single language slug such as english, spanish, french, german, chinese, or arabic.
  • πŸ“… Date range: earliest and latest year, inclusive, to narrow results to a historical period.
  • πŸ—‚οΈ Collection filter: target a specific Library of Congress collection by its slug, like wpa-life-histories or civil-war-maps.
  • πŸ“¦ Bulk export: up to 1,000,000 items per run, delivered as CSV, JSON, Excel, or XML.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with Library of Congress data

πŸ“– Build a research corpus.

A digital humanities scholar runs the Actor with format=books and searchQuery="civil war diaries" to collect thousands of full bibliographic records for text mining.

πŸ—ΊοΈ Find historical maps.

A local historian sets format=maps and dateStart=1850, dateEnd=1900 to pull every map of their county from the Library's collection.

πŸ“° Trace a family story.

A genealogist searches newspapers for a surname and a date range, then exports the results to CSV to sort by location and date.

🎡 Gather public-domain sheet music.

A music teacher collects sheet music from before 1923 by setting format=sheet-music and dateEnd=1922, then downloads the PDFs from the returned URLs.

πŸ–ΌοΈ Source images for a publication.

A textbook editor searches photos and prints for a historical event, filters by language, and exports a clean list of titles, creators, and dates for permissions review.

Why choose this scraper

What you get
No API key The Library of Congress does not require registration for public search, and neither does this Actor.
Fixed schema Every item returns the same flat fields, so you can merge runs without cleaning.
Bulk by design Collect up to a million items in one run, not one page at a time.
Format-aware Choose from eleven format collections, from books to web archives.

How it compares

No other Store actor targets Library of Congress the same way, so the honest comparison is with the alternatives teams actually weigh.

Library of Congress Scraper Build it in-house By hand
Setup Run it now, zero config Days of engineering None, but hours per pull
When Library of Congress changes Maintained for you You fix it You re-learn the page
Proxies, retries, anti-bot Built in Your problem Browser only
Output Fixed JSON schema, CSV/Excel export Whatever you build Copy-paste
Cost Pay per result Engineering time Analyst hours

Configure the run

Drive the Actor from a format, a search term, a language, a date range, and a collection, alone or together, and filters run as each item is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
 "maxItems": 10,
 "format": "books",
 "searchQuery": "jazz"
}

A larger pull:

{
 "maxItems": 200,
 "format": "books",
 "searchQuery": "jazz"
}

Pricing

Pay-per-result: $0.01867 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $1.87
1,000 results $18.67
10,000 results $186.70

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Library of Congress Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Library of Congress through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/loc-gov-library-of-congress-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check your search term and filters. The Library of Congress search is exact on some fields. Try a broader keyword, remove the language or date filters, or switch to a different format.

Why are my results cut off at a lower number than maxItems?

The Actor stops when the Library's search returns no more matching items. If you expected more, broaden your search or remove some filters.

Why do some items have missing fields?

Not every Library of Congress record has every field. For example, some items have no creator or no date. The Actor returns empty values for missing fields.

Why did my run fail with a timeout?

Large searches can take time. Increase the Actor's timeout in the run settings, or reduce maxItems and run multiple smaller jobs.

How do I find the right collection slug?

Go to the Library of Congress collection page in your browser. The slug is the last part of the URL, for example loc.gov/collections/civil-war-maps has the slug civil-war-maps.

FAQ

Question Answer
Do I need a Library of Congress API key? No. This Actor reads the public search results directly, the same way a browser would. No registration or key is required.
What formats can I scrape? Books, audio recordings, film and video, maps, manuscripts, newspapers, photos and prints, sheet music, web archives, notated music, and curated collections.
Can I filter by language? Yes. Use the language input with a slug like english, spanish, french, german, chinese, or arabic to restrict results to one language.
Can I filter by date? Yes. Set dateStart and dateEnd as years, inclusive. For example, dateStart=1900 and dateEnd=1950 returns items dated between those years.
Can I target a specific Library of Congress collection? Yes. Use the collection input with a collection slug, such as wpa-life-histories or civil-war-maps. You can find slugs in the Library's collection URLs.
How many items can I get in one run? Up to 1,000,000 items per run. Set maxItems to the number you need.
What does each result include? Each item returns a flat row with fields like title, creator, date, description, and URL. The exact fields are shown in the sample output.
What export formats are supported? CSV, JSON, Excel, and XML. Choose the format in the Actor's output settings.
Is this legal? Yes. The Library of Congress makes its catalog and digital collections publicly available. This Actor only reads public search results and does not bypass any access controls.
Can I schedule this Actor to run regularly? Yes. Use Apify's scheduler to run it daily, weekly, or on any cron schedule, and have new results delivered automatically.

Related actors

Browse the full ParseForge collection for more scrapers.

πŸ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Library of Congress. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
maxItems integer How many items to collect per run. 10
format string (11 options) Which Library of Congress format collection to search. books
searchQuery string Free-text keyword search across the chosen format. jazz
language string Restrict to a single language slug (e.g. english, spanish, french, german, chinese, arabic). not set
dateStart integer Earliest year (inclusive). not set
dateEnd integer Latest year (inclusive). not set
collection string Restrict to a specific Library of Congress collection slug (e.g. wpa-life-histories, civil-war-maps). not set

Pricing

from $14.00 per 1,000 results

Charged forWhat it isPrice each
Result Item Charged once per result collected. $0.014 to $0.01867

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST Β· run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~loc-gov-library-of-congress-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run Library of Congress Scraper on Apify All scrapers