Wattpad API endpoint
Returns the stories Wattpad recommends alongside one story (readers of this also read these), with the same fields as wattpad-search: id, title, description, cover, link, author, votes, reads, comments, chapter count, completed and mature flags, language, category ids, tags and dates. story_id is the numeric story id or its wattpad.com link. Wattpad returns at most 18 recommendations and does not page; limit is 1 to 20.
/wattpad/story-recommendationsParameters:
story_id (required): the numeric story id, or a wattpad.com/story/... link.limit: 1 to 20; defaults to 20. Wattpad returns at most 18 recommendations and does not page them, and a recommendation Wattpad filters out can leave a shorter list.Each story has the same fields as wattpad-search. A story that does not exist returns 404; a malformed story_id returns 400.
Example response (long values and lists shortened):
{
"code": 200,
"msg": "OK",
"data": {
"story_id": "344352588",
"stories": [
{
"id": "382391425",
"title": "Unexpected summer",
"url": "https://www.wattpad.com/story/382391425-unexpected-summer",
"description": "Sofia's life was pretty normal-until she met Lorenzo, the brooding heir to a powerful mafia family. What start…",
"cover": "https://img.wattpad.com/cover/382391425-256-k972295.jpg",
"author": {
"username": "xheartsforprincessx",
"name": "xprincessx",
"avatar": "https://img.wattpad.com/useravatar/xheartsforprincessx.128.326362.jpg",
"verified": false
},
"votes": 640,
"reads": 42133,
"comments": 25,
"parts": 33,
"completed": true,
"mature": true,
"language": {
"id": 1,
"name": "English"
},
"category_ids": [
4
],
"tags": [
"bestbookever",
"boss"
],
"created_at": "2024-11-04T22:13:54Z",
"modified_at": "2026-06-20T23:18:17Z"
},
{
"id": "199340674",
"title": "Loved From Afar (COMPLETED)",
"url": "https://www.wattpad.com/story/199340674-loved-from-afar-completed",
"description": "*PUBLISHED ON KINDLE*\nAmelia Diaz is an average woman with an average desk job, the highlight of her day consi…",
"cover": "https://img.wattpad.com/cover/199340674-256-k979538.jpg",
"author": {
"username": "Meekling6",
"name": "Meekling6",
"avatar": "https://img.wattpad.com/useravatar/Meekling6.128.2750.jpg",
"verified": false
},
"votes": 256,
"reads": 3319,
"comments": 15,
"parts": 24,
"completed": true,
"mature": false,
"language": {
"id": 1,
"name": "English"
},
"category_ids": [
4
],
"tags": [
"angstwithhappyending",
"book1"
],
"created_at": "2019-09-02T18:17:52Z",
"modified_at": "2022-11-17T18:19:12Z"
}
]
}
}
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| story_id | string | Yes | Numeric Wattpad story id, such as 344352588; a wattpad.com/story link is also accepted | 344352588 | |
| limit | integer | No | 20 | Maximum recommendations to return, 1 to 20; defaults to 20 | 5 |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/wattpad/story-recommendations?story_id=344352588&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"story_id": "344352588",
"stories": [
{
"id": "382391425",
"title": "Unexpected summer",
"url": "https://www.wattpad.com/story/382391425-unexpected-summer",
"description": "Sofia's life was pretty normal-until she met Lorenzo, the brooding heir to a powerful mafia family. What start…",
"cover": "https://img.wattpad.com/cover/382391425-256-k972295.jpg",
"author": {
"username": "xheartsforprincessx",
"name": "xprincessx",
"avatar": "https://img.wattpad.com/useravatar/xheartsforprincessx.128.326362.jpg",
"verified": false
},
"votes": 640,
"reads": 42133,
"comments": 25,
"parts": 33,
"completed": true,
"mature": true,
"language": {
"id": 1,
"name": "English"
},
"category_ids": [
4
],
"tags": [
"bestbookever",
"boss"
],
"created_at": "2024-11-04T22:13:54Z",
"modified_at": "2026-06-20T23:18:17Z"
},
{
"id": "199340674",
"title": "Loved From Afar (COMPLETED)",
"url": "https://www.wattpad.com/story/199340674-loved-from-afar-completed",
"description": "*PUBLISHED ON KINDLE*\nAmelia Diaz is an average woman with an average desk job, the highlight of her day consi…",
"cover": "https://img.wattpad.com/cover/199340674-256-k979538.jpg",
"author": {
"username": "Meekling6",
"name": "Meekling6",
"avatar": "https://img.wattpad.com/useravatar/Meekling6.128.2750.jpg",
"verified": false
},
"votes": 256,
"reads": 3319,
"comments": 15,
"parts": 24,
"completed": true,
"mature": false,
"language": {
"id": 1,
"name": "English"
},
"category_ids": [
4
],
"tags": [
"angstwithhappyending",
"book1"
],
"created_at": "2019-09-02T18:17:52Z",
"modified_at": "2022-11-17T18:19:12Z"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/wattpad.recommendationsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | wattpad.RecommendationsResponse | No | ||||
| data.stories | array | No | Story record, 23 fields: author, category_ids, comments, completed, cover, created_at, description, id, language, mature, modified_at, parts and 5 more. Described under Search and browse Wattpad stories API. | |||
| data.story_id | string | No | ||||
| 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 |
| 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/wattpad/story-recommendations?story_id=344352588&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"