Substack Scraper - Download Newsletter Content Fast
Pricing
from $1.99 / 1,000 results
Substack Scraper - Download Newsletter Content Fast
Substack scraper extracts publicly available newsletter posts, titles, authors, publication dates, content, and metadata quickly ๐ฐโก Perfect for content research, trend analysis, AI workflows, knowledge management, and newsletter monitoring.
Pricing
from $1.99 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Hub
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
An Apify actor that scrapes post metadata from any Substack publication (e.g. Lenny's Newsletter) using the public Substack JSON API. Built with requests, parsel, regex, and an automatic curl_cffi (Chrome-impersonation) fallback when requests get blocked.
Input
{"startUrl": "https://www.lennysnewsletter.com","maxPosts": 100,"fetchDetails": true}
| Field | Type | Default | Description |
|---|---|---|---|
startUrl | string | โ | Any URL of the target Substack publication. |
maxPosts | integer | 100 | Max posts to scrape. 0 = no limit. |
fetchDetails | boolean | true | Fetch each post's detail endpoint for accurate tags/reactions. |
Output
Each dataset item:
{"post_id": 203730639,"post_title": "How top PMs increase their leverage with AI ","subtitle": "A framework for getting the most out of AI in your day-to-day-work","slug": "how-top-pms-increase-their-leverage","post_date": "2026-06-30T13:31:39.092Z","canonical_url": "https://www.lennysnewsletter.com/p/how-top-pms-increase-their-leverage","author_name": "Colin Matthews","author_handle": "colinmatthews","cover_image": "https://substackcdn.com/image/fetch/...png","post_description": "A framework for getting the most out of AI in your day-to-day-work","wordcount": 3957,"tags": ["AI", "Product management"],"audience": "only_paid","reactions": { "โค": 269 },"reaction_count": 269,"comment_count": 0,"restacks": 8,"publication_name": null,"publication_url": "https://www.lennysnewsletter.com"}
How it works
- Paginates
GET {base}/api/v1/archive?sort=new&offset=N&limit=12for the post list. - Optionally enriches each post via
GET {base}/api/v1/posts/{slug}for tags/reactions/restacks. - If
requestshits a 403/429/Cloudflare challenge, the client transparently upgrades tocurl_cffiwith a real Chrome TLS fingerprint and retries.
Run locally
pip install -r requirements.txtapify run # or: python -m src.main (with an INPUT in storage)