Wattpad Story Scraper
Pricing
from $0.45 / 1,000 stories
Wattpad Story Scraper
Find public Wattpad stories by keyword, tag, or genre without credentials. Get story details, author story lists, chapter lists, or readable chapter text with public filters.
Pricing
from $0.45 / 1,000 stories
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
📚 Find Wattpad stories and chapter text
Story researchers, writers, catalog builders, and data teams can use this Actor to collect public Wattpad stories. It returns story details, author story lists, chapter lists, and readable chapter text so you can compare public stories, study author catalogs, or build your own dataset.
- Find Wattpad Stories to start a public story search.
- Browse Wattpad Stories: Romance to collect public romance story data.
- Browse Wattpad Fanfiction to explore public fanfiction stories.
- Browse Wattpad Fantasy Stories to find public fantasy stories.
- Browse Wattpad Science Fiction Stories to find public science fiction stories.
- Browse Wattpad Mystery Stories to find public mystery stories.
- Browse Wattpad Horror Stories to find public horror stories.
🧾 Wattpad data you can use
Each saved row is a story, author, or chapter shape. Fields may be absent when Wattpad does not provide them. Public author contact emails appear only when they are visible and requested.
Story discovery
Search by keyword, tag, or genre or category. Filter discovery by language, completion, access, maturity, minimum votes, or minimum reads. You can also order stories by relevance, votes, reads, comments, or recent updates.
Story details
Look up a public story by ID or URL. A story row can include its title, description, author, cover, tags, categories, language, status, counts, publication dates, chapter list, and the discovery value that first saved it.
Author story lists
Use a public username to get available author profile details, engagement, and the author’s public story list.
Chapter text
Use a public chapter ID or URL to get readable chapter text with its title, link, word count, publication date, and engagement when available.
▶️ Run one Wattpad task at a time
Choose one target
Each run uses one target: story search by keyword, story search by tag, genre or category browsing, story details, an author story list, or chapter text. Use a separate run for a different task or a different set of settings.
Use public inputs
The Actor reads public Wattpad data. It does not unlock private, login-gated, removed, mature-gated, or paywalled content.
Limit the work
Set maxItems when you want the run to stop after a chosen number of returned items. Leave it empty to return all available results until the source is exhausted. This is a work limit, not a promise of a fixed number of results.
Keep the first discovery match
For story discovery, the first eligible match for a source story is saved at once. Later matches for the same story are ignored. This keeps one saved row for the source story and keeps its first discovery value in discoveryInput.
⚙️ Input
Choose one target for each run. The other fields apply to the targets named in their descriptions.
Input fields
| Field | Type | What it does |
|---|---|---|
target | string (select) | Chooses keyword search, tag search, genre or category browsing, story details, author stories, or chapter text. |
keywords | array of strings | Finds public stories by one or more words or phrases. Up to 500 keywords. |
tags | array of strings | Finds public stories by one or more Wattpad tags. Up to 500 tags. |
genresOrCategories | array of strings | Browses public stories in one or more Wattpad genres or categories. Up to 500 values. |
storyIdsOrUrls | array of strings | Gets details for public Wattpad story IDs or URLs, including a public chapter list when available. Up to 500 values. |
usernames | array of strings | Gets available public profile details, author engagement, and stories for public Wattpad usernames. Up to 500 usernames. |
chapterIdsOrUrls | array of strings | Extracts readable text from public Wattpad chapter IDs or URLs. Up to 500 values. |
language | string (select) | Filters keyword, tag, or genre discovery by a Wattpad language code. Leave empty for all languages. |
completion | string (select) | Shows only completed or ongoing stories. Leave empty for both. |
access | string (select) | Shows only free or paywalled public stories. It does not unlock paid content. Leave empty for both. |
maturity | string (select) | Filters by the public story maturity label. Mature-gated items are skipped when they are not publicly available. Leave empty for both. |
minimumVotes | integer | Keeps discovered stories with at least this many votes. Leave empty for no minimum. |
minimumReads | integer | Keeps discovered stories with at least this many reads. Leave empty for no minimum. |
sortBy | string (select) | Orders discovered stories by relevance, votes, reads, comments, or recent updates. The recent-updates feed is used for genre or category browsing. |
includeAuthorContactEmails | boolean | Requests publicly visible author contact emails and their source context when available. It never bypasses access controls and is ignored for Chapter text. |
maxItems | integer | Stops after this many returned items. Leave empty to return all available results until the source is exhausted. |
Example input
This is the public input from the successful hosted QA default-input run:
{"target": "searchByKeyword","keywords": ["fantasy"],"includeAuthorContactEmails": false,"maxItems": 25}
🧾 Output
The default dataset contains one row for each successful public story, author, or chapter task. Fields that are not available from the source are omitted.
Story rows
| Field | Type | What it does |
|---|---|---|
recordType | string | Identifies this row as story. |
storyId | string | Stable public Wattpad story ID. |
title | string | Public story title. |
description | string | Public story description. |
storyUrl | string | Canonical public story URL. |
coverUrl | string | Public story cover image URL. |
author | object | Public author fields when available. |
author.username | string | Public Wattpad username. |
author.displayName | string | Public author display name. |
author.profileUrl | string | Canonical public author profile URL. |
author.avatarUrl | string | Public author avatar image URL. |
author.bio | string | Public author biography. |
author.location | string | Public location listed by the author. |
author.websiteUrl | string | Public website URL listed by the author. |
author.contactEmail | string | Public contact email shown in the author profile when available. |
author.contactEmailSource | string | Public profile context where the contact email was shown. |
tags | array of strings | Public tags assigned to the story. |
categories | array of strings | Public genres or categories assigned to the story. |
language | string | Language reported for the story. |
completionStatus | string | Whether the story is completed or ongoing. |
maturity | string | Public maturity label for the story. |
accessStatus | string | Whether the public story is free or paywalled. |
wordCount | integer | Reported story word count. |
chapterCount | integer | Number of public chapters reported for the story. |
engagement | object | Public story engagement counts when available. |
engagement.votes | integer | Public story vote count. |
engagement.reads | integer | Public story read count. |
engagement.comments | integer | Public story comment count. |
publication | object | Public story publication dates when available. |
publication.firstPublishedAt | string | First publication date and time. |
publication.lastPublishedAt | string | Last publication or update date and time. |
chapters | array of objects | Public chapter metadata when available. |
chapters[].chapterId | string | Stable public chapter ID. |
chapters[].title | string | Public chapter title. |
chapters[].chapterUrl | string | Canonical public chapter URL. |
chapters[].position | integer | Chapter position in the story. |
chapters[].publishedAt | string | Chapter publication date and time. |
chapters[].wordCount | integer | Reported chapter word count. |
chapters[].accessStatus | string | Whether the public chapter is free or paywalled. |
chapters[].engagement | object | Public chapter engagement counts when available. |
chapters[].engagement.votes | integer | Public chapter vote count. |
chapters[].engagement.reads | integer | Public chapter read count. |
chapters[].engagement.comments | integer | Public chapter comment count. |
discoveryInput | string | Keyword, tag, or genre value that first caused this story row to be saved. |
Example story row
This genuine current-beta row is shortened because the live story contains 38 chapter entries. The shown values are real. Omitted description text and chapter entries are marked with the JSON string "...".
{"recordType": "story","storyId": "305220141","title": "Fantasy school with 4w✔️✔️","description": "...","storyUrl": "https://www.wattpad.com/story/305220141-fantasy-school-with-4w%E2%9C%94%EF%B8%8F%E2%9C%94%EF%B8%8F","coverUrl": "https://img.wattpad.com/cover/305220141-256-k565918.jpg","author": {"username": "Snowg716","displayName": "Jessica Frost","profileUrl": "https://www.wattpad.com/user/Snowg716","avatarUrl": "https://img.wattpad.com/useravatar/Snowg716.128.802991.jpg","bio": "another account \n@frostjessica6","location": "ඩිස්නිලන්තෙ😌"},"tags": ["danny","fantasy","friendship","love","magic","sinhala","sl","snake","srilanka","tiger","vampire","werewolf","wolf","සිංහල"],"categories": ["Fantasy"],"language": "English","completionStatus": "completed","maturity": "general","accessStatus": "free","wordCount": 373426,"chapterCount": 38,"engagement": {"votes": 3564,"reads": 33480,"comments": 1285},"publication": {"firstPublishedAt": "2022-03-20T16:42:21Z","lastPublishedAt": "2022-07-20T06:08:21Z"},"chapters": [{"chapterId": "1205608182","title": "4W Intro","chapterUrl": "https://www.wattpad.com/1205608182-fantasy-school-with-4w%E2%9C%94%EF%B8%8F%E2%9C%94%EF%B8%8F-4w-intro","position": 1,"publishedAt": "2022-03-20T17:16:51Z","wordCount": 4576},"..."]}
Author rows
| Field | Type | What it does |
|---|---|---|
recordType | string | Identifies this row as author. |
author | object | Public author fields when available. |
author.username | string | Public Wattpad username. |
author.displayName | string | Public author display name. |
author.profileUrl | string | Canonical public author profile URL. |
author.avatarUrl | string | Public author avatar image URL. |
author.bio | string | Public author biography. |
author.location | string | Public location listed by the author. |
author.websiteUrl | string | Public website URL listed by the author. |
author.contactEmail | string | Public contact email shown in the author profile when available. |
author.contactEmailSource | string | Public profile context where the contact email was shown. |
engagement | object | Aggregate public author engagement when available. |
engagement.votes | integer | Aggregate public vote count. |
engagement.reads | integer | Aggregate public read count. |
engagement.comments | integer | Aggregate public comment count. |
stories | array of objects | Stories in the author’s public bibliography. |
stories[].storyId | string | Stable public story ID. |
stories[].title | string | Public story title. |
stories[].description | string | Public story description. |
stories[].storyUrl | string | Canonical public story URL. |
stories[].coverUrl | string | Public story cover image URL. |
stories[].tags | array of strings | Public story tags. |
stories[].categories | array of strings | Public story genres or categories. |
stories[].language | string | Language reported for the story. |
stories[].completionStatus | string | Whether the story is completed or ongoing. |
stories[].maturity | string | Public maturity label for the story. |
stories[].accessStatus | string | Whether the public story is free or paywalled. |
stories[].wordCount | integer | Reported story word count. |
stories[].chapterCount | integer | Number of public chapters reported for the story. |
stories[].engagement | object | Public story engagement counts when available. |
stories[].engagement.votes | integer | Public story vote count. |
stories[].engagement.reads | integer | Public story read count. |
stories[].engagement.comments | integer | Public story comment count. |
stories[].publication | object | Public story publication dates when available. |
stories[].publication.firstPublishedAt | string | First publication date and time. |
stories[].publication.lastPublishedAt | string | Last publication or update date and time. |
Example author row
This genuine current-beta author row includes the public profile and two story entries returned for the selected username.
{"recordType": "author","author": {"username": "Snowg716","profileUrl": "https://www.wattpad.com/user/Snowg716","avatarUrl": "https://img.wattpad.com/useravatar/Snowg716.128.802991.jpg","bio": "another account \n@frostjessica6","location": "ඩිස්නිලන්තෙ😌"},"stories": [{"storyId": "409460076","title": "Reborn Spider lily","description": "තමන්ගේ හතුරා තමන්ව මරයි කියන බයට මතකය නෑ වගේ ඉන්න උනොත්...","storyUrl": "https://www.wattpad.com/story/409460076-reborn-spider-lily","coverUrl": "https://img.wattpad.com/cover/409460076-256-k594132.jpg","tags": ["dark","lanka","love","romance","sinhala","sl","sri","srilanka"],"categories": ["Non-Fiction"],"language": "English","completionStatus": "ongoing","maturity": "general","wordCount": 16398,"chapterCount": 2,"engagement": {"votes": 7,"reads": 66,"comments": 2},"publication": {"firstPublishedAt": "2026-03-27T13:12:30Z","lastPublishedAt": "2026-04-09T20:23:12Z"}},{"storyId": "292265137","title": "Miya✔️✔️","description": "දෙමව්පියෝ...සහෝදරයෝ විතරන් නෙමේ හොදම යාලුවෝ දෙන්නායි Boy Friend යි හැමෝම එක දවසින් ඔයාව ප්රතික්ශේප කරොත්....කොටින්ම කිව්වොත් ඔයාව ගෙදරින් එලියට ඇදලා දැම්මොත්...මොනවා වෙයිද...\n\n\n\n\n\n\n\n\nහායි ☺️❤️ මේ තමා සාමාන්ය මිනිස්සු ආශ්රයෙන් මම ලියන පලවෙනි පොත...අඩු පාඩු නම් ගොඩක් ඇති....☺️☺️ කියවලා බලන්න ඉතිම්","storyUrl": "https://www.wattpad.com/story/292265137-miya%E2%9C%94%EF%B8%8F%E2%9C%94%EF%B8%8F","coverUrl": "https://img.wattpad.com/cover/292265137-256-k218882.jpg","tags": ["broken","hope","love","sinhala","sl","srilanka","සිංහල"],"categories": ["Short Story"],"language": "English","completionStatus": "completed","maturity": "general","wordCount": 101536,"chapterCount": 15,"engagement": {"votes": 2994,"reads": 36193,"comments": 236},"publication": {"firstPublishedAt": "2021-11-21T08:53:01Z","lastPublishedAt": "2021-12-05T14:32:45Z"}}],"engagement": {"votes": 34917}}
Chapter rows
| Field | Type | What it does |
|---|---|---|
recordType | string | Identifies this row as chapter. |
chapterId | string | Stable public chapter ID. |
chapterTitle | string | Public chapter title. |
chapterUrl | string | Canonical public chapter URL. |
storyId | string | Stable public story ID that contains the chapter. |
storyTitle | string | Public title of the story that contains the chapter. |
storyUrl | string | Canonical public story URL that contains the chapter. |
author | object | Public author fields when available. |
author.username | string | Public Wattpad username. |
author.displayName | string | Public author display name. |
author.profileUrl | string | Canonical public author profile URL. |
author.avatarUrl | string | Public author avatar image URL. |
author.bio | string | Public author biography. |
author.location | string | Public location listed by the author. |
author.websiteUrl | string | Public website URL listed by the author. |
author.contactEmail | string | Public contact email shown in the author profile when available. |
author.contactEmailSource | string | Public profile context where the contact email was shown. |
position | integer | Chapter position in the story. |
publishedAt | string | Chapter publication date and time. |
wordCount | integer | Reported chapter word count. |
accessStatus | string | Whether the public chapter is free or paywalled. |
engagement | object | Public chapter engagement counts when available. |
engagement.votes | integer | Public chapter vote count. |
engagement.reads | integer | Public chapter read count. |
engagement.comments | integer | Public chapter comment count. |
text | string | Readable public chapter text. |
Example chapter row
This genuine current-beta row shows the readable public text returned for one chapter.
{"recordType": "chapter","chapterId": "1205608182","text": "අපි 4W මුලු ස්කූල් එකේම ප්රසිද්ද සෙට් එකක්...\nකෙටියෙන්ම කිව්වොත් මැර කල්ලියක් වගේ....\nඅපි කවුරුත් සාමාන්ය අය නම් නෙමෙයි...\nඉමා තමා අපි සෙට් එකෙන් අක්කා...\nඑයා vampire කෙනෙක්...\nපරිවර්තනය උනාම සුදුයි...\nවවුලෙක් උනාමත් සුදුයි....\n😏 අහිම්සකයි වගේ හිටියට ඒම නෑ...\nවැම්පයර්ලා කොහෙද අහින්සක....\nඉමාට තියනවා හොද මොල රාජයෙක්...\nඉගනගන්න නෙමෙයි කූට උපක්රම වලට...\nසාමාන්යෙන් ටීම් එකක වැඩිමලා ටිකක් රෙස්පෙක්ට් එකට ඉන්නවනේ.... 😂 කියන්න සතුටුයි ඉමාට ඒම එකක් නෑ....\nඑයාගෙ ක්රස් එක ඩැනී රෑන්ක්....කවුද දන්නෙ නෑ....ඒත් ඉතිම් ඉමා එයාට ගොඩක් ආසයි....එයා ලගදිම අපේ ෆැන්ටසි ස්කූල් එකට එනවා කියල කටකතාවක් තියනවා...\nima576 😌\nසුසුකියා තමා නමට පොඩි එකා...\nඑයා වුල්ෆියෙක්\nසුදුම සුදුයි \nඅර්ද වශයෙන් සහ සම්පූර්නව පරිවර්තනය වෙන්න පුලුවන්\nහී....හුලතල් කියුට් සෝස මල වගේ හිටියට මාර සැරයි...තුන් හතර පාරක් මගෙ බෙල්ල ගලවන්න ගියා...\nකොල්ලො ඇලජික්\nමෙයාගේ හිනාව නිසා ඕන දඩුවමකින් ලිස්සලා යන්න මාර හැකියාවක් තීන්නේ...\nChenuliSathkumara\nජුලියා....ආදරේට ජූලී..\nමැද දෙන්නගෙන් එකෙක්.....\nමෙයා පූසි වගේ හිටියට හෙන සයිස් සුදු කොටි දෙනක්...\nමෙයාට ඉන්නවා සිරියාවන්ත ටුයිනෙක් 😌\nජූලීගේ ක්රස් එක නික්....නම විතරයි දම්නේ.....\nජූලී ඇට්ටරයි ....ලගින් ගියොත් ඇහැක් නැති වෙන සීන් එකක් තියෙන්නේ....\nකොටියෙක් වගේ හුරන් කන්න වගේම පූශ් පැටියෙක් වගේ පුරු පුරු ගාන්නත් පුලුවන්...\nනේත\nCalypsoArellano1\nමේ මලක් වගේ දැරිවිය තමා මං😌\nමැද උන් දෙන්නගෙන් එකෙක්...ජූලියාගේ ට්වින් ජෙසිකා...ජෙසී කියල තමා කියන්නේ...\nමන් මලක් වගේ අහින්සකයි.\n😌 වැම්පියෙක් වගේ දතුත් නෑ....\n😌 වෘකයෙක් වගේ ගොරවන්නෙත් නෑ...\n😌 කොටියෙක් වගේ නියපොතුත් නෑ...\nඒකෙන් තේරෙනෝනේ මං ගැන...\nමන් හැපින්නක්....😌 සෙට් එකෙ අහිම්ශකම සතා නේහ්...\nනිකම් හැපින්නක් නෙමේ වෙස් මාරු කරන සුදු හැපින්නක්....\nඅපි තමා 4W (4 white) අපි හැමෝම පරිවර්තනය උනාම සුදුයි\nෆැන්ටසි / මැජික් ස්කූල් එකේ හැදියාව ගෑවිලාවත් නැති කෙල්ලො හතර දෙනා තමා අපි....\n😁 මේක මගේ අලුත් කතාව...\nමුල ඉදන් මා එක්ක හිටිය මගේ අක්කායි නංගියි ට්විනයි තුන්දෙනාගේ චරිත අරන් තමා ලියන්නේ...","chapterTitle": "4W Intro","chapterUrl": "https://www.wattpad.com/1205608182-fantasy-school-with-4w%E2%9C%94%EF%B8%8F%E2%9C%94%EF%B8%8F-4w-intro","publishedAt": "2022-03-20T17:16:51Z","wordCount": 916,"engagement": {"votes": 156,"reads": 2592,"comments": 61}}
💳 Pricing
Charged events
| Event | Price | What is saved |
|---|---|---|
| Story | $0.00045 per saved story row | One public story with the fields the source provides. |
| Chapter text | $0.0045 FREE tier, $0.00385 BRONZE, $0.0033 SILVER, or $0.0027 GOLD, DIAMOND, and PLATINUM | One public chapter with available text. |
The platform applies the tier for your account. These events describe saved public rows. They do not promise a row when the source has no available data.
🔌 Integrations
Video guide
See this video for a walkthrough of the Actor:
❓ FAQ
Do I need a Wattpad account or API key?
No. The Actor uses public Wattpad access and does not need a Wattpad login or API key. It does not bypass private or login-gated pages.
Can I use a story or chapter URL?
Yes. Story details accept public story IDs or URLs, and Chapter text accepts public chapter IDs or URLs.
Can one run use more than one target?
No. Choose one target and its settings for each run. Use separate runs for different tasks or configurations.
What happens to private, removed, mature-gated, or paywalled content?
The Actor does not bypass those controls. An item may be unavailable or omitted when Wattpad does not make it public.
Does a story row include the chapter text?
No. Story rows can include a public chapter list and chapter metadata. Use Chapter text with chapter IDs or URLs for readable text.
Are comment counts and comment text both returned?
Engagement counts may be returned when available. Comment text is not part of the public output schema.
How does duplicate discovery work?
For discovery, the first eligible match for a source story is saved. Later matches for that story are ignored. discoveryInput keeps the first keyword, tag, or genre value that caused the saved story row.
What does an empty work limit do?
Leave maxItems empty to return all available results until the source is exhausted. This does not promise exhaustive coverage of Wattpad.
📝 Changelog
0.0: Initial release
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Goodreads Scraper helps you collect public book and author catalog data alongside Wattpad story research.
- Webpage Text Extractor extracts readable text from public pages when you have URLs outside Wattpad.
- Wayback Machine Search helps you check archived versions and history for public story pages.
- Wattpad Story Scraper offers another public Wattpad story search and metadata workflow.
- Wattpad Story Metadata Scraper focuses on public Wattpad story metadata lookups.
Made with ❤️ by Maxime Dupré