Books Scraper - ISBN Lookup on Open Library & Google Books avatar

Books Scraper - ISBN Lookup on Open Library & Google Books

Pricing

from $0.97 / 1,000 books

Go to Apify Store
Books Scraper - ISBN Lookup on Open Library & Google Books

Books Scraper - ISBN Lookup on Open Library & Google Books

Books scraper for Open Library or Google Books, by keyword, title, subject or ISBN. Each row holds the title, authors, publisher, year, ISBN, page count, subjects, rating, language and cover. Google Books adds description and price with your own free key. $1.00 per 1,000 books.

Pricing

from $0.97 / 1,000 books

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

1

Bookmarked

14

Total users

3

Monthly active users

a day ago

Last modified

Share

Books scraper for Open Library or Google Books, by keyword, title, subject or ISBN, one row per book: title, subtitle, authors, publisher, year, ISBN, page count, subjects, rating, language and a cover image. Both catalogues come out in the same shape, so you can switch between them without rewriting anything downstream.

The two are not equivalent. Open Library answers with no key and no setup. Google Books carries the description and the retail price, and to use it reliably you need a free Google key of your own, which takes about two minutes to create.

InputA search query, or isbn:9780132350884
OutputOne row per unique book: title, authors, publisher, year, ISBN, pages, subjects, rating, language, cover, link. Google adds description and price
Ceiling1,000 books per run
Account neededNone for Open Library. Google Books wants your own free key
Price$1.00 per 1,000 books on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 5,000

🔍 What Books Scraper does

It runs one search against the catalogue you pick and pages through the results until it has as many unique books as you asked for.

Open Library is the default and the one to start with. No key, no account, nothing to set up. Rows come back with the subjects list, the rating and vote count, the cover and the work page URL. Open Library holds no blurb and no price, so description and price are null on every row from it.

Google Books adds the publisher's description and, where the book is sold through Google, a price object with the amount, currency and a buy link. Without a key those calls run on an anonymous allowance shared by everyone using it, which is usually spent, so the run switches to Open Library and writes one uncharged notice row telling you it did. Put your own key in googleApiKey and the call runs on your own allowance instead.

Books arrive deduplicated: by ISBN where there is one, by title plus first author where there is not. A record with no title is dropped before it is counted or charged.

📋 What data you get from each book

What you getField
Which catalogue answered, and its id for the booksource, sourceId
Title, subtitle and authorstitle, subtitle, authors
Publisher and publication datepublisher, publishedDate, year
ISBN and page countisbn, pageCount
Subjects or categoriescategories
Average rating and how many people rated itaverageRating, ratingsCount
Languagelanguage
Cover image and the book's pagecoverImage, url
Google only: the description and the price with a buy linkdescription, price

▶️ How to scrape book data

  1. Open Books Scraper and click Try for free.
  2. Leave Source on Open Library for your first run.
  3. Type into Search query. A subject like machine learning works as well as a title.
  4. Set Max books, then click Start.
  5. Download the dataset as JSON, CSV, Excel or XML.

For Google Books, create a free API key in the Google Cloud console, switch on the Books API for that project, and paste the key into Google Books API key.

💰 How much does it cost to scrape book data?

$1.00 per 1,000 books on the Free plan, and the same price whichever catalogue answered. Paid plans pay a little less: $0.99 on Starter, $0.98 on Scale and $0.97 on Business. On the free plan, the $5 Apify gives you each month covers about 5,000 books.

You are billed per unique book row. Duplicates dropped along the way, records with no title, the fallback notice row and every diagnostic row are not charged. Set a maximum cost on the run and it stops when it gets there.

📥 What you give it

{
"source": "openlibrary",
"query": "clean code",
"maxItems": 50
}
FieldDefaultWhat it is
querynone, the form starts with clean codeRequired. Keywords, a title, a subject, or isbn:9780132350884. An API call has to send its own.
sourceopenlibraryopenlibrary or googlebooks. Send it explicitly when you call from the API rather than relying on the form to fill it in.
maxItems1001 to 1,000 unique books. Paging is automatic.
googleApiKeynoneYour own free Google Books key. Only read when source is googlebooks. Stored as a secret field and never written to the log.
notionConnectornoneOptional. Writes every delivered row into your Notion.
notionParentIdnoneOptional. The Notion data source to write into. Leave it empty and the pages are created privately in your workspace.
proxyConfigurationoffOptional network setting. Off is right for a normal run, and it makes no difference to the Google allowance.

Never paste a key into a published Apify task. Task inputs are readable by anyone who opens the page. Put it in the run input, or supply it per call.

📤 What you get back

A real row from a run on 2 October 2026:

{
"ok": true,
"source": "openlibrary",
"sourceId": "/works/OL17618370W",
"title": "Clean Code",
"subtitle": "A Handbook of Agile Software Craftsmanship",
"authors": ["Robert C. Martin"],
"publisher": "Prentice Hall",
"publishedDate": "2008",
"year": 2008,
"isbn": "9780136083221",
"pageCount": 444,
"categories": ["Agile software development", "Reliability", "Computer software", "Computer software, development", "Coding theory"],
"averageRating": 4.44,
"ratingsCount": 43,
"language": "eng",
"description": null,
"coverImage": "https://covers.openlibrary.org/b/id/8065615-L.jpg",
"url": "https://openlibrary.org/works/OL17618370W",
"price": null
}
FieldHow to read it
sourceThe catalogue that actually answered, which is not always the one you asked for. Read this rather than assuming.
isbnISBN-13 where the record has one, then ISBN-10, then whatever other identifier is listed.
categoriesOpen Library subjects, capped at 25 per book. Google returns its own shorter category list.
averageRating, ratingsCountThe catalogue's own ratings. null on a book nobody rated there.
descriptionGoogle only. Always null on an Open Library row.
priceGoogle only, and only when the book is on sale there: {amount, currency, buyLink}. Otherwise null.
coverImageA cover URL, built rather than fetched, so an occasional one will not load.

🧾 Reading the output

Real book rows carry ok: true. Anything with ok: false is a note or a problem, and none of those are charged.

RowHow to spot itBilled
A bookok: true and a titleyes
The fallback noticeok: false, errorCode: "RATE_LIMITED", first row of the datasetno
A diagnosticok: false and any other errorCodeno
CodeWhat it means
BAD_INPUTThe query was blank, or source was not one of the two names.
NO_RESULTSThe search ran and the catalogue had nothing. The row carries total and usedSource.
RATE_LIMITEDGoogle Books was not available keyless, so the run finished on Open Library. Your books are in the rows after it.
NOT_SERVEDThis book was not served this run. Re-run it later. Runs before 13 October 2026 wrote BLOCKED here, and runs from 13 to 17 October wrote NETWORK.
TIME_LIMITThe run got close to its time limit and stopped on its own. The books delivered before that are in the dataset and charged as usual. Give the run more time, or ask for fewer books, to get the rest.

A run still ends as succeeded, with an amber status message, even when the time limit stopped it before any book came back.

A run that opens with what looks like an error is usually a run that worked, because the RATE_LIMITED notice is written before the books.

If Google Books returns nothing at all with a key set, suspect the key before the query. A key Google will not accept reads back as a search with no matches, not as a key error.

💡 What people use it for

  • Filling in a reading list or a library catalogue that only has titles, using ISBN as the join key.
  • Pulling everything under a subject, like every book Open Library files under machine learning, to see what exists before buying.
  • Building a price and description list for a shortlist of titles through Google Books.
  • Checking page counts and publication years across a set of editions before choosing one.

🚧 What it does not do

  • No reviews and no review text. Ratings and vote counts only.
  • No editions list. One row per work, not one per printing, so the ISBN you get is a representative one rather than the specific edition on your shelf.
  • No full text, no excerpts, no tables of contents.
  • Open Library rows have no description and no price. That is the catalogue, not a setting you can change.
  • Google Books keyless is not dependable. Expect the fallback unless you supply a key.
  • Covers are links, not files. The image stays on the catalogue's servers.
  • Search quality is the catalogue's. A loose query returns loosely related books, and those rows are charged like any other, so keep maxItems low while you find the right wording.
  • It is not an official Open Library tool. Dami's Studio is independent and is not affiliated with or endorsed by Open Library, Google Books or Google, or by any other company named on this page.

🧭 Which reference scraper do you need?

If you wantUse
Wikipedia search results or article textWikipedia Scraper
Wikidata Q-ids, aliases and claims, by name or by IDWikidata Scraper
Book metadata by keyword, title or ISBNThis one
Goodreads ratings and rating counts from a book searchGoodreads Books Scraper
Books, audio, film and software held on archive.orgInternet Archive Scraper
Papers with readable abstracts and citation countsOpenAlex Scraper
Wikipedia, arXiv and OpenAlex searches as tools for an AI agentResearch MCP Server

❓ Questions people ask

Do I need an API key to get book data?

Not for Open Library. For Google Books, yes in practice. It is free and takes a couple of minutes in the Google Cloud console.

Can I search by ISBN?

Yes. Put isbn:9780132350884 in the query. That works on Google Books.

Why does my row say openlibrary when I picked Google?

The run fell back, and the notice row at the top of the dataset says so. Add your own key to stay on Google.

How do I avoid paying for the same book twice across runs?

Dedupe on isbn, falling back to title plus the first entry in authors, which is what the run does internally.

Why did I get fewer books than I asked for?

The catalogue ran out of matches, or duplicates were removed. You pay for what arrived.

Can I call it from code or connect it to an AI assistant?

The API tab has code for Python, JavaScript and the CLI. MCP clients like Claude and ChatGPT use https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/books-scraper; coding assistants can load our skill file. All three bill your Apify account at the same price.

Open Library and Google Books both publish this data through open APIs meant to be read, and book metadata is not personal data. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the query, the source you picked and the run ID. The errorCode on the diagnostic row usually names the problem by itself.