Open Library Scraper — Books, Authors & Subjects avatar

Open Library Scraper — Books, Authors & Subjects

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Open Library Scraper — Books, Authors & Subjects

Open Library Scraper — Books, Authors & Subjects

Scrape Open Library by search query, subject, or author. Extract title, ISBN, ratings, cover, publisher, subjects, and edition count for research, cataloging, and book discovery. No API key, no login.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Logiover

Logiover

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Open Library Scraper — Books, Authors, Subjects & ISBN Data

Extract millions of book records from Open Library by search query, subject, author, or work ID. No API key, no login — 100% keyless, powered by the official Open Library REST API.

What does Open Library Scraper do?

Open Library Scraper connects directly to the Open Library REST API (openlibrary.org) — the world's largest open catalog of books with over 20 million records — and extracts structured book data at scale. It operates in four modes: search (full-text query across all books), bookDetail (deep data for a specific work by ID), subject (browse books within a genre or topic), and author (search authors and their catalogs). The actor paginates through results page by page, collecting up to thousands of records per run. Each book record includes title, author names, ISBN, edition count, publishers, subjects, community ratings, language, and a direct cover image URL. The engine uses got-scraping with descriptive User-Agent headers and Apify proxy support. No authentication is required — Open Library's API is freely accessible.

Who is it for?

  • Researchers and academics who need large bibliographic datasets for corpus analysis, NLP training, or citation studies.
  • LibraryTech developers building recommendation engines, reading apps, or catalog software.
  • Data scientists working on book metadata, genre classification, or publication trend analysis.
  • Publishers and marketers tracking author presence, edition counts, and reader ratings across a subject area.
  • Educators and librarians compiling reading lists, subject bibliographies, or comparing publishers.

Use cases

  • Scrape all science fiction books with their ratings to build a genre recommendation dataset.
  • Extract ISBNs and publisher info for a subject area to populate a catalog database.
  • Collect author metadata (work count, top works, subjects) for author authority files.
  • Pull cover image URLs and first-publish years for a book discovery website.
  • Monitor edition counts and community ratings for a set of classic works.

Why use Open Library Scraper?

  • Fully keyless: No API key, account, or login — runs out of the box.
  • 20+ fields per book: title, authors, ISBN, edition count, publishers, subjects, ratings, language, cover image, and more.
  • Bulk pagination: Paginate to thousands of results per run with configurable maxResults.
  • Four modes: search, subject browse, author search, and per-work deep detail.
  • Flexible filters: Filter by title keyword, author name, or subject within search mode.
  • Export anywhere: Results available as JSON, CSV, or Excel via Apify dataset — or push to Google Sheets, Slack, Webhooks.

What data can you extract?

Every book record includes the following fields:

FieldTypeDescription
keystringOpen Library work key (e.g. /works/OL45804W)
titlestringFull book title
authorsstringComma-separated author names
firstPublishYearstringYear the work was first published
isbnstringUp to 5 ISBNs (ISBN-10 or ISBN-13)
editionCountstringTotal number of editions across all formats
publishersstringComma-separated publisher names
subjectsstringUp to 8 subject tags/genres
ratingsAveragestringCommunity average rating (out of 5)
ratingsCountstringTotal number of community ratings
languagestringLanguage codes (e.g. eng, fre)
coverUrlstringURL of the book's cover image (large)
openLibraryUrlstringDirect link to the book's Open Library page
descriptionstringBook description (available in bookDetail mode)
modestringScraping mode used for this record

Example output record:

{
"key": "/works/OL27258W",
"title": "The Hitchhiker's Guide to the Galaxy",
"authors": "Douglas Adams",
"firstPublishYear": "1979",
"isbn": "9780345391803, 0345391802, 9780330508117",
"editionCount": "487",
"publishers": "Pan Books, Del Rey Books, Harmony Books",
"subjects": "Science fiction, Humorous fiction, Space, Adventure, Comedy",
"ratingsAverage": "4.21",
"ratingsCount": "188432",
"language": "eng",
"coverUrl": "https://covers.openlibrary.org/b/id/8267040-L.jpg",
"openLibraryUrl": "https://openlibrary.org/works/OL27258W",
"description": "Seconds before the Earth is demolished to make way for a hyperspace bypass, Arthur Dent is plucked off the planet...",
"mode": "search"
}

How to use

Option A — Search by keyword

The most common usage: search all books by a free-text query. Optionally filter by title or author name.

  1. Set mode to search.
  2. Enter your query (e.g. "machine learning" or "tolkien fantasy").
  3. Optionally set title or author to narrow results.
  4. Set maxResults (default 200, up to 5000).

Input example:

{
"mode": "search",
"query": "science fiction",
"maxResults": 500
}

Option B — Browse by subject

Get all books within a subject/genre category. Subject slugs use underscores (e.g. science_fiction, history, cookbooks).

  1. Set mode to subject.
  2. Enter a subject slug (from openlibrary.org/subjects).
  3. Set maxResults.

Input example:

{
"mode": "subject",
"subject": "mystery_and_detective_stories",
"maxResults": 300
}

Search for authors and their bibliographic data.

  1. Set mode to author.
  2. Enter query (the author name).
  3. Set maxResults.

Input example:

{
"mode": "author",
"query": "Isaac Asimov",
"maxResults": 50
}

Option D — Book detail by work ID

Get full detail for specific works including description, subjects, and edition data.

  1. Set mode to bookDetail.
  2. Enter workIds array (e.g. ["OL45804W", "OL27258W"]).

Input example:

{
"mode": "bookDetail",
"workIds": ["OL27258W", "OL45804W", "OL262238W"]
}

Input parameters

ParameterTypeDefaultDescription
modestringsearchScraping mode: search, bookDetail, subject, or author
querystringFree-text search query (used in search and author modes)
titlestringFilter by title keyword (used in search mode)
authorstringFilter by author name (used in search mode)
subjectstringSubject slug to browse (used in subject mode)
workIdsarrayArray of Open Library work IDs for bookDetail mode
maxResultsinteger200Maximum results to return (1–5000)
proxyConfigurationobjectApify ProxyProxy settings (datacenter recommended)

Full input JSON:

{
"mode": "search",
"query": "artificial intelligence",
"title": "",
"author": "",
"subject": "",
"workIds": [],
"maxResults": 1000,
"proxyConfiguration": { "useApifyProxy": true }
}

Output example

{
"key": "/works/OL25368500W",
"title": "Deep Learning",
"authors": "Ian Goodfellow, Yoshua Bengio, Aaron Courville",
"firstPublishYear": "2016",
"isbn": "9780262035613, 0262035618",
"editionCount": "12",
"publishers": "MIT Press",
"subjects": "Machine learning, Neural networks, Deep learning, Artificial intelligence",
"ratingsAverage": "4.35",
"ratingsCount": "4821",
"language": "eng",
"coverUrl": "https://covers.openlibrary.org/b/id/8228691-L.jpg",
"openLibraryUrl": "https://openlibrary.org/works/OL25368500W",
"description": null,
"mode": "search"
}

Tips for best results

  • Use the search mode with a broad query first to gauge result volume; then narrow with title or author filters.
  • Subject slugs must use underscores: science_fiction not science fiction. Browse openlibrary.org/subjects to find valid slugs.
  • Set maxResults to 1000+ for research datasets — the actor paginates automatically.
  • Open Library has best coverage of English-language books. For non-English works, add the language name to your query (e.g. "french poetry").
  • Work IDs in bookDetail mode can be in any format: OL27258W, /works/OL27258W, or just the numeric part.
  • Ratings are community-sourced and only present on popular works. Expect null on obscure titles.
  • Cover images are available in three sizes: replace -L.jpg with -M.jpg (medium) or -S.jpg (small).
  • For ISBN lookups, use search mode with a query like isbn:9780345391803 to find a book by ISBN.
  • The actor respects Open Library's public API — no auth token needed, no rate-limit workarounds required.
  • To get description text, use bookDetail mode with the work's ID. Search mode does not return descriptions.

Integrations

Connect Open Library Scraper to your workflow with these Apify-native integrations:

  • Google Sheets: Use Apify's Google Sheets integration to stream book records directly into a spreadsheet for sharing or further analysis.
  • Slack: Get a Slack notification with result count and a sample record every time a scheduled run completes.
  • Zapier / Make: Trigger downstream automations — add books to Notion, Airtable, or a custom database.
  • Webhooks: Configure a webhook URL to receive the full result dataset as a JSON payload after each run.
  • Schedule: Run on a weekly schedule to monitor new arrivals in a subject area or track rating changes over time.

API usage

cURL:

curl -X POST "https://api.apify.com/v2/acts/logiover~openlibrary-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"search","query":"science fiction","maxResults":200}'

Node.js (Apify client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('logiover~openlibrary-scraper').call({
mode: 'search',
query: 'science fiction',
maxResults: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("logiover~openlibrary-scraper").call(run_input={
"mode": "search",
"query": "science fiction",
"maxResults": 200,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["title"], item["authors"])

Use with AI agents (MCP)

Open Library Scraper is available as an MCP (Model Context Protocol) tool. You can instruct an AI agent: "Use the Open Library scraper to find 500 science fiction books published after 2000 and return their titles, authors, and average ratings." The actor returns structured JSON that AI agents can filter, rank, or summarize directly — ideal for building reading recommendation bots, literature review assistants, or dataset-building pipelines.

FAQ

Does this actor require an API key?

No. Open Library's API is completely public and keyless. You can run this actor immediately without signing up for anything on Open Library's side.

How many books does Open Library have?

Open Library catalogs over 20 million book records. The search mode can return up to 5000 results per run, and subject browsing can surface thousands of titles per category.

What's the difference between a "work" and an "edition"?

A work is the canonical entry for a book (e.g. Harry Potter and the Sorcerer's Stone). An edition is a specific physical version — hardcover 2000, paperback 2003, etc. This actor returns work-level data by default; bookDetail mode also fetches edition data (ISBNs, publishers, languages).

Why are some fields null?

Open Library's coverage is community-driven. Lesser-known books may lack ISBNs, ratings, or cover images. Ratings are only shown when at least one user has rated the work. Use bookDetail mode for the most complete data on a specific work.

I got zero results — what should I try?

First check that your query is spelled correctly. For subject mode, make sure the slug uses underscores and is a valid Open Library subject (verify at openlibrary.org/subjects/<slug>.json). For author mode, try a partial name. If the problem persists, check Open Library's server status.

Can I export results to CSV or Excel?

Yes. From the Apify dataset view, use the Export button to download results as CSV, Excel, JSON, or JSONL. You can also push directly to Google Sheets via the Apify integration.

How fast is the actor?

In search mode, the actor fetches 100 records per API call. For 1000 results, expect roughly 10 API requests taking 20–40 seconds total. The actor runs with low resource usage (512 MB memory, datacenter proxy).

Open Library is a project of the Internet Archive, a 501(c)(3) non-profit. All bibliographic data is published under open licenses (CC0 or CC BY). The actor uses the official public API with proper User-Agent headers, does not hammer endpoints, and complies with Open Library's terms of service for programmatic access.

What subject slugs are available?

Popular subjects include: science_fiction, mystery_and_detective_stories, history, biography, cookbooks, romance, children, fantasy, self-help, business_economics. Browse the full list at openlibrary.org/subjects.

How often is Open Library data updated?

Open Library is updated continuously by its community. New editions, ratings, and metadata improvements are pushed daily. Running this actor weekly will capture recent additions and rating changes.

Can I search by ISBN directly?

Yes — in search mode, set query to isbn:9780345391803 (replace with your ISBN). The Open Library search API supports ISBN queries natively.

Are author photos included?

In author mode, the coverUrl field returns the author's photo URL from Open Library's author covers API (if available). Photos are stored at covers.openlibrary.org/a/id/<id>-L.jpg.

Open Library is an initiative of the Internet Archive and provides all bibliographic data under open licenses. The data accessed by this actor is publicly available via Open Library's official REST API, which is designed and documented for programmatic access. This actor does not scrape HTML pages, does not bypass any authentication, and uses descriptive User-Agent headers to identify itself. Use the extracted data in compliance with your local laws and Open Library's terms of service. For commercial use, verify that your intended application aligns with Open Library's data licensing (primarily CC0 and CC BY).