Books Scraper - Open Library + Google Books, No Key avatar

Books Scraper - Open Library + Google Books, No Key

Pricing

from $0.97 / 1,000 books

Go to Apify Store
Books Scraper - Open Library + Google Books, No Key

Books Scraper - Open Library + Google Books, No Key

Search 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 the description and price with your own free key. Open Library needs none. $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

7

Total users

2

Monthly active users

2 days ago

Last modified

Share

Search Open Library or Google Books by keyword, title, subject or ISBN and get 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, flat on every plan. 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. Flat on every Apify plan, no volume tiers, and the same price whichever catalogue answered. 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.
BLOCKEDGoogle refused the call outright. If you supplied a key, check that the Books API is switched on for that Google project.

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.

๐Ÿงญ 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?

Yes. The API tab has ready-made code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/books-scraper. Either way the run happens on 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.