Goodreads API Python Client

Extract Goodreads data with our Goodreads API Python client. Get programmatic access to book details, author information, reviews, ratings, and more using simple Python code. Start free, no credit card required.

POWERING THE WORLD'S TOP DATA-DRIVEN TEAMS

Integrate our Goodreads API

The Apify API client for Python is the official library that allows you to use Goodreads API in Python, providing convenience functions and automatic retries on errors. Get started with simple pip installation and robust error handling built-in.

Python

Python

1from apify_client import ApifyClient
2
3# Initialize the ApifyClient with your Apify API token
4# Replace '<YOUR_API_TOKEN>' with your token.
5client = ApifyClient("<YOUR_API_TOKEN>")
6
7# Prepare the Actor input
8run_input = {
9 "search": "harry potter",
10 "startUrls": [
11 "https://www.goodreads.com/search?q=game+of+thrones&qid=",
12 "https://www.goodreads.com/book/show/59576065-acceptance",
13 "https://www.goodreads.com/list/show/1362.Best_History_Books_",
14 "https://www.goodreads.com/shelf/show/fiction",
15 "https://www.goodreads.com/genres/business",
16 "https://www.goodreads.com/author/list/1221698.Neil_Gaiman",
17 ],
18 "maxItems": 1,
19 "endPage": 1,
20 "extendOutputFunction": "($) => { return {} }",
21 "customMapFunction": "(object) => { return {...object} }",
22 "proxy": {
23 "useApifyProxy": True,
24 "apifyProxyGroups": ["RESIDENTIAL"],
25 },
26}
27
28# Run the Actor and wait for it to finish
29run = client.actor("epctex/goodreads-scraper").call(run_input=run_input)
30
31# Fetch and print Actor results from the run's dataset (if there are any)
32print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
33for item in client.dataset(run["defaultDatasetId"]).iterate_items():
34 print(item)
35
36# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

Get data with Goodreads API Python client

Use our Python API client to extract Goodreads data by providing search terms or Goodreads URLs with your filters. The API returns structured data, including book details, author information, reviews, ratings, and more, which is perfect for pandas DataFrames, data analysis, and Python applications.

Input

{
"proxy": {
"useApifyProxy": true
},
"endPage": 5,
"maxItems": 100,
"startUrls": [
"[<https://www.goodreads.com/search?utf8=✓&query=stephen>](<https://www.goodreads.com/search?utf8=%E2%9C%93&query=stephen>)",
"[<https://www.goodreads.com/book/show/41865.Twilight>](<https://www.goodreads.com/book/show/41865.Twilight>)",
"[<https://www.goodreads.com/list/show/99918.Cassie_s_Cover_of_the_Year_2016>](<https://www.goodreads.com/list/show/99918.Cassie_s_Cover_of_the_Year_2016>)",
"[<https://www.goodreads.com/shelf/show/art>](<https://www.goodreads.com/shelf/show/art>)",
"[<https://www.goodreads.com/genres/most_read/christian-fiction>](<https://www.goodreads.com/genres/most_read/christian-fiction>)",
"[<https://www.goodreads.com/author/list/1221698.Neil_Gaiman>](<https://www.goodreads.com/author/list/1221698.Neil_Gaiman>)"
],
"includeReviews": false,
"csvFriendlyOutput": false
}

Output

{
"url": "https://www.goodreads.com/book/show/58408830-the-lazarus-men",
"ISBN": "1365417077",
"image": "https://images-na.ssl-images-amazon.com/images/S/compressed.photo.goodreads.com/books/1624462365i/58408830.jpg",
"title": "The Lazarus Men",
"Series": null,
"bookId": 58408830,
"rating": 4.23,
"reviews": [
{
"date": "July 20, 2018",
"html": "My rating 3.6<br><br>Book The Lazarus Men by Christian Warren Freed is a solid sci-fi novel...",
"text": "My rating 3.6. Book The Lazarus Men by Christian Warren Freed is a solid sci-fi novel set in the future where humankind has reached the stars. In the book, the author draws us into a world full of conspiracy, in which those who have everything want even more. Gerald LaPlante, an ordinary man, witnesses a murder and finds himself hunted by secret organizations. The story is good, though some parts could have been more developed. Still, sci-fi fans will likely enjoy it.",
"author": "Stjepan Cobets",
"rating": 4,
"shelves": [
"indie",
"science-fiction"
],
"userUrl": "https://www.goodreads.com/user/show/44823204-stjepan-cobets",
"numOfLikes": 40
}
],
"buyLinks": [
"https://www.amazon.com/gp/product/B09L2CPT2L/ref=x_gr_bb_kindle?caller=Goodreads&tag=x_gr_bb_kindle-20",
"http://www.amazon.com/gp/product/1365417077/ref=x_gr_bb_amazon?ie=UTF8&tag=x_gr_bb_amazon-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=1365417077&SubscriptionId=1MGPYB6YW3HWK55XCGG2",
"https://www.amazon.com/s?k=The+Lazarus+Men&i=audible&ref=x_gr_w_bb_audible-20&tag=x_gr_w_bb_audible-20",
"https://www.barnesandnoble.com/w/?ean=9781365417078",
"http://affiliates.abebooks.com/c/64613/77416/2029?u=http%3A%2F%2Fwww.abebooks.com%2Fservlet%2FSearchResults%3Fisbn%3D1365417077",
"https://click.linksynergy.com/fs-bin/click?id=GwEz7vxblVU&subid=&offerid=361251.1&type=10&tmpid=9309&u1=x_gr_w_bb&RD_PARM1=https%3A%2F%2Fwww.kobo.com%2Fus%2Fen%2Fsearch%3FQuery%3D9781365417078",
"https://geo.itunes.apple.com/us/book/isbn9781365417078?at=11lvdC&mt=11&ls=1",
"https://play.google.com/store/search?q=9781365417078&c=books&PCamrefID=bookpage&PAffiliateID=10lHMS",
"http://www.bookdepository.com/search?searchTerm=1365417077&search=Find+book&a_aid=goodreads",
"http://click.linksynergy.com/fs-bin/click?id=GwEz7vxblVU&subid=&offerid=189673.1&type=10&tmpid=939&&u1=x_gr_w_bb&RD_PARM1=http%3A%2F%2Fwww.alibris.com%2Fbooksearch%3Fkeyword%3D1365417077",
"https://www.chapters.indigo.ca/en-ca/home/search/?keywords=9781365417078",
"http://www.tkqlhce.com/ob117vpyvpxCFFFKMHLCEDHLGHKECEFMIGDFFHJDDD?url=http%3A%2F%2Fwww.betterworldbooks.com%2FThe+Lazarus+Men-H0.aspx%3FSearchTerm%3D1365417077",
"https://www.indiebound.org/book/9781365417078",
"https://prf.hn/click/camref:1101ljNE7/pubref:1365417077/destination:https://www.thriftbooks.com/browse/?b.search=1365417077"
],
"authorUrl": "https://www.goodreads.com/author/show/8137590.Christian_Warren_Freed",
"Characters": [],
"authorName": "Christian Warren Freed",
"bookFormat": "Paperback",
"authorAbout": "Christian W. Freed was born in Buffalo, N.Y. After spending more than 20 years in the active-duty US Army, he turned to writing. He has published over 25 military fantasy and science fiction novels, memoirs from Iraq and Afghanistan, a children's book, and books for indie authors. His first book, 'Hammers in the Wind', has been the #1 free Kindle book four times. He holds a certificate from the L. Ron Hubbard Writers of the Future Contest (4th place). He graduated from Campbell University with a history degree and a Master's in Digital Communications from UNC Chapel Hill. He lives near Raleigh, N.C., with his family and two Bernese Mountain Dogs. Website: https://christianwfreed.com",
"description": "It is the 23rd century. Humankind has reached the stars, building a tentative empire across a score of worlds. Earth's central government rules weakly while several worlds seek independence. Shadow organizations manipulate the political landscape, the most secretive of which is The Lazarus Men. Gerald LaPlant, an ordinary man, becomes entangled in their war when he witnesses a murder and uncovers a conspiracy.",
"publishedBy": "Warfighter Books",
"OriginalTitle": null,
"numberOfPages": 242,
"publishedDate": "2021-06-01",
"LiteraryAwards": [],
"EditionLanguage": null,
"numberOfRatings": 919,
"numberOfReviews": 35,
"firstPublishedDate": "1970-01-01"
}

How to use Goodreads API

1Sign up for Apify account

Creating an account is quick and free — no credit card required. Your account gives you access to more than 5,000 scrapers and APIs.

Get started for free

2Install Apify Python client

Install the Apify Python client using pip: pip install apify-client. This package provides a simple interface to interact with Goodreads API from your Python applications.


3Get your Apify API token

Go to settings in the Apify console and navigate to the “API & Integrations” tab. There, create a new token and save it for later.


4Integrate Goodreads API

Navigate to the Goodreads API page and click on the API dropdown menu in the top right corner. In the dropdown menu, you can see API clients, API endpoints, and more. Use the provided Python code examples to integrate Goodreads API into your Python application.

Open Goodreads Python API

5Get your Goodreads data via API

The Goodreads API returns structured JSON data that works perfectly with pandas, NumPy, and other Python data analysis libraries.

Why use Apify?

Never get blocked

Every plan (free included) comes with Apify Proxy, which is great for avoiding blocking and giving you access to geo-specific content.

Customers love us

We truly care about the satisfaction of our users and thanks to that we're one of the best-rated data extraction platforms on both G2 and Capterra.

Monitor your runs

With our latest monitoring features, you always have immediate access to valuable insights on the status of your web scraping tasks.

Export to various formats

Your datasets can be exported to any format that suits your data workflow, including Excel, CSV, JSON, XML, HTML table, JSONL, and RSS.

Integrate Apify to your workflow

You can integrate your Apify runs with platforms such as Zapier, Make, Keboola, Google Drive, or GitHub. Connect with practically any cloud service or web app.

Large developer community

Apify is built by developers, so you'll be in good hands if you have any technical questions. Our Discord server is always here to help!

Frequently asked questions

Goodreads does not offer a good and free API for public use. However, we provide our own unofficial Goodreads API that gets all the up-to-date data you need, serving as an alternative to access Goodreads information programmatically for your projects and applications.

Yes, you can try our Goodreads API for free! No credit card required, no strings attached. Just create an Apify account with free $5 monthly prepaid usage, get your API token, and start using the Goodreads API.

Goodreads API allows you to get data such as book details including titles and descriptions, author information and biographies, user ratings and review counts, complete review text and ratings, book metadata like ISBN and publication dates, genre classifications, series information, and comprehensive book listings from searches and shelves for complete literary data analysis.

Getting started with our Goodreads API is easy — simply create a free Apify account, get your API token, and start using the Goodreads API in Python, JavaScript, CLI, cURL, OpenAPI, or MCP.

Get started with Goodreads API Python client today

Get your first Goodreads data in Python in less than 5 minutes. No credit card required. No commitment. Cancel anytime.