ParseForge Scrapers

Project Gutenberg Books Scraper

parseforge/gutendex-project-gutenberg-books-scraper

News & mediaDeveloper tools

Scrapes Project Gutenberg catalog for book metadata, subjects, bookshelves, and download links. Filter by search query, topic, language, author year, or book ID.

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

Overview

ParseForge

Project Gutenberg Books Scraper

Scrape Project Gutenberg books by title, author, topic, or language, up to a million per run. Every book comes with its metadata, subjects, bookshelves, and download links. No login or API key. Export to CSV, JSON, Excel, or XML.

Project Gutenberg's official catalog has no bulk export and no API for filtered searches. This reads the public catalog directly, filtered by title, author, topic, language, or author years, and returns each match in one fixed schema.

Who uses it What they scrape Project Gutenberg for
Digital librarians Building a local catalog of public domain titles for a library system
Literary researchers Gathering all works by an author or within a topic for corpus analysis
Book app developers Populating a reading app with metadata and download links for free ebooks
Educators Compiling reading lists by language, topic, or historical period

What it does

This Actor collects Project Gutenberg book records by search query, topic, language, author year range, or specific book IDs, and returns each one as a flat row.

  • ๐Ÿ”Ž Catalog search: match titles and author names with a keyword query, multiple words are AND-combined.
  • ๐ŸŒ Language filter: restrict results to one of 20 languages using ISO 639-1 codes.
  • ๐Ÿ“š Topic filter: match subjects or bookshelves like children, science, philosophy, history, fiction, or religion.
  • ๐Ÿ“… Author year range: filter by author birth or death year, use negatives for BCE.
  • ๐Ÿ†” Direct lookup: fetch specific titles by their Project Gutenberg book ID, overrides other filters.

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

What you can do with Project Gutenberg data

๐Ÿ“– Build a digital library catalog.

A librarian runs the Actor with a topic filter like 'science' and language 'en' to gather metadata for a curated collection.

๐Ÿ”ฌ Analyze literary trends.

A researcher collects all books by authors born between 1800 and 1900 to study 19th-century fiction.

๐Ÿ“ฑ Populate a reading app.

A developer fetches book IDs for classic titles to include download links and metadata in their app.

๐ŸŒ Create multilingual reading lists.

An educator filters by language 'es' and topic 'children' to compile Spanish children's books for a classroom.

Why choose this scraper

What you get
No API key Reads the public catalog directly, no registration or rate limits
70K+ books Access the full Project Gutenberg collection of free public domain ebooks
Fixed schema Every book returns the same flat fields for easy processing
Flexible filters Combine search, topic, language, and author year to narrow results
Scalable Collect up to a million books per run

How it compares

This Actor and the listed competitor both scrape Project Gutenberg, but they differ in filter options and output details.

Feature ParseForge Project Gutenberg Scraper
Search by title or author Yes Yes
Filter by topic Yes Not listed
Filter by language Yes Not listed
Filter by author year range Yes Not listed
Lookup by book ID Yes Not listed
Download links (EPUB, Kindle, TXT, HTML) Yes Yes

Configure the run

Drive the Actor from search queries, topics, languages, author year ranges, and specific book IDs, alone or together, and filters run as each book is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "maxItems": 10,
  "searchQuery": "shakespeare"
}

A larger pull:

{
  "maxItems": 200,
  "searchQuery": "shakespeare"
}

Pricing

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

Results collected Approximate cost
100 results $2.10
1,000 results $21.00
10,000 results $210.00

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 Project Gutenberg Books 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 Project Gutenberg 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/gutendex-project-gutenberg-books-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 filters. If you used book IDs, they override other filters. Otherwise, try broadening your search query or removing some filters.

Why did the run stop before reaching my maximum books?

The Actor stops when there are no more matching books in the catalog. Try adjusting your filters to get more results.

How do I search for a phrase with multiple words?

Join the words with %20 in the search query field. For example, 'sherlock%20holmes' will match books with both words.

Can I get the full text of the books?

No, this Actor returns metadata and download links, not the full text. You can use the download links to fetch the text separately.

Why is my language filter not working?

Make sure you use the correct ISO 639-1 code, such as 'en' for English or 'es' for Spanish. The select field lists all supported codes.

FAQ

Question Answer
Do I need an API key or login? No. This Actor reads the public Project Gutenberg catalog directly, so no registration or authentication is required.
How many books can I scrape in one run? You can set the maximum books field up to 1,000,000. The Actor will stop after collecting that many matches.
Can I search by author name? Yes. Use the search query field with the author's name, and it will match against both titles and author names.
What languages are supported? The language filter includes 20 languages: English, Spanish, French, German, Italian, Portuguese, Russian, Chinese, Japanese, Arabic, Dutch, Latin, Greek, Finnish, Swedish, Polish, Hungarian, Tagalog, Catalan, and Czech.
How do I get a specific book? Use the book IDs field and enter the Project Gutenberg ID, for example 1342 for Pride and Prejudice. This overrides other filters.
What is the topic filter? It matches against subjects and bookshelves in the catalog, such as children, science, philosophy, history, fiction, or religion.
Can I filter by author birth or death year? Yes. Use author year start and end fields. Use negative numbers for BCE dates.
What output formats are supported? You can export the results to CSV, JSON, Excel, or XML from the Apify dataset.
Is the data up to date? The Actor reads the live Project Gutenberg catalog at the time of the run, so it reflects current listings.
Can I combine filters? Yes. You can combine search query, language, topic, and author year range to narrow results. Book IDs override other filters.

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 Project Gutenberg Literary Archive Foundation. 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 books to collect per run. 10
searchQuery string Keywords matched against titles and author names. Multiple words joined with %20 are AND-combined. shakespeare
language string (20 options) ISO 639-1 language code to restrict results to one language. not set
topic string Match a topic in subjects or bookshelves (e.g. children, science, philosophy, history, fiction, religion). not set
authorYearStart integer Earliest author birth/death year (use negatives for BCE). not set
authorYearEnd integer Latest author birth/death year. not set
bookIds array Lookup specific Project Gutenberg IDs (e.g. 1342 for Pride and Prejudice). Overrides other filters. not set

Pricing

from $19.00 per 1,000 results

Charged forWhat it isPrice each
Result Item Charged once per result collected. $0.019 to $0.021

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~gutendex-project-gutenberg-books-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 Project Gutenberg Books Scraper on Apify All scrapers