Substack Scraper | Posts & Comments | $0.25 / 1K
Pricing
from $1.70 / 1,000 actor starteds
Substack Scraper | Posts & Comments | $0.25 / 1K
Extract every post and comment from any Substack publication via its own public API - no login, no browser needed. Full article HTML, wordcount, reactions, restacks, nested comment threads. Incremental mode returns only new posts. $0.25/1K posts, $0.12/1K comments - beats typical market rates.
Pricing
from $1.70 / 1,000 actor starteds
Rating
0.0
(0)
Developer
Hriday Rungta
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Substack Scraper | Posts & Comments
Extracts posts and comment threads from any Substack publication using the publication's own public API — the same one its website calls to render the archive page. No login, no API key, no browser, no proxy.
What you get
- Full posts: title, subtitle, slug, type, audience (free/paid), wordcount, description, full body HTML, cover image, publish date, comment count, reactions, restacks, canonical URL.
- Comments: nested replies with depth, author name/handle, score, timestamp. Deleted comments are marked, with body and author redacted.
- Incremental mode: track one or many publications over time. Each run after the first returns only posts published since the last run — no re-scraping, no re-paying for old data.
How this works (honestly)
Substack publications run on a standard, stable (if undocumented) REST API at <publication>.substack.com/api/v1/.... This Actor calls that API directly:
- Fetches the publication's archive, newest-first.
- For each post you'll actually receive, fetches the full post (the archive listing doesn't include body HTML).
- Optionally fetches and walks the comment tree for that post.
No headless browser, no residential proxy, no Cloudflare fight — because there isn't one. This also means it's fast and cheap, and that cost is passed on to you.
Incremental mode
Set mode: "changes". On the first run per publication, it seeds from firstRunSince (default 14 days back). Every run after that resumes exactly where the last one left off, tracked per publication in a key-value store. A run that's cut short by your maxItems budget still advances the mark safely — you'll never get duplicate rows on the next run, and you'll never silently skip a post either.
Input at a glance
| Field | Description |
|---|---|
publications | Required. One or more Substack URLs or subdomains (e.g. "platformer" or "https://platformer.substack.com"). |
mode | "all" (default) or "changes" (incremental). |
includeComments | Fetch comment threads for each post. Default true. |
maxCommentDepth | How deep into nested replies to go. |
maxItems | Budget cap on billed rows for this run. |
firstRunSince | How far back the first incremental run looks (e.g. "14 days"). |
Billing (pay-per-event)
| Event | Price |
|---|---|
| Actor started | $0.0017 — charged once per run, regardless of results |
| Post scraped | $0.00025 ($0.25 / 1,000) |
| Comment scraped | $0.00012 ($0.12 / 1,000) |
No hidden per-GB proxy costs, no separate "with content" tier — every post you're charged for already includes the full body HTML.