# Goodreads API

> Goodreads returns book listings, ratings, reviews, author books, and quotes, available as a workflow and API.

Search books returns public listings by title, author, or keywords; provide a query, with optional page and result maximum. Get book returns details, ratings, and edition information; provide a title, ISBN, or book link, optionally with an author. Get book reviews returns public text reviews; List author books returns an author’s titles; Search quotes finds quotes by title, author, or topic.

- Page: https://fous.com/workflows/goodreads
- Handle: `@goodreads`
- Category: [Entertainment](https://fous.com/workflows/category/entertainment)
- Source website: https://goodreads.com
- Last verified: Sep 28, 2026
- Fous is not affiliated with Goodreads.

## Methods

### Get book

Operation `get_book`, version 1. 1 credit per call.

Get one Goodreads book’s details, reader ratings, and edition information by title, ISBN, or book link. A title uses the best search match; edition details can vary.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `book` | string | yes | `"9780735211292"` | Book title, ISBN, or Goodreads book link, for example Atomic Habits. |
| `author` | string | no | `"James Clear"` | Author to distinguish books with similar titles, for example James Clear. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "book"
  ],
  "properties": {
    "book": {
      "type": "string",
      "description": "Book title, ISBN, or Goodreads book link, for example Atomic Habits.",
      "examples": [
        "9780735211292",
        "Atomic Habits",
        "https://www.goodreads.com/book/show/186074-the-name-of-the-wind"
      ]
    },
    "author": {
      "type": "string",
      "default": "",
      "description": "Author to distinguish books with similar titles, for example James Clear.",
      "examples": [
        "James Clear"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "book": "9780735211292"
    },
    {
      "book": "Atomic Habits",
      "author": "James Clear"
    },
    {
      "book": "https://www.goodreads.com/book/show/186074-the-name-of-the-wind"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `title` | string | `"Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones"` | Book title. |
| `awards` | array |  | Award names and outcomes. |
| `format` | string or null | `"Kindle Edition"` | Format of this edition. |
| `genres` | array |  | Genres. |
| `authors` | array |  | Book authors. |
| `isbn_13` | string or null | `"9780735211292"` | ISBN-13 of this edition. |
| `description` | string or null |  | Book description in plain text. |
| `series_name` | string or null | `"The Kingkiller Chronicle"` | Series title. |
| `series_number` | string or null | `"1"` | Position in the series, including fractional positions. |
| `average_rating` | number or null | `4.31` | Average reader rating from 0 to 5. |
| `goodreads_link` | string | `"https://www.goodreads.com/book/show/59910150-atomic-habits"` | Goodreads book page link. |
| `number_of_pages` | integer or null | `306` | Pages in this edition. |
| `cover_image_link` | string or null | `"https://m.media-amazon.com/images/S/compressed.photo.goodreads.com/books/1736660900i/59910150.jpg"` | Cover image link. |
| `rating_breakdown` | object |  | Rating counts by star level. |
| `rating_breakdown.1_stars` | integer or null | `14943` | Count of 1-star ratings. |
| `rating_breakdown.2_stars` | integer or null | `36341` | Count of 2-star ratings. |
| `rating_breakdown.3_stars` | integer or null | `175357` | Count of 3-star ratings. |
| `rating_breakdown.4_stars` | integer or null | `471577` | Count of 4-star ratings. |
| `rating_breakdown.5_stars` | integer or null | `729468` | Count of 5-star ratings. |
| `goodreads_book_id` | string | `"59910150"` | Goodreads book ID. |
| `number_of_ratings` | integer or null | `1427686` | Number of ratings. |
| `number_of_reviews` | integer or null | `83793` | Number of written reviews. |
| `first_published_date` | string or null | `"2018-10-18"` | First publication date (YYYY-MM-DD), or year if only a year is known. |

**Example input**

```json
{
  "book": "9780735211292"
}
```

**Example output**

```json
{
  "title": "Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones",
  "awards": [
    "Goodreads Choice Award — Nonfiction (Nominee)"
  ],
  "format": "Kindle Edition",
  "genres": [
    "Self Help",
    "Nonfiction",
    "Psychology"
  ],
  "authors": [
    "James Clear"
  ],
  "isbn_13": "9780735211292",
  "description": "The instant New York Times bestseller. Over 1 million copies sold! \r\n\r\nTiny Changes, Remarkable Results\r\n\r\nNo matter your goals, Atomic Habits offers a proven framework for improving--every day. James…",
  "series_name": null,
  "series_number": null,
  "average_rating": 4.31,
  "goodreads_link": "https://www.goodreads.com/book/show/59910150-atomic-habits",
  "number_of_pages": 306,
  "cover_image_link": "https://m.media-amazon.com/images/S/compressed.photo.goodreads.com/books/1736660900i/59910150.jpg",
  "rating_breakdown": {
    "1_stars": 14943,
    "2_stars": 36341,
    "3_stars": 175357,
    "4_stars": 471577,
    "5_stars": 729468
  },
  "goodreads_book_id": "59910150",
  "number_of_ratings": 1427686,
  "number_of_reviews": 83793,
  "first_published_date": "2018-10-18"
}
```

### Get book reviews

Operation `get_book_reviews`, version 1. 1 credit per call.

Get public reader reviews for a Goodreads book by title or book link. Choose popular or newest reviews, optionally restrict by star rating, and skip reviews without text.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `book` | string | yes | `"The Hobbit"` | Book title or Goodreads book link, such as Atomic Habits. |
| `sort` | string | no | `"newest"` | Review order, such as newest. |
| `stars` | integer | no | `5` | Only reviews with this star rating, such as 5. |
| `author` | string | no | `"J.R.R. Tolkien"` | Author to select the right book, such as James Clear. |
| `max_results` | integer | no | `35` | Maximum number of text reviews, such as 20. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "book"
  ],
  "properties": {
    "book": {
      "type": "string",
      "description": "Book title or Goodreads book link, such as Atomic Habits.",
      "examples": [
        "The Hobbit",
        "Atomic Habits",
        "https://www.goodreads.com/book/show/40121378-atomic-habits"
      ]
    },
    "sort": {
      "enum": [
        "popular",
        "newest"
      ],
      "type": "string",
      "default": "popular",
      "description": "Review order, such as newest.",
      "examples": [
        "newest",
        "popular"
      ]
    },
    "stars": {
      "type": "integer",
      "maximum": 5,
      "minimum": 1,
      "description": "Only reviews with this star rating, such as 5.",
      "examples": [
        5,
        2
      ]
    },
    "author": {
      "type": "string",
      "description": "Author to select the right book, such as James Clear.",
      "examples": [
        "J.R.R. Tolkien"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of text reviews, such as 20.",
      "x-fous-developer": true,
      "examples": [
        35,
        3
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "book": "The Hobbit",
      "sort": "newest",
      "stars": 5,
      "author": "J.R.R. Tolkien",
      "max_results": 35
    },
    {
      "book": "Atomic Habits"
    },
    {
      "book": "https://www.goodreads.com/book/show/40121378-atomic-habits",
      "sort": "popular",
      "stars": 2,
      "max_results": 3
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `title` | string | `"Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones"` | Book title. |
| `author` | string or null | `"James Clear"` | Book author. |
| `reviews` | array |  | Reviews in the selected order. |
| `reviews[].likes` | integer | `866` | Number of likes. |
| `reviews[].stars` | integer or null | `2` | Stars given by the reviewer. |
| `reviews[].comments` | integer | `86` | Number of comments. |
| `reviews[].review_id` | string or null | `"2808080016"` | Goodreads review ID. |
| `reviews[].review_date` | string or null | `"2019-05-03"` | Review date. |
| `reviews[].review_link` | string | `"https://www.goodreads.com/review/show/2808080016"` | Goodreads review page. |
| `reviews[].review_text` | string | `"Nope. Nawet kiedy desperacko szukam motywacji, kołczingowe pierdololo dalej na mnie nie działa."` | Review text without markup. |
| `reviews[].reviewer_name` | string or null | `"Acordul Fin"` | Reviewer name. |
| `goodreads_link` | string | `"https://www.goodreads.com/book/show/40121378-atomic-habits"` | Goodreads book page. |

**Example input**

```json
{
  "book": "https://www.goodreads.com/book/show/40121378-atomic-habits",
  "sort": "popular",
  "stars": 2,
  "max_results": 3
}
```

**Example output**

```json
{
  "title": "Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones",
  "author": "James Clear",
  "reviews": [
    {
      "likes": 866,
      "stars": 2,
      "comments": 86,
      "review_id": "2808080016",
      "review_date": "2019-05-03",
      "review_link": "https://www.goodreads.com/review/show/2808080016",
      "review_text": "“The more pride you have in a particular aspect of your identity, the more motivated you will be to maintain the habits associated with it. If you’re proud of how your hair looks, you’ll develop all s…",
      "reviewer_name": "Acordul Fin"
    },
    {
      "likes": 108,
      "stars": 2,
      "comments": 7,
      "review_id": "2593977610",
      "review_date": "2020-04-11",
      "review_link": "https://www.goodreads.com/review/show/2593977610",
      "review_text": "Well, there’s almost no single shred of original content here. It could be a fine book if it’s the first self-improvement book you have started to read.\n\nThe science is also flawed. He presents the fo…",
      "reviewer_name": "Amir Tesla"
    },
    {
      "likes": 66,
      "stars": 2,
      "comments": 1,
      "review_id": "4855939290",
      "review_date": "2022-07-22",
      "review_link": "https://www.goodreads.com/review/show/4855939290",
      "review_text": "Nope. Nawet kiedy desperacko szukam motywacji, kołczingowe pierdololo dalej na mnie nie działa.",
      "reviewer_name": "marta (sezon literacki)"
    }
  ],
  "goodreads_link": "https://www.goodreads.com/book/show/40121378-atomic-habits"
}
```

### List author books

Operation `list_author_books`, version 1. 1 credit per call.

List an author’s Goodreads books with ratings, covers, series and first-publication years, ordered by popularity or newest publication. Public book details may omit some fields.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `sort` | string | no | `"newest"` | Book order: popular or newest. Example: popular. |
| `author` | string | yes | `"Stephen King"` | Author name or Goodreads author link, such as Brené Brown or https://www.goodreads.com/author/show/162578.Bren_Brown. |
| `max_results` | integer | no | `5` | Maximum number of books to return, up to 100. Example: 30. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "author"
  ],
  "properties": {
    "sort": {
      "enum": [
        "popular",
        "newest"
      ],
      "type": "string",
      "default": "popular",
      "description": "Book order: popular or newest. Example: popular.",
      "examples": [
        "newest"
      ]
    },
    "author": {
      "type": "string",
      "description": "Author name or Goodreads author link, such as Brené Brown or https://www.goodreads.com/author/show/162578.Bren_Brown.",
      "examples": [
        "Stephen King",
        "Brené Brown",
        "https://www.goodreads.com/author/show/3389.Stephen_King"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 30,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of books to return, up to 100. Example: 30.",
      "x-fous-developer": true,
      "examples": [
        5,
        3
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "sort": "newest",
      "author": "Stephen King",
      "max_results": 5
    },
    {
      "author": "Brené Brown"
    },
    {
      "author": "https://www.goodreads.com/author/show/3389.Stephen_King",
      "max_results": 3
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `books` | array |  | Books in the selected order. |
| `books[].title` | string | `"Other Worlds Than These"` | Book title. |
| `books[].book_url` | string | `"https://www.goodreads.com/book/show/247593404-other-worlds-than-these"` | Goodreads book link. |
| `books[].series_name` | string or null | `"The Talisman"` | Series name, if any. |
| `books[].ratings_count` | integer or null | `25` | Number of reader ratings, if available. |
| `books[].series_number` | number or null | `3` | Book number in its series, if any. |
| `books[].average_rating` | number or null | `4.24` | Average reader rating from 0 to 5, if available. |
| `books[].cover_image_url` | string or null | `"https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1781173110i/247593404._SY75_.jpg"` | Book cover image link, if available. |
| `books[].goodreads_book_id` | string | `"247593404"` | Goodreads book ID. |
| `books[].first_published_year` | integer or null | `2026` | Year the book was first published, if available. |
| `author_url` | string | `"https://www.goodreads.com/author/show/3389.Stephen_King"` | Goodreads author link. |
| `author_name` | string | `"Stephen King"` | Author name. |
| `author_photo_url` | string or null | `"https://images.gr-assets.com/authors/1362814142p8/3389.jpg"` | Author photo link, if available. |

**Example input**

```json
{
  "sort": "newest",
  "author": "Stephen King",
  "max_results": 5
}
```

**Example output**

```json
{
  "books": [
    {
      "title": "Other Worlds Than These",
      "book_url": "https://www.goodreads.com/book/show/247593404-other-worlds-than-these",
      "series_name": "The Talisman",
      "ratings_count": 25,
      "series_number": 3,
      "average_rating": 4.24,
      "cover_image_url": "https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1781173110i/247593404._SY75_.jpg",
      "goodreads_book_id": "247593404",
      "first_published_year": null
    },
    {
      "title": "Dinah’s Hat",
      "book_url": "https://www.goodreads.com/book/show/256110566-dinah-s-hat",
      "series_name": null,
      "ratings_count": 19,
      "series_number": null,
      "average_rating": 3.63,
      "cover_image_url": "https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1785385167i/256110566._SX50_.jpg",
      "goodreads_book_id": "256110566",
      "first_published_year": 2026
    },
    {
      "title": "Stephen King 5-Book Box Set: If It Bleeds, The Institute, IT, Misery, Pet Sematary",
      "book_url": "https://www.goodreads.com/book/show/244686838-stephen-king-5-book-box-set",
      "series_name": null,
      "ratings_count": 7,
      "series_number": null,
      "average_rating": 3.57,
      "cover_image_url": "https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/books/1767213083i/244686838._SX50_.jpg",
      "goodreads_book_id": "244686838",
      "first_published_year": 2025
    }
  ],
  "author_url": "https://www.goodreads.com/author/show/3389.Stephen_King",
  "author_name": "Stephen King",
  "author_photo_url": "https://images.gr-assets.com/authors/1362814142p8/3389.jpg"
}
```

### Search books

Operation `search_books`, version 1. 1 credit per call.

Search Goodreads books by title, author, or keywords. Returns books in Goodreads search order with ratings, series details, covers, links, and first published years. Results are limited to public listings.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `page` | integer | no | `2` | Goodreads search results page to start from, for example 2. |
| `query` | string | yes | `"Atomic Habits"` | Book title, author, or keywords, for example Atomic Habits. |
| `max_results` | integer | no | `1` | Maximum books to return, for example 20. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "page": {
      "type": "integer",
      "default": 1,
      "minimum": 1,
      "description": "Goodreads search results page to start from, for example 2.",
      "x-fous-developer": true,
      "examples": [
        2
      ]
    },
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Book title, author, or keywords, for example Atomic Habits.",
      "examples": [
        "Atomic Habits",
        "Mistborn",
        "zzxxqqttvv8837744"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum books to return, for example 20.",
      "x-fous-developer": true,
      "examples": [
        1
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "query": "Atomic Habits"
    },
    {
      "page": 2,
      "query": "Mistborn",
      "max_results": 1
    },
    {
      "query": "zzxxqqttvv8837744"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `books` | array |  |  |
| `books[].title` | string | `"The Hero of Ages (3 of 3) [Dramatized Adaptation]"` | Book title. |
| `books[].authors` | array |  | Book authors. |
| `books[].book_url` | string | `"https://www.goodreads.com/book/show/25198403"` | Goodreads book page link. |
| `books[].series_name` | string or null | `"Mistborn [Dramatized Adaptation]"` | Series title, if any. |
| `books[].ratings_count` | integer or null | `579` | Number of Goodreads ratings. |
| `books[].series_number` | string or null | `"3, part 3"` | Position in the series, if any (may include a part number). |
| `books[].average_rating` | number or null | `4.62` | Average Goodreads rating, out of 5. |
| `books[].cover_image_url` | string or null | `"https://m.media-amazon.com/images/S/compressed.photo.goodreads.com/books/1427069882i/25198403.jpg"` | Book cover image link. |
| `books[].goodreads_book_id` | string | `"25198403"` | Goodreads book ID. |
| `books[].first_published_year` | integer or null |  | Year first published, when shown on the book page. |

**Example input**

```json
{
  "page": 2,
  "query": "Mistborn",
  "max_results": 1
}
```

**Example output**

```json
{
  "books": [
    {
      "title": "The Hero of Ages (3 of 3) [Dramatized Adaptation]",
      "authors": [
        "Brandon Sanderson"
      ],
      "book_url": "https://www.goodreads.com/book/show/25198403",
      "series_name": "Mistborn [Dramatized Adaptation]",
      "ratings_count": 579,
      "series_number": "3, part 3",
      "average_rating": 4.62,
      "cover_image_url": "https://m.media-amazon.com/images/S/compressed.photo.goodreads.com/books/1427069882i/25198403.jpg",
      "goodreads_book_id": "25198403",
      "first_published_year": null
    }
  ]
}
```

### Search quotes

Operation `search_quotes`, version 1. 1 credit per call.

Find popular Goodreads quotes matching a book title, author, or topic, ordered by likes. Returns up to 100 public quotes.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `query` | string | yes | `"Maya Angelou"` | Book title, author name, or topic to search for, for example "Maya Angelou". |
| `max_results` | integer | no | `35` | Maximum number of quotes to return, for example 40. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "description": "Book title, author name, or topic to search for, for example \"Maya Angelou\".",
      "examples": [
        "Maya Angelou",
        "leadership",
        "Pride and Prejudice"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of quotes to return, for example 40.",
      "x-fous-developer": true,
      "examples": [
        35,
        5
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "query": "Maya Angelou"
    },
    {
      "query": "leadership",
      "max_results": 35
    },
    {
      "query": "Pride and Prejudice",
      "max_results": 5
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `quotes` | array |  |  |
| `quotes[].tags` | array |  |  |
| `quotes[].likes` | integer | `89873` |  |
| `quotes[].author` | string | `"Maya Angelou"` |  |
| `quotes[].book_title` | string or null | `"I Know Why the Caged Bird Sings"` |  |
| `quotes[].quote_link` | string | `"https://www.goodreads.com/quotes/5934-i-ve-learned-that-people-will-forget-what-you-said-people"` |  |
| `quotes[].quote_text` | string | `"“I've learned that people will forget what you said, people will forget what you did, but people will never forget how ` |  |

**Example input**

```json
{
  "query": "Maya Angelou"
}
```

**Example output**

```json
{
  "quotes": [
    {
      "tags": [],
      "likes": 89873,
      "author": "Maya Angelou",
      "book_title": null,
      "quote_link": "https://www.goodreads.com/quotes/5934-i-ve-learned-that-people-will-forget-what-you-said-people",
      "quote_text": "“I've learned that people will forget what you said, people will forget what you did, but people will never forget how you made them feel.”"
    },
    {
      "tags": [
        "1970",
        "inspirational",
        "stories"
      ],
      "likes": 31652,
      "author": "Maya Angelou",
      "book_title": "I Know Why the Caged Bird Sings",
      "quote_link": "https://www.goodreads.com/quotes/512-there-is-no-greater-agony-than-bearing-an-untold-story",
      "quote_text": "“There is no greater agony than bearing an untold story inside you.”"
    },
    {
      "tags": [
        "1993",
        "advice",
        "complaining"
      ],
      "likes": 15356,
      "author": "Maya Angelou",
      "book_title": "Wouldn't Take Nothing for My Journey Now",
      "quote_link": "https://www.goodreads.com/quotes/14821-what-you-re-supposed-to-do-when-you-don-t-like-a",
      "quote_text": "“What you're supposed to do when you don't like a thing is change it. If you can't change it, change the way you think about it. Don't complain.”"
    }
  ]
}
```

## Quick start

Call the API with a Fous API key (`FOUS_API_KEY`). To create one, turn on Developer mode in Fous Studio, then open Keys & connections → API keys (https://app.fous.com/keys).

```bash
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
: "${FOUS_API_KEY:?Set FOUS_API_KEY before running this example}"

curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 120 \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@goodreads",
  "visibility": "public",
  "operation": "get_book",
  "version": 1,
  "input": {
    "book": "9780735211292"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
import json
import os
import urllib.error
import urllib.request

api_key = os.environ.get("FOUS_API_KEY")
if not api_key:
    raise RuntimeError("Set FOUS_API_KEY before running this example")

body = json.loads("{\n  \"api\": \"@goodreads\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_book\",\n  \"version\": 1,\n  \"input\": {\n    \"book\": \"9780735211292\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=120) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
// First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
const apiKey = process.env.FOUS_API_KEY;
if (!apiKey) throw new Error("Set FOUS_API_KEY before running this example");

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(120_000),
  body: JSON.stringify({
  "api": "@goodreads",
  "visibility": "public",
  "operation": "get_book",
  "version": 1,
  "input": {
    "book": "9780735211292"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

Or describe the data in plain language: send `{"api":"@goodreads","prompt":"Describe the data you need, with every detail"}` to the same URL. Fous fills in the input, runs the method that fits and returns only the fields you asked for; `data.route.calls[].request` is the exact call it made. Routing is free; the run costs the same.

## Use cases

- Compare reader ratings across book search results.
- Review star-rating breakdowns for a specific edition.
- Analyze public reviews by date or star rating.
- Track an author’s books by popularity or publication order.
- Find popular quotes associated with a book, author, or topic.

## FAQ

### Is Fous affiliated with Goodreads?

No. Fous is not affiliated with Goodreads. This workflow reads the public goodreads.com website and returns its data.

### How much does it cost?

Each run costs 1 credit. With pay-as-you-go, a credit costs 1¢; monthly plans cost less per credit.

### Do I need a Goodreads account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from goodreads.com when you run it; repeating the same request within a day may return the saved result. Fous checks this workflow automatically; it last passed a check on Sep 28, 2026.

### What is a book’s average rating and rating breakdown?

Get book returns the average reader rating and counts by star level.

### What are readers saying about a book?

Get book reviews returns public text reviews, with options for order and star rating.

### Which books has an author published?

List author books returns an author’s books ordered by popularity or newest publication.

## Related

- [Google Books API](https://fous.com/workflows/google-books.md): Google Books searches books and provides book details, reader ratings, and local ebook prices when available; newest results sort by publication date.
- [Open Library API](https://fous.com/workflows/open-library.md): Open Library returns book search results, catalog details, and author works; availability reflects listed editions, not current loan availability, and catalog details may be missing.
- [BrainyQuote API](https://fous.com/workflows/brainyquote.md): BrainyQuote returns topic-matched quotes in displayed order, a person’s description and up to 100 quotes with topic tags and links, or the quote shown for the chosen daily category and BrainyQuote’s current day.
- [Booking.com API](https://fous.com/workflows/booking-com.md): Booking.com helps find stays, property details and public guest reviews; prices and cancellation terms depend on selected dates, and displayed prices may exclude taxes and fees.
- [Project Gutenberg API](https://fous.com/workflows/project-gutenberg.md): Project Gutenberg offers free public-domain ebooks and reading materials, with searchable book details and plain text from the most-downloaded matching edition available.
- [Google Maps API](https://fous.com/workflows/google-maps.md): Google Maps returns nearby places, public place details, up to 100 public reviews, and up to three routes; transit options vary by departure time.
- [Audible API](https://fous.com/workflows/audible.md): Audible offers audiobooks, podcasts, and audio entertainment, with public book details and current bestselling audiobook charts; availability and categories vary by store.
- [Steam API](https://fous.com/workflows/steam.md): Steam returns game details, country-specific prices, reviews, and current and historical player counts, plus player rankings and sales lists; some details or prices may be unavailable, and review totals span languages and verdicts.
- [All Entertainment workflows](https://fous.com/workflows/category/entertainment)
