# Goodreads Book Reviews API Documentation

Retrieve public Goodreads reviews for one book by its legacy book id: for each review the reviewer name and url, rating (omitted for unrated reviews), review text, review date, like count, spoiler flag and a 1-based position. The book page lookup and the GraphQL reviews call count as one billable request. Page with the opaque after cursor from the previous response next_cursor field; has_more is true while a next page token exists. A valid empty review list is a successful response.

- **Documentation:** [https://scrappa.co/docs/goodreads-api/goodreads_reviews](https://scrappa.co/docs/goodreads-api/goodreads_reviews)
- **API group:** Goodreads API
- **Endpoint:** `GET https://scrappa.co/api/goodreads/reviews`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | integer | Yes | Goodreads legacy book id (the number in the book url). Example: 61215351. |
| `limit` | integer | No | Reviews per page, 1 to 50. Defaults to 30. |
| `after` | string | No | Cursor from the previous response next_cursor field. Omit for the first page. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/goodreads/reviews?id=61215351&limit=3"
```

## Example response

```json
{
    "success": true,
    "data": {
        "book_id": 61215351,
        "total_count": 58987,
        "has_more": true,
        "next_cursor": "NjAxMDAsMTU4OTUzMjQxMjEzNg",
        "items": [
            {
                "position": 1,
                "id": "kca://review:goodreads/amzn1.gr.review:goodreads.v1.Tg35rlXMraKMZ8Yoyhi5-Q",
                "rating": 3,
                "created_at": "2009-05-28T18:33:07Z",
                "like_count": 1051,
                "spoiler": false,
                "reviewer": {
                    "name": "J.G. Keely",
                    "url": "https://www.goodreads.com/user/show/84023-j-g-keely"
                }
            }
        ]
    },
    "meta": {
        "endpoint_family": "reviews",
        "billable": true
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A parameter is missing or invalid. This response is not billable. |
| 404 | Book Not Found | The requested Goodreads book was not found. This response is not billable. |
| 503 | Upstream Unavailable | Goodreads is temporarily unreachable. Retry later; this response is not billable. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
