Books Scraper - Open Library + Google Books, No Key
Pricing
from $0.97 / 1,000 books
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
Maintained by CommunityActor stats
1
Bookmarked
7
Total users
2
Monthly active users
2 days ago
Last modified
Categories
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.
| Input | A search query, or isbn:9780132350884 |
| Output | One row per unique book: title, authors, publisher, year, ISBN, pages, subjects, rating, language, cover, link. Google adds description and price |
| Ceiling | 1,000 books per run |
| Account needed | None 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 get | Field |
|---|---|
| Which catalogue answered, and its id for the book | source, sourceId |
| Title, subtitle and authors | title, subtitle, authors |
| Publisher and publication date | publisher, publishedDate, year |
| ISBN and page count | isbn, pageCount |
| Subjects or categories | categories |
| Average rating and how many people rated it | averageRating, ratingsCount |
| Language | language |
| Cover image and the book's page | coverImage, url |
| Google only: the description and the price with a buy link | description, price |
โถ๏ธ How to scrape book data
- Open Books Scraper and click Try for free.
- Leave Source on Open Library for your first run.
- Type into Search query. A subject like
machine learningworks as well as a title. - Set Max books, then click Start.
- 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}
| Field | Default | What it is |
|---|---|---|
query | none, the form starts with clean code | Required. Keywords, a title, a subject, or isbn:9780132350884. An API call has to send its own. |
source | openlibrary | openlibrary or googlebooks. Send it explicitly when you call from the API rather than relying on the form to fill it in. |
maxItems | 100 | 1 to 1,000 unique books. Paging is automatic. |
googleApiKey | none | Your own free Google Books key. Only read when source is googlebooks. Stored as a secret field and never written to the log. |
notionConnector | none | Optional. Writes every delivered row into your Notion. |
notionParentId | none | Optional. The Notion data source to write into. Leave it empty and the pages are created privately in your workspace. |
proxyConfiguration | off | Optional 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}
| Field | How to read it |
|---|---|
source | The catalogue that actually answered, which is not always the one you asked for. Read this rather than assuming. |
isbn | ISBN-13 where the record has one, then ISBN-10, then whatever other identifier is listed. |
categories | Open Library subjects, capped at 25 per book. Google returns its own shorter category list. |
averageRating, ratingsCount | The catalogue's own ratings. null on a book nobody rated there. |
description | Google only. Always null on an Open Library row. |
price | Google only, and only when the book is on sale there: {amount, currency, buyLink}. Otherwise null. |
coverImage | A 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.
| Row | How to spot it | Billed |
|---|---|---|
| A book | ok: true and a title | yes |
| The fallback notice | ok: false, errorCode: "RATE_LIMITED", first row of the dataset | no |
| A diagnostic | ok: false and any other errorCode | no |
| Code | What it means |
|---|---|
BAD_INPUT | The query was blank, or source was not one of the two names. |
NO_RESULTS | The search ran and the catalogue had nothing. The row carries total and usedSource. |
RATE_LIMITED | Google Books was not available keyless, so the run finished on Open Library. Your books are in the rows after it. |
BLOCKED | Google 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
maxItemslow while you find the right wording.
๐งญ Which reference scraper do you need?
| If you want | Use |
|---|---|
| Wikipedia search results or article text | Wikipedia Scraper |
| Wikidata Q-ids, aliases and claims, by name or by ID | Wikidata Scraper |
| Book metadata by keyword, title or ISBN | This one |
| Goodreads ratings and rating counts from a book search | Goodreads Books Scraper |
| Books, audio, film and software held on archive.org | Internet Archive Scraper |
| Papers with readable abstracts and citation counts | OpenAlex Scraper |
| Wikipedia, arXiv and OpenAlex searches as tools for an AI agent | Research 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.
Is it legal to scrape book data?
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.