Substack Newsletter Archive Scraper — public post metadata, no
Pricing
$1.00 / 1,000 post scrapeds
Substack Newsletter Archive Scraper — public post metadata, no
Collect the public post archive of any Substack newsletter (title, subtitle, publish date, URL, author, word count, restack count, paywall flag) via Substack's own public archive endpoint. No login, no proxies. Only metadata is returned — body text is never sent to unauthenticated requests.
Pricing
$1.00 / 1,000 post scrapeds
Rating
0.0
(0)
Developer
Backyard Tools
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Substack Newsletter Archive Scraper — public post metadata, no login
**Substack API** — Collect the public post archive of any Substack newsletter via its own archive endpoint: title, date, author, word count, paywall flag. Metadata only, no login.Collect the public post archive of any Substack newsletter through the same public JSON
endpoint the newsletter's own archive page calls (/api/v1/archive). No login, no proxies.
Tested (2026-09-02)
| Newsletter | Result |
|---|---|
astralcodexten | 200, real posts returned, offset paging confirmed (different posts at offset=2) |
garymarcus | 200, real posts returned |
robertreich | 200, real posts returned |
| nonexistent subdomain | 404 — 0 items, no charge |
Important: unauthenticated requests never receive article body text — body_html /
body_json / truncated_body_text all come back null regardless of the post's paywall
status. This actor only ever collects the metadata Substack already serves to a logged-out
visitor: title, subtitle, date, author byline, word count, and engagement counts.
Substack API — input
{"targets": ["astralcodexten", "garymarcus"],"maxItems": 500}
Each target is the newsletter's *.substack.com subdomain (the part before .substack.com,
even if the publication now serves readers from a custom domain). A subdomain with no archive
returns 0 items.
Substack API — output fields
One dataset item per post:
| Field | |
|---|---|
post_id | Substack's internal post ID |
title / subtitle | post headline and dek |
post_date | ISO 8601 publish timestamp |
canonical_url | public URL of the post |
post_type | newsletter / podcast / thread |
audience | everyone (free to read) or a paid-gate value |
wordcount | word count Substack itself reports |
restacks | restack (share) count at collection time |
language | ISO language code |
author_name / author_handle | the writer's public byline name and handle — the name they publish under, not private personal data |
No reader data of any kind. No article body text (Substack doesn't send it to logged-out requests in the first place).
Use Cases
- Competitor cadence tracking — monitor how often a newsletter publishes, its mix of
post_type(newsletter / podcast / thread), and its free-vs-paidaudienceratio over time - Pitch research — pull a newsletter's post history (title, date, wordcount) before pitching a guest post or a similar publication in the same niche
- Engagement benchmarking — compare
restacksacross a newsletter's posts to see which topics or formats get shared the most
Pricing
Pay per event: $1.00 per 1,000 posts collected. Nothing else.