Datasets API endpoint
Returns one Goodreads book from the dataset by `id`. The record has title, authors, series, genres, format, page count, publisher, publication date, ISBN and ISBN-13, language, description, average rating with a one-to-five-star breakdown, and review counts. An unknown id returns 404.
/datasets/goodreads-books/items/{id}Returns one crawled Goodreads book record by id (the document id) from dataset id enum value goodreads-books. Returns 404 when the id is absent from the dataset.
Path parameters:
id (required) — Goodreads book id, e.g. 2767052.| Field | In the sample | Value in the sample |
|---|---|---|
| id | Has a value | |
| title | Has a value | |
| description | Has a value | 843 characters |
| authors | Has a value | 1 entry |
| author_ids | Has a value | |
| primary_author | Has a value | |
| primary_author_id | Has a value | |
| series | Has a value | |
| series_name | Has a value | |
| genres | Has a value | 10 entries |
| format | Has a value | |
| pages | Has a value | 374 |
| publisher | Has a value | |
| publication_date | Has a value | 2008-10-14 |
| publication_year | Has a value | 2,008 |
| isbn | Has a value | |
| isbn13 | Has a value | |
| language | Has a value | |
| image_url | Has a value | m.media-amazon.com |
| rating_average | Has a value | 4.36 |
| ratings_count | Has a value | 10,306,906 |
| reviews_count | Has a value | 278,675 |
| rating_one_star | Has a value | 134,675 |
| rating_two_star | Has a value | 243,665 |
| rating_three_star | Has a value | 1,122,589 |
| rating_four_star | Has a value | 3,125,853 |
| rating_five_star | Has a value | 5,680,124 |
| uri | Has a value | goodreads.com |
| seed_rank | Has a value | 0 |
| discovery_source | Has a value | |
| run_id | Has a value | |
| crawled_at | Has a value | 2026-10-07 |
| schema_version | Has a value |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id (path) | string | Yes | Goodreads book id, e.g. 2767052 | 2767052 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/datasets/goodreads-books/items/2767052" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"id": "2767052",
"title": "The Hunger Games",
"authors": [
"Suzanne Collins"
],
"author_ids": [
"153394"
],
"primary_author": "Suzanne Collins",
"primary_author_id": "153394",
"series": "The Hunger Games #1",
"series_name": "The Hunger Games",
"genres": [
"Young Adult",
"Fiction",
"Dystopia"
],
"format": "Hardcover",
"pages": 374,
"publisher": "Scholastic Press",
"publication_date": "2008-10-14",
"publication_year": 2008,
"isbn": "0439023483",
"isbn13": "9780439023481",
"language": "English",
"rating_average": 4.35,
"ratings_count": 10189669,
"reviews_count": 272857,
"rating_one_star": 159068,
"rating_two_star": 329575,
"rating_three_star": 1568722,
"rating_four_star": 2854927,
"rating_five_star": 5277377,
"source_url": "https://www.goodreads.com/book/show/2767052"
}
}Request schema
No body schema
Response schema
#/definitions/datasets.goodreadsBookResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | es.GoodreadsBookRecord | No | ||||
| data.author_ids | array | No | Goodreads ids of the credited authors. | |||
| data.authors | array | No | Authors/AuthorIDs list every credited contributor (primary + secondary); PrimaryAuthor(ID) denormalizes the first for single-value filters/facets. | |||
| data.crawled_at | string | No | Time the book's data was fetched, in UTC (RFC 3339). | |||
| data.description | string | No | Book description from the Goodreads page. | |||
| data.discovery_source | string | No | DiscoverySource records how this id was found, e.g. "list:1", "search:mystery", "author:153394" — useful for crawl provenance/debugging. | |||
| data.format | string | No | Book format, for example `Hardcover`. | |||
| data.genres | array | No | List of genres Goodreads shows for the book. | |||
| data.id | string | No | Goodreads book id. | |||
| data.image_url | string | No | URL of the cover image. | |||
| data.isbn | string | No | ISBN-10 of the edition. | |||
| data.isbn13 | string | No | ISBN-13 of the edition. | |||
| data.language | string | No | Language the edition is written in, for example `English`. | |||
| data.pages | integer | No | Number of pages. | |||
| data.primary_author | string | No | Name of the first credited author. | |||
| data.primary_author_id | string | No | Goodreads id of the first credited author. | |||
| data.publication_date | string | No | Publication date as Goodreads shows it, for example `2008-10-14`. | |||
| data.publication_year | integer | No | Year of publication. | |||
| data.publisher | string | No | Name of the book's publisher. | |||
| data.rating_average | number | No | Average Goodreads rating of the book. | |||
| data.rating_five_star | integer | No | Number of 5-star ratings. | |||
| data.rating_four_star | integer | No | Number of 4-star ratings. | |||
| data.rating_one_star | integer | No | Rating*Star is the flattened 1-5 star ratings-count distribution. | |||
| data.rating_three_star | integer | No | Number of 3-star ratings. | |||
| data.rating_two_star | integer | No | Number of 2-star ratings. | |||
| data.ratings_count | integer | No | Number of ratings the book has received. | |||
| data.reviews_count | integer | No | Number of reviews the book has received. | |||
| data.run_id | string | No | Identifier of the collection run that produced this record. Accepted as a `run_id` filter. | |||
| data.schema_version | integer | No | Version of the record layout. | |||
| data.seed_rank | integer | No | SeedRank is the discovery priority (lower = discovered earlier/higher priority): curated list/search seeds rank low; BFS-discovered books from author expansion rank higher so curated breadth crawls first. | |||
| data.series | string | No | Series is the display string (e.g. "The Hunger Games #1"); SeriesName is the bare series title, split out for exact filtering/faceting. | |||
| data.series_name | string | No | Title of the series the book belongs to, without the book number. | |||
| data.source_url | string | No | URL the data was read from. | |||
| data.title | string | No | Title of the book. | |||
| data.uri | string | No | Link to the book's Goodreads page. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/datasets/goodreads-books/items/2767052" \
-H "x-api-key: $CRAWLORA_API_KEY"