Substack Publication Scraper
Pricing
$4.00 / 1,000 post scrapeds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
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
| Field | Description |
|---|---|
publication | Hostname of the publication |
id | Substack post ID |
title, subtitle, slug | Post metadata |
type | newsletter / podcast / video / thread |
audience | everyone / only_paid / only_free |
url | Canonical post URL |
description | Social description / preview text |
postedAt | ISO publish timestamp |
wordcount | Reading length |
reactionCount | ❤️ count |
commentCount | 💬 count |
restackCount | 🔁 count |
podcastDuration | Seconds (when type = podcast) |
sectionName, sectionSlug | Section the post belongs to |
coverImage | Hero image URL |
searchEngineTitle, searchEngineDescription | SEO fields |
scrapedAt | ISO timestamp |
Input
| Field | Required | Description |
|---|---|---|
publications | yes | Array — accepts full URLs, hostnames, or bare substack subdomains. |
sort | no | new (default) or top. |
maxItems | no | Total 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.
| Volume | Cost |
|---|---|
| 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
maxItemsreached. 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_limitsetting (rare; most publications don't set one).