482 scrapers live47.7K runs1,562 usersRebuilt in the last 30 days: 482 of 482

Scrapers / Leads & Business

Project Gutenberg Books Scraper logo

Project Gutenberg Books Scraper

hipersoft/gutenberg-books-scraper

Search and export Project Gutenberg's public-domain book catalog in bulk: title, authors with birth/death years, subjects, bookshelves, languages, download count and download links for plain-text and EPUB. Clean structured JSON, CSV or Excel.

Total users

1

Monthly users

0

Total runs

70

Per book scraped

$0.001

Last rebuilt

Oct 23, 2026

Overview

Search and export Project Gutenberg's public-domain book catalog as clean, structured JSON, CSV or Excel: title, authors (with birth/death years), subjects, bookshelves, languages, download count and ready-to-use download links for plain-text and EPUB. Search by keyword, filter by topic, language and author era, and pull one tidy record per book — thousands of free classics in a single run.

What does Project Gutenberg Books Scraper do?

This Project Gutenberg scraper turns the world's largest library of free, public-domain ebooks into a structured dataset. Give it a search query (like sherlock holmes), or browse the whole catalog and narrow it down by topic, language and author era, then choose how the results are ordered — most popular first, or by catalog ID. For every matching book you get the headline metadata plus direct download links, so you can build reading lists, feed text-analysis pipelines, or archive classics in bulk.

What data can you scrape from Project Gutenberg?

Data point Description
id Project Gutenberg book ID.
title Book title.
authors Author list — each with name, birthYear and deathYear.
translators Translators, when credited (same shape as authors).
subjects Library-of-Congress style subject headings.
bookshelves Curated Project Gutenberg bookshelf categories.
languages Two-letter language codes the book is available in.
copyright Whether the book is under copyright (usually false).
mediaType Media type (e.g. Text).
downloadCount How many times the book has been downloaded.
formats Map of MIME type → download URL (HTML, EPUB, Kindle, plain-text and more).
textUrl Direct plain-text download link, when available.
epubUrl Direct EPUB download link, when available.
url Project Gutenberg reading page for the book.

Use cases

  • Reading & research datasets — assemble a themed corpus of classics for analysis or search.
  • Text mining & NLP — feed full-text book links into notebooks, models or RAG apps.
  • Digital libraries — build or enrich a catalog with titles, authors, subjects and covers.
  • Bulk downloads — grab plain-text and EPUB links for offline reading collections.
  • Discovery — surface the most popular public-domain books by topic, language or author era.

How to scrape Project Gutenberg data

  1. Add Project Gutenberg Books Scraper to your Apify account and open its input.
  2. Enter a search query (e.g. sherlock holmes), or leave it empty to browse everything.
  3. Optionally set a topic (e.g. children), one or more languages (e.g. ["en"]), and an author era with authorYearStart / authorYearEnd.
  4. Choose the sort order and a maxItems cap (or 0 for every match).
  5. Click Run, then export the results as JSON, CSV or Excel — or fetch them through the Apify API.

Input

{
  "search": "sherlock holmes",
  "topic": "",
  "languages": ["en"],
  "sort": "popular",
  "maxItems": 100
}
Field Description
search Keywords matched against titles and author names.
topic Single subject/bookshelf keyword filter (e.g. children, history).
languages Keep only books in these two-letter language codes.
authorYearStart Keep books with an author alive during/after this year.
authorYearEnd Keep books with an author alive during/before this year.
sort popular, ascending or descending.
maxItems Maximum books to collect (0 = no limit).

What you get

One flat JSON record per book, ready to export to CSV, Excel, JSON or XML:

{
  "id": 1661,
  "title": "The Adventures of Sherlock Holmes",
  "authors": [
    { "name": "Doyle, Arthur Conan", "birthYear": 1859, "deathYear": 1930 }
  ],
  "translators": [],
  "subjects": [
    "Detective and mystery stories, English",
    "Private investigators -- England -- Fiction"
  ],
  "bookshelves": ["Category: Crime, Thrillers and Mystery"],
  "languages": ["en"],
  "copyright": false,
  "mediaType": "Text",
  "downloadCount": 96543,
  "formats": {
    "text/plain; charset=us-ascii": "https://www.gutenberg.org/ebooks/1661.txt.utf-8",
    "application/epub+zip": "https://www.gutenberg.org/ebooks/1661.epub3.images"
  },
  "textUrl": "https://www.gutenberg.org/ebooks/1661.txt.utf-8",
  "epubUrl": "https://www.gutenberg.org/ebooks/1661.epub3.images",
  "url": "https://www.gutenberg.org/ebooks/1661"
}

Building a broader books or research dataset? Pair this with:

FAQ

What is Project Gutenberg? Project Gutenberg is a volunteer library of over 70,000 free ebooks, mostly older works whose copyright has expired. This Actor makes that catalog searchable and exportable as structured data.

Can I download the actual book text? Yes. Each record includes a formats map plus textUrl and epubUrl shortcuts pointing to the plain-text and EPUB downloads hosted by Project Gutenberg.

How do the filters work together? All filters combine — search, topic, languages and the author-era range are applied together, so you can, for example, find popular English children's books by authors alive in the 1800s.

How many books can I scrape per run? There's no fixed cap. maxItems limits how many books are collected (0 = every match). Larger runs simply take longer.

Is scraping Project Gutenberg data legal? The Actor collects only publicly available catalog data for public-domain works. You are responsible for using it in line with Project Gutenberg's terms and applicable laws.

What's the output format? A structured dataset with one item per book. Export as JSON, CSV or Excel from the Apify Console or API.

Can I use this with n8n, Make or Zapier? Yes. Run it from n8n via the Apify node, or connect it to Make, Zapier, Slack, Google Drive and many more, plus the Apify API, JavaScript/Python clients, MCP and webhooks.

Notes

Original clean-room implementation. Returns only public, public-domain catalog data; you are responsible for compliance with Project Gutenberg's terms. Not affiliated with Project Gutenberg.

Input

FieldTypeDescription
search
Search query
stringKeywords matched against book titles and author names. Multiple words must all match (e.g. "sherlock holmes" or "dickens london"). Leave empty to browse the whole catalog and filter with the options below.
topic
Topic
stringFilter by a single subject or bookshelf keyword, e.g. "children", "science fiction", "history" or "poetry". Matched against each book's subjects and bookshelves.
languages
Languages
arrayKeep only books available in these two-letter language codes, e.g. ["en"] for English or ["en", "fr"] for English and French. Leave empty for all languages.
authorYearStart
Author alive from (year)
integerKeep only books with at least one author alive during or after this year. Negative values mean BCE, e.g. -500. Leave empty for no lower bound.
authorYearEnd
Author alive until (year)
integerKeep only books with at least one author alive during or before this year. Negative values mean BCE. Leave empty for no upper bound.
sort
Sort order
string · popular, ascending, descendingOrder of results: most popular (by download count), or by ascending / descending Project Gutenberg ID.
Default: "popular"
maxItems
Max books
integerMaximum number of books to collect across all pages. Use 0 for no limit (collect every matching book).
Default: 100

API

curl -X POST "https://api.apify.com/v2/acts/hipersoft~gutenberg-books-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "search": "sherlock holmes",
  "topic": "children",
  "languages": [
    "en"
  ]
}'

Pricing

EventPricePaid plans from
Book Scraped
Charged per book scraped.
$0.001$0.0005

You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.

Related scrapers

North Data Scraper

Look up European companies on North Data: legal name, former names, register number, address, founding date, LEI, business purpose, managing directors and officers, and recent register publications. Germany, UK, France, Austria and 20+ countries. Bulk lookups.

2,467 runs · 5 users · $0.004 / company

Website Content Crawler

Extract clean, readable content from any list of websites: page title, meta description, headings, main body text, word count and link/image counts. Optional same-domain crawl. Bulk-ready. Great for LLM/RAG ingestion, content audits and research.

206 runs · 20 users · $0.0024 / page scraped

SpyFu Domain Scraper

Bulk SEO and PPC reports for any domain from SpyFu: organic keywords, monthly SEO clicks and value, Google Ads budget, paid keywords, top keywords, competitors, top countries and monthly history. Competitor research for agencies. Export CSV/JSON.

185 runs · 7 users · $0.008 / domain report

Trustpilot Reviews Scraper

Scrape Trustpilot reviews and company ratings by company domain or Trustpilot URL: star rating, title, text, reviewer name & country, verification, date, company reply, plus company TrustScore and total reviews.

146 runs · 4 users · $0.0006 / review scraped

ACRA Singapore Company Registry Scraper

Search and export Singapore's full ACRA corporate registry: UEN, entity name, status, incorporation date, address, SSIC industry codes, officers, former names and audit firms. Filter by name, status, entity type or industry. Public open data, no setup.

138 runs · 10 users · $0.01 / company scraped

Wayback Machine Scraper

List every Internet Archive (Wayback Machine) snapshot of a URL or whole domain: timestamp, snapshot URL, status code, MIME type and content digest. Filter by date, status and dedupe. For SEO, OSINT and historical research. No setup.

135 runs · 15 users · $0.002 / snapshot scraped
Need a source that isn't here?

Send the site and the fields. We build it and you get it first.

Request a build