Substack Publication Scraper avatar

Substack Publication Scraper

Pricing

$4.00 / 1,000 post scrapeds

Go to Apify Store
Substack Publication Scraper

Substack Publication Scraper

Scrape any Substack newsletter or publication: posts, podcasts, videos with title, date, reactions, comments, wordcount. Multi-publication batch. Direct API, fast, no captchas. $0.004 per post.

Pricing

$4.00 / 1,000 post scrapeds

Rating

0.0

(0)

Developer

Gio

Gio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Scrape any Substack newsletter or publication archive in one shot.

Multi-publication batch, direct Substack API, no JavaScript rendering, no captchas. Returns posts, podcasts, videos with the engagement metrics that matter (reactions, comments, restacks, wordcount).

$0.004 / post — cheaper than per-platform-call alternatives.

What it extracts

FieldDescription
publicationHostname of the publication
idSubstack post ID
title, subtitle, slugPost metadata
typenewsletter / podcast / video / thread
audienceeveryone / only_paid / only_free
urlCanonical post URL
descriptionSocial description / preview text
postedAtISO publish timestamp
wordcountReading length
reactionCount❤️ count
commentCount💬 count
restackCount🔁 count
podcastDurationSeconds (when type = podcast)
sectionName, sectionSlugSection the post belongs to
coverImageHero image URL
searchEngineTitle, searchEngineDescriptionSEO fields
scrapedAtISO timestamp

Input

FieldRequiredDescription
publicationsyesArray — accepts full URLs, hostnames, or bare substack subdomains.
sortnonew (default) or top.
maxItemsnoTotal cap across all publications (default 50).

Examples

One Substack newsletter, latest 30 posts:

{ "publications": ["lennysnewsletter.com"], "sort": "new", "maxItems": 30 }

Multiple custom-domain publications, top reactions:

{ "publications": ["stratechery.com", "pragmaticengineer.com"], "sort": "top", "maxItems": 100 }

Substack subdomain (auto-expands):

{ "publications": ["platformer"], "maxItems": 20 }

Pricing

$0.004 per post. No actor-start fee.

VolumeCost
100 posts$0.40
1,000 posts$4.00
10,000 posts$40.00

Free Apify plan: 20 posts per run.

How it works

  • Calls https://{publication}/api/v1/archive?sort={sort}&offset={offset}&limit=12 — the same API the public Substack website uses to render the archive page.
  • got-scraping handles TLS fingerprinting (no rate limit on reasonable usage).
  • Stops when an empty page is returned or maxItems reached. Hard safety cap at offset 2000.

Caveats

  • Paid-only posts (audience: only_paid) are returned but with truncated body / no full text — Substack only exposes the metadata publicly. Use a logged-in scraper if you need full paid content.
  • The archive API skips posts older than the publication's archive_limit setting (rare; most publications don't set one).