Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
Books Scraper (Google Books + Open Library) icon

Books Scraper (Google Books + Open Library)

Search Open Library or Google Books: title, authors, ISBN, publisher, year, rating and cover. Open Library needs no key. $1.00 per 1,000 books.

251 runs on Apify $0.001 per book ($1 / 1,000)
Run this in the cloudRun on Apify →

Media & Entertainment Data

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust source, query, maxItems (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.001 per book = $1 per 1,000

You are charged forWhenPrice
Book returnedCharged per book returned.$0.001

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-24, and they are what you are actually charged.

Inputs

FieldWhat it doesType
sourceWhich book catalog to search. Open Library is the reliable keyless source. Google Books returns descriptions and prices but its keyless mode shares one global Google project whose daily quota is usually exhausted (HTTP 429) - supply your own free API key below, or the actor falls back to Open Library automatically. Output is normalized identically for both.string
queryKeywords to search for, e.g. "clean code", "the hobbit", or "isbn:9780132350884". Required.string
maxItemsMaximum number of unique books to return. Results are paginated automatically and deduplicated by ISBN (or title + author).integer
notionConnectorOptional. Write each result as a page into your Notion when the run finishes. Authorize a Notion connector once in Settings → API & Integrations → MCP connectors, then pick it here. Leave empty to skip (default), results are always saved to the dataset regardless.string
notionParentIdOptional. The Notion data source ID of the database to write into (only used if a Notion connector is set). Leave empty to create the pages privately in your workspace instead.string
googleApiKeyOptional. Only used when Source = Google Books. Keyless Google Books calls share one anonymous quota with the whole internet and it is usually already spent, so a free key of your own is the reliable way to use that source.string

What you get

A structured dataset — each result includes fields like:

authorsaverageRatingcategoriescoverImagedescriptiondetailsisbnlanguagepageCountpricepublishedDatepublisherqueryratingsCounttitleurl

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

4 ready-to-run use cases

Science Fiction Book List with ISBNs, Open Library

Build a science fiction book list from Open Library: title, authors, first publish year, language, ISBN and cover art. Up to 100 rows, no API key needed.

Machine Learning Books: Metadata, ISBN and Ratings

Machine learning books as structured rows: title, authors, publisher, year, ISBN, rating, cover. Prices are not in the output on the keyless route.

Open Library API Search by Subject, Author or Title

Search the Open Library API and get ISBN, authors, publisher, year, page count, rating and cover art as JSON. Free and keyless. Blurb text is not included.

Google Books API Search Without Your Own API Key

Book lookups via the Google Books API: title, authors, ISBN, publisher, year, cover. Keyless runs share a quota and fall back to Open Library when it runs out.

Related tools in Media & Entertainment Data

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

TVMaze TV Show Scraper iconMedia & Entertainment Data

TVMaze TV Show Scraper

Search TVMaze for TV shows and people. Get ratings, genres, network, IMDb IDs, images and full episode lists, as JSON. $2 per 1,000 rows.

Ready to run — no setup

MusicBrainz Scraper iconMedia & Entertainment Data

MusicBrainz Scraper

Scrape MusicBrainz artists, releases, recordings and labels. Every row has an MBID, plus names, types, dates and tags. No API key. $0.20 per 1,000 records.

Ready to run — no setup

IMDb Search Scraper iconMedia & Entertainment Data

IMDb Search Scraper

Search IMDb for titles, people and companies: IMDb ID, year, category, cast line, poster, URL. About 8 per query. $2.50 per 1,000.

3 use cases

Steam Games Scraper iconMedia & Entertainment Data

Steam Games Scraper

Scrape Steam games with no API key. Get price, discount, genres, developers, Metacritic, platforms, SteamSpy stats and player reviews. $2 per 1,000 rows.

3 use cases

See all Media & Entertainment Data →

Books Scraper: book metadata from Open Library or Google Books

Search by keywords, a title, a subject or an ISBN and get one row per book: title, subtitle, authors, publisher, year, ISBN, page count, subjects, rating, language and a cover image. Both sources come out in the same shape, so you can switch between them without rewriting anything downstream.

The two sources 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
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

🔍 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 you give it

{
  "source": "openlibrary",
  "query": "clean code",
  "maxItems": 50
}
FieldDefaultWhat it is
querynoneRequired. Keywords, a title, a subject, or isbn:9780132350884. The Console shows clean code as an example, but that is a prefill, so 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 Console 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. Authorise a connector once under Settings, API and Integrations, MCP connectors, then pick it here.
notionParentIdnoneOptional. The Notion data source id 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 recent run:

{
  "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
}
FieldWhat it is
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.
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.

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.

The RATE_LIMITED notice arrives as the first row in the dataset, before the books. A run that opens with what looks like an error is usually a run that worked.

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.

▶️ How to run it

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?

$1.00 per 1,000 books. Flat on every Apify plan, no volume tiers, and the same price whichever catalogue answered.

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.

💡 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 catalogue scraper do you need?

If you wantUse
Books, ISBNs, publishers, subjects and coversThis one
TV shows, people and full episode listsTV Show Scraper
Film and TV titles with IMDb idsIMDb Search Scraper
iPhone and iPad apps and their reviewsApp Store Scraper
Company reviews and ratingsTrustpilot Scraper

❓ Questions people ask

Do I need a key? 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.

Is this legal? 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 scraping and the law 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.