Goodreads API endpoint
Returns a Goodreads author profile: bio, birth/death dates, website, genres, photo, and aggregate rating stats.
/goodreads/author/{id}An ID that resolves to a Goodreads user profile instead of an author page returns 404.
Path parameters:
id (required) — Goodreads author id (numeric; a trailing .Name is tolerated, e.g. 153394.Suzanne_Collins).Response includes birth_date, death_date (when present), website, genres[], about (full bio text), image_url, average_rating, ratings_count, reviews_count.
| Field | In the sample | Value in the sample |
|---|---|---|
| id | Has a value | |
| name | Has a value | |
| birth_date | Has a value | |
| website | Has a value | suzannecollinsbooks.com |
| genres | Has a value | 3 entries |
| about | Has a value | 750 characters |
| image_url | Has a value | images.gr-assets.com |
| average_rating | Has a value | 4.3 |
| ratings_count | Has a value | 21,912,345 |
| reviews_count | Has a value | 1,011,434 |
| uri | Has a value | goodreads.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| id (path) | string | Yes | Goodreads author id | 153394 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/goodreads/author/153394" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"id": "153394",
"name": "Suzanne Collins",
"birth_date": "August 11, 1962",
"website": "http://suzannecollinsbooks.com/",
"genres": [
"Fiction",
"Science Fiction & Fantasy",
"Young Adult"
],
"about": "Since 1991, Suzanne Collins has been busy writing for children's television...",
"image_url": "https://images.gr-assets.com/authors/1630199330p5/153394.jpg",
"average_rating": 4.3,
"ratings_count": 21497265,
"reviews_count": 977620,
"uri": "https://www.goodreads.com/author/show/153394",
"source_url": "https://www.goodreads.com/author/show/153394"
}
}Request schema
No body schema
Response schema
#/definitions/goodreads.authorResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | goodreads.AuthorResponse | No | ||||
| data.about | string | No | ||||
| data.average_rating | number | No | 4.3 | |||
| data.birth_date | string | No | August 11, 1962 | |||
| data.death_date | string | No | ||||
| data.genres | array | No | ||||
| data.id | string | No | 153394 | |||
| data.image_url | string | No | ||||
| data.name | string | No | Suzanne Collins | |||
| data.ratings_count | integer | No | ||||
| data.reviews_count | integer | No | ||||
| data.source_url | string | No | ||||
| data.uri | string | No | ||||
| data.website | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/goodreads/author/153394" \
-H "x-api-key: $CRAWLORA_API_KEY"