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
1from apify_client import ApifyClient2
3# Initialize the ApifyClient with your Apify API token4# Replace '<YOUR_API_TOKEN>' with your token.5client = ApifyClient("<YOUR_API_TOKEN>")6
7# Prepare the Actor input8run_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 finish29run = 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"}
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 API5Get 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!
Python-ready Goodreads data extraction
Connect to hundreds of apps right away using ready-made integrations, or set up your own with webhooks and our API.
Explore our other Goodreads Python APIs
We have multiple Goodreads Python APIs available in our store. Browse our collection to find the one that works best for your project.

Goodreads Scraper
epctex/goodreads-scraper
Scrape goodreads.com for data on millions of books. Crawl book details for images, ISBN, author, description, title, buy links, number of reviews, page number, language, and all other details. You can specify search terms, filters, and much more.
349

Goodreads Email Scraper
scraper-mind/goodreads-email-scraper
GoodReads Email Scraper – Effortlessly scrape GoodReads emails by keywords & location for outreach, marketing & research! Fast, accurate & proxy-enabled for seamless scraping. 📊 Export data in JSON, CSV, Excel. Perfect for authors, marketers & researchers!
10

Goodreads Review Scraper 📚
easyapi/goodreads-review-scraper
A powerful scraper that extracts detailed book reviews from Goodreads, including review text, ratings, user information, and engagement metrics. Perfect for book analysis, reader sentiment research, and literary trend tracking.
23
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.
It is legal to scrape publicly available data from Goodreads. However, you should always review and comply with Goodreads’ terms of service and any applicable laws and regulations regarding web scraping. Additionally, be mindful of any rate limits or restrictions imposed by Goodreads to avoid potential issues.
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.