Goodreads Review Comments API — A Review’s Thread

Read the comments under a review

The comment thread under one review, oldest first: each comment’s text, dates and commenter. Up to 100 in one request, continuing with a cursor. 1 credit per 10 comments.

POST /review-comments Reviews
https://api.fetchlayer.dev/goodreads/review-comments
OpenAPI JSON

Headers

Authorization string required

Bearer token — your FetchLayer API key.

Parameters

reviewId string required

The review’s id, as book-reviews returns it in reviews[].id.

limit integer optional

How many comments to return, 1–100; a larger value is served at 100. Comments come 10 to a page, and each page is 1 credit. (default: 10)

cursor string optional

The nextCursor from a previous response, passed back with the same other parameters, to continue where it stopped.

format string optional

json or markdown, lowercase; any other value is a 400. Over MCP, markdown returns the result rendered as text; the REST API accepts it and returns JSON. (default: json)

timeoutMs number optional

Per-request time limit in milliseconds (max 600000).

Response Fields

review-comments

Read the comments under a review

transport string

The data source: always the platform id, "goodreads".

notes string[]

Caveats about this response you can act on, such as a series listing fewer works than its total. Empty when there are none.

reviewId string

The review’s id.

commentCount number

Comments in this response.

comments object[]

The comments.

comments[].id string

The comment’s id.

comments[].text string

The comment as plain text; textHtml keeps its formatting.

comments[].createdAt string | null

When it was posted (ISO 8601); updatedAt is the last edit.

comments[].commenter object

{ id, name, url, imageUrl, isAuthor } for the commenter.

totalCount number | null

How many comments Goodreads has for this request in all, when it says.

nextCursor string | null

Pass back as cursor, with the same other parameters, to continue. null when there is nothing further.

hasNextPage boolean

Whether more comments remain.

pagesScraped number

Pages of results this response covers, which is what it costs: one credit per page.

Request

curl -X POST "https://api.fetchlayer.dev/goodreads/review-comments" \
  -H "Authorization: Bearer ss-your-key" \
  -H "Content-Type: application/json" \
  -d '{"reviewId":"kca://review:goodreads/amzn1.gr.review:goodreads.v1.K57x5TdipsgcUAYo53Udhg","limit":3}'

Response

{
  "transport": "goodreads",
  "notes": [],
  "reviewId": "kca://review:goodreads/amzn1.gr.review:goodreads.v1.K57x5TdipsgcUAYo53Udhg",
  "totalCount": 155,
  "commentCount": 3,
  "comments": [
    {
      "id": "kca://comment/amzn1.gr.comment.v1.W175yXONYZEgfNbrVgo16g",
      "text": "Just checking in on comments today, so missed several since my last check-in.\n\nThanks Ashley. Hope you were able to get around to reading this one to your son.\n\nJohn, this one is a wonderful read for any times.\n\nJay, we…",
      "textHtml": "Just checking in on comments today, so missed several since my last check-in.<br /><br />Thanks Ashley. Hope you were able to get around to reading this one to your son. <br /><br />John, this one is a wonderful read for…",
      "createdAt": "2026-10-17T05:45:58.000Z",
      "updatedAt": "2026-10-18T06:05:24.000Z",
      "commenter": {
        "id": 1526851,
        "name": "Will Byrnes",
        "url": "https://www.goodreads.com/user/show/1526851-will-byrnes",
        "imageUrl": "https://i.gr-assets.com/images/S/compressed.photo.goodreads.com/users/1291462190i/1526851._UX200_CR0,50,200,200_.jpg",
        "isAuthor": false
      }
    }
  ],
  "nextCursor": "1.3",
  "hasNextPage": true,
  "pagesScraped": 1
}
Product overviewGoodreads API: what it returns, pricing and use cases