Openlibrary Scraper avatar

Openlibrary Scraper

Pricing

Pay per event

Go to Apify Store
Openlibrary Scraper

Openlibrary Scraper

Scrape book metadata from Open Library's 20M+ catalog. Search by keyword, get titles, authors, ISBNs, ratings, covers, and reading stats. Export as JSON/CSV. Pay per result.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Open Library Scraper

Scrape books from Open Library, the Internet Archive's open book catalog. Search by title, author, or subject. Get titles, authors, publication years, ISBNs, ratings, cover images, and reading statistics.

What does Open Library Scraper do?

Open Library Scraper uses the Open Library search API to find books and extract metadata. It collects titles, author names, first publication years, edition counts, ISBNs, publishers, languages, ratings, and community reading statistics (want-to-read, currently reading, already read).

Who is it for?

  • 📚 Librarians — building book catalogs and metadata databases from Open Library
  • 🎓 Academic researchers — collecting bibliographic data for literature analysis
  • 📊 Data analysts — studying publishing trends, author output, and subject popularity
  • 💻 App developers — enriching reading apps with book metadata and cover images
  • 📝 Book reviewers — gathering structured book information for reviews and recommendations

Why scrape Open Library?

Open Library is the world's largest open book catalog with over 20 million records. It's a comprehensive, freely accessible source for bibliographic data.

Key reasons to scrape it:

  • Book research — Find books by topic, author, or keyword across all subjects
  • Publishing analysis — Track edition counts and publishing patterns
  • Academic research — Build bibliographies and reading lists programmatically
  • Community insights — Analyze reading trends via want-to-read and already-read counts
  • Library tools — Build catalog enrichment or recommendation systems

Use cases

  • Researchers building subject-specific bibliographies
  • Librarians enriching catalogs with ISBNs, covers, and ratings
  • Publishers analyzing market coverage in specific topics
  • Content creators finding source material for book reviews and recommendations
  • Educators building reading lists for courses and curricula
  • Developers building book recommendation engines

How to scrape Open Library

  1. Go to Open Library Scraper on Apify Store
  2. Enter one or more search keywords
  3. Set result limits
  4. Click Start and wait for results
  5. Download data as JSON, CSV, or Excel

Input parameters

ParameterTypeDefaultDescription
searchQueriesstring[](required)Keywords to search for
maxResultsPerSearchinteger50Max books per keyword
maxPagesinteger3Max pages (100 books per page)

Input example

{
"searchQueries": ["machine learning", "data science"],
"maxResultsPerSearch": 20,
"maxPages": 1
}

Output

Each book in the dataset contains:

FieldTypeDescription
titlestringBook title
authorsstring[]Author names
firstPublishYearnumberYear first published
editionsnumberNumber of editions
isbnstring[]ISBN identifiers (up to 5)
publishersstring[]Publisher names (up to 5)
languagesstring[]Language codes
ratingnumberAverage rating (0-5)
ratingsCountnumberNumber of ratings
wantToReadnumberUsers who want to read
currentlyReadingnumberUsers currently reading
alreadyReadnumberUsers who already read
coverUrlstringCover image URL (large)
openLibraryUrlstringOpen Library page URL
openLibraryKeystringOpen Library work key
scrapedAtstringISO timestamp of extraction

Output example

{
"title": "Artificial intelligence",
"authors": ["Stuart J. Russell", "Peter Norvig"],
"firstPublishYear": 1994,
"editions": 39,
"isbn": ["9780136958420", "0134610997", "9781292410074"],
"publishers": ["Pearson Studium", "Prentice Hall"],
"languages": ["ger", "eng"],
"rating": 4.08,
"ratingsCount": 25,
"wantToRead": 482,
"currentlyReading": 44,
"alreadyRead": 26,
"coverUrl": "https://covers.openlibrary.org/b/id/92018-L.jpg",
"openLibraryUrl": "https://openlibrary.org/works/OL2896994W",
"openLibraryKey": "/works/OL2896994W",
"scrapedAt": "2026-03-03T04:01:45.402Z"
}

How much does it cost to scrape Open Library?

Open Library Scraper uses pay-per-event pricing:

EventPrice
Run started$0.001
Book extracted$0.001 per book

Cost examples

ScenarioBooksCost
Quick search20$0.021
Reading list100$0.101
Large bibliography300$0.301

Platform costs are negligible — typically under $0.001 per run.

Using Open Library Scraper with the Apify API

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('automation-lab/openlibrary-scraper').call({
searchQueries: ['machine learning'],
maxResultsPerSearch: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Found ${items.length} books`);
items.forEach(book => {
console.log(`${book.title} by ${book.authors.join(', ')} (${book.firstPublishYear}) - ${book.rating}/5`);
});

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_API_TOKEN')
run = client.actor('automation-lab/openlibrary-scraper').call(run_input={
'searchQueries': ['machine learning'],
'maxResultsPerSearch': 20,
})
dataset = client.dataset(run['defaultDatasetId']).list_items().items
print(f'Found {len(dataset)} books')
for book in dataset:
authors = ', '.join(book['authors'])
print(f"{book['title']} by {authors} ({book['firstPublishYear']}) - {book['rating']}/5")

cURL

curl "https://api.apify.com/v2/acts/automation-lab~openlibrary-scraper/runs" \
-X POST \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchQueries": ["machine learning"], "maxResultsPerSearch": 20}'

Integrations

Open Library Scraper works with all Apify integrations:

  • Scheduled runs — Track new books published in a topic area
  • Webhooks — Get notified when a scrape completes
  • API — Trigger runs and fetch results programmatically
  • Google Sheets — Export book data to a spreadsheet
  • Slack — Share reading recommendations with your team

Connect to Zapier, Make, or Google Sheets for automated workflows.

Tips

  • Sort by wantToRead in the output to find books generating the most interest
  • Use coverUrl to display book covers in your application
  • Check edition counts — more editions usually indicate established, popular works
  • Use ISBNs for cross-referencing with other book APIs or databases
  • Compare ratings to find the highest-rated books on a topic
  • Multiple keywords let you build comprehensive reading lists in one run

Use with AI agents via MCP

Open Library Scraper is available as a tool for AI assistants via the Model Context Protocol (MCP).

Setup for Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com"

Setup for Claude Desktop, Cursor, or VS Code

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com"
}
}
}

Example prompts

  • "Search Open Library for books by Isaac Asimov"
  • "Get book metadata for these ISBNs"

Learn more in the Apify MCP documentation.

Legality

Scraping publicly available data is generally legal according to the US Court of Appeals ruling (HiQ Labs v. LinkedIn). This actor only accesses publicly available information and does not require authentication. Always review and comply with the target website's Terms of Service before scraping. For personal data, ensure compliance with GDPR, CCPA, and other applicable privacy regulations.

FAQ

How many books are in Open Library? Open Library has over 20 million records covering books from around the world.

Does it include full text? No — the scraper extracts metadata only. Open Library does offer full text for some public domain works via their website.

Can I search by author? Yes — enter an author's name as the search keyword and it will return their books.

What's the cover image format? Cover images are served as JPGs from covers.openlibrary.org. The -L suffix gives large images (roughly 400-500px wide).

How are ratings calculated? Ratings are community-contributed on a 1-5 scale. Not all books have ratings -- ratingsCount shows how many ratings exist.

My search returns unexpected or irrelevant books -- what should I do? Open Library's search is broad and matches across titles, authors, and subjects. Use more specific search terms (e.g., "machine learning Python" instead of just "programming") and limit results with maxResultsPerSearch.

Some books have no cover image -- is that normal? Yes. Not all books in Open Library have cover images uploaded. The coverUrl field will be null for these books. Community contributors add covers over time.

Other data scrapers