Substack Scraper - Download Newsletter Content Fast avatar

Substack Scraper - Download Newsletter Content Fast

Pricing

from $1.99 / 1,000 results

Go to Apify Store
Substack Scraper - Download Newsletter Content Fast

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

Scrapers Hub

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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
}
FieldTypeDefaultDescription
startUrlstringโ€”Any URL of the target Substack publication.
maxPostsinteger100Max posts to scrape. 0 = no limit.
fetchDetailsbooleantrueFetch 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

  1. Paginates GET {base}/api/v1/archive?sort=new&offset=N&limit=12 for the post list.
  2. Optionally enriches each post via GET {base}/api/v1/posts/{slug} for tags/reactions/restacks.
  3. If requests hits a 403/429/Cloudflare challenge, the client transparently upgrades to curl_cffi with a real Chrome TLS fingerprint and retries.

Run locally

pip install -r requirements.txt
apify run # or: python -m src.main (with an INPUT in storage)