OpenLibrary Books Scraper — ISBN, Author & Metadata
Pricing
from $1.50 / 1,000 results
OpenLibrary Books Scraper — ISBN, Author & Metadata
Search books by title, author or subject, or look up ISBNs in bulk, and get authors, year, ISBNs, publishers, subjects, languages, ratings, editions, pages and cover. Powered by Open Library. Keyless, no anti-bot.
Search books by title, author or subject — or look up ISBNs in bulk — and get rich, structured metadata for each: authors, first publish year, ISBNs, publishers, subjects, languages, ratings, edition count, page count and cover image. Powered by Open Library, as clean JSON/CSV/Excel.
Keyless, no anti-bot — built for book catalogs, library and bookstore data, reading apps, and metadata enrichment.
What this Actor does
Give it search queries and/or ISBNs, and for every matching book it returns:
- Core — title, author(s), first publish year.
- Identifiers — primary ISBN and how many ISBNs/editions exist.
- Publishing — publishers, languages, edition count, median page count.
- Discovery — subjects/genres, average rating and rating count, opening sentence.
- Media & links — cover image URL, Open Library work key and page, and whether a free full-text read is available on the Internet Archive.
Search plain text, or target a field with a prefix: title:, author:, subject:.
Why use it
- Rich, free book metadata. A clean, structured alternative to paid book APIs and to scraping Goodreads/Amazon — no key, no anti-bot.
- Bulk ISBN lookup. Paste a list of ISBNs and get full metadata back for each.
- Catalog & enrichment. Build or enrich a book catalog with authors, subjects, ratings, editions and covers.
- Discovery by subject or author. Pull every book for an author or a subject to power recommendations, reading lists and research.
- Covers included. Ready-to-use cover image URLs for every book.
Who it's for
- Bookstores, libraries & publishers building or cleaning catalog data.
- Reading & book-app developers needing a free, structured book API.
- Data & research teams assembling datasets by author, subject or era.
- Content & recommendation builders powering reading lists and discovery.
Quick start
Run it in the console (no code)
-
In Search queries, add one per line — plain text or with a prefix:
the lord of the ringsauthor:agatha christiesubject:machine learning -
(Optional) In ISBNs, paste ISBN-10/13 codes to look up specific books.
-
Set Max books per query, click Start, export as JSON, CSV, Excel or HTML.
Leave everything empty to run a demo.
Run it via API (Python)
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run_input = {"queries": ["author:brandon sanderson", "subject:fantasy"],"isbns": ["9780441013593"],"maxItemsPerQuery": 100,}run = client.actor("YOUR_USERNAME/openlibrary-books-scraper").call(run_input=run_input)for b in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{b['title']} — {b['authors']} ({b['firstPublishYear']}) ⭐{b['ratingsAverage']}")
Run it via API (JavaScript)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('YOUR_USERNAME/openlibrary-books-scraper').call({queries: ['the lord of the rings'],});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((b) => console.log(`${b.title} — ${b.authors} — ISBN ${b.isbn}`));
Input
| Field | Type | Description |
|---|---|---|
| Search queries | array | One per line. Plain text or title: / author: / subject: prefixes. Empty = demo. |
| ISBNs | array | ISBN-10/13 (hyphens ok) to look up specific books. |
| Max books per query | integer | Paginates in blocks of 100. Default 100. |
| Speed (parallel queries) | integer | How many queries at once. Default 4. |
| Proxy configuration | object | Apify Proxy. On by default. |
Query tips
title:dune— match the title.author:ursula k le guin— all books by an author.subject:artificial intelligence— all books on a subject.- Plain text (e.g.
the hobbit) searches across everything.
Output
One record per book:
{"query": "author:agatha christie","title": "Murder on the Orient Express","authors": "Agatha Christie","firstPublishYear": "1933","isbn": "9780007119318","isbnCount": "248","publishers": "HarperCollins; Collins Crime Club; ...","subjects": "Detective and mystery stories; Hercule Poirot; ...","languages": "eng; fre; spa; ...","ratingsAverage": "4.15","ratingsCount": "212","editionCount": "248","pageCount": "256","firstSentence": "The Taurus Express...","coverUrl": "https://covers.openlibrary.org/b/id/12345-L.jpg","workKey": "/works/OL471576W","openLibraryUrl": "https://openlibrary.org/works/OL471576W","hasFreeRead": "true","scrapedAt": "2026-10-08T14:00:00.000Z"}
| Field | Description |
|---|---|
title / authors / firstPublishYear | Core bibliographic fields. |
isbn / isbnCount | Primary ISBN and number of ISBNs/editions. |
publishers / languages | Publishers and languages across editions. |
subjects | Subjects/genres (great for classification & discovery). |
ratingsAverage / ratingsCount | Open Library community ratings. |
editionCount / pageCount | Number of editions and median page count. |
firstSentence | Opening sentence, when available. |
coverUrl | Cover image URL (large). |
workKey / openLibraryUrl | Open Library identifiers and page. |
hasFreeRead | true if a full-text copy is on the Internet Archive. |
scrapedAt | ISO timestamp. |
Tips & notes
- Author & subject sweeps.
author:andsubject:are the fastest way to pull a complete set — raise Max books per query to go deep. - ISBN enrichment. Feed a column of ISBNs to turn a bare list into a full catalog with covers and subjects.
- Ratings vary. Open Library ratings are community-sourced; popular titles have them, obscure ones may not.
- Covers.
coverUrlis a ready-L(large) image; swap-Lfor-M/-Sfor smaller sizes. - Be kind. Open Library is a non-profit — keep concurrency modest for large jobs.
Frequently asked questions
Do I need an API key? No. It uses Open Library's public search API — no key, no account.
Can I look up specific ISBNs? Yes — paste them into the ISBNs field and each is resolved to full metadata.
How do I get all books by an author or on a subject?
Use author:name or subject:topic as a query and raise Max books per query.
Are cover images included?
Yes — every book with a cover gets a ready-to-use coverUrl.
Is this a good alternative to Goodreads/Amazon book data? Yes — Open Library is open, keyless and anti-bot-free, with authors, subjects, editions, ratings and covers for millions of books.
Can I tell if a book is free to read?
hasFreeRead is true when a full-text copy is available on the Internet Archive.
Export & integrate
Results are available as JSON, CSV, Excel, HTML and via the Apify API. Push to Google Sheets, a webhook, Make, Zapier or your database — and schedule runs to keep a catalog fresh.
Data from Open Library, a project of the Internet Archive.