Open Library Scraper — Books, Authors & Subjects
Pricing
from $1.50 / 1,000 results
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.
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:
| Field | Type | Description |
|---|---|---|
key | string | Open Library work key (e.g. /works/OL45804W) |
title | string | Full book title |
authors | string | Comma-separated author names |
firstPublishYear | string | Year the work was first published |
isbn | string | Up to 5 ISBNs (ISBN-10 or ISBN-13) |
editionCount | string | Total number of editions across all formats |
publishers | string | Comma-separated publisher names |
subjects | string | Up to 8 subject tags/genres |
ratingsAverage | string | Community average rating (out of 5) |
ratingsCount | string | Total number of community ratings |
language | string | Language codes (e.g. eng, fre) |
coverUrl | string | URL of the book's cover image (large) |
openLibraryUrl | string | Direct link to the book's Open Library page |
description | string | Book description (available in bookDetail mode) |
mode | string | Scraping 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.
- Set
modetosearch. - Enter your
query(e.g."machine learning"or"tolkien fantasy"). - Optionally set
titleorauthorto narrow results. - 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).
- Set
modetosubject. - Enter a
subjectslug (from openlibrary.org/subjects). - Set
maxResults.
Input example:
{"mode": "subject","subject": "mystery_and_detective_stories","maxResults": 300}
Option C — Author search
Search for authors and their bibliographic data.
- Set
modetoauthor. - Enter
query(the author name). - 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.
- Set
modetobookDetail. - Enter
workIdsarray (e.g.["OL45804W", "OL27258W"]).
Input example:
{"mode": "bookDetail","workIds": ["OL27258W", "OL45804W", "OL262238W"]}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | search | Scraping mode: search, bookDetail, subject, or author |
query | string | — | Free-text search query (used in search and author modes) |
title | string | — | Filter by title keyword (used in search mode) |
author | string | — | Filter by author name (used in search mode) |
subject | string | — | Subject slug to browse (used in subject mode) |
workIds | array | — | Array of Open Library work IDs for bookDetail mode |
maxResults | integer | 200 | Maximum results to return (1–5000) |
proxyConfiguration | object | Apify Proxy | Proxy 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
titleorauthorfilters. - Subject slugs must use underscores:
science_fictionnotscience fiction. Browseopenlibrary.org/subjectsto find valid slugs. - Set
maxResultsto 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
bookDetailmode can be in any format:OL27258W,/works/OL27258W, or just the numeric part. - Ratings are community-sourced and only present on popular works. Expect
nullon obscure titles. - Cover images are available in three sizes: replace
-L.jpgwith-M.jpg(medium) or-S.jpg(small). - For ISBN lookups, use
searchmode with a query likeisbn:9780345391803to 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
bookDetailmode 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 ApifyClientclient = 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).
Is this legal to use?
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.
Is it legal?
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).
Related scrapers
- OpenAlex Academic Papers Scraper — Extract academic papers, citations, and author metadata from OpenAlex.
- PubMed Scraper — Scrape biomedical research articles from the PubMed database.
- Semantic Scholar Research Scraper — Search and extract papers from Semantic Scholar with citation counts and abstracts.
- arXiv Paper Scraper — Download preprint papers from arXiv by keyword, category, or author.