Substack Scraper | Posts & Comments | $0.25 / 1K avatar

Substack Scraper | Posts & Comments | $0.25 / 1K

Pricing

from $1.70 / 1,000 actor starteds

Go to Apify Store
Substack Scraper | Posts & Comments | $0.25 / 1K

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

Hriday Rungta

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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:

  1. Fetches the publication's archive, newest-first.
  2. For each post you'll actually receive, fetches the full post (the archive listing doesn't include body HTML).
  3. 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

FieldDescription
publicationsRequired. One or more Substack URLs or subdomains (e.g. "platformer" or "https://platformer.substack.com").
mode"all" (default) or "changes" (incremental).
includeCommentsFetch comment threads for each post. Default true.
maxCommentDepthHow deep into nested replies to go.
maxItemsBudget cap on billed rows for this run.
firstRunSinceHow far back the first incremental run looks (e.g. "14 days").

Billing (pay-per-event)

EventPrice
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.