Substack Scraper - Newsletters, Subscribers, Posts
Pricing
Pay per event
Substack Scraper - Newsletters, Subscribers, Posts
Scrape Substack newsletters and posts: subscribers, paid prices, author socials, posts with likes, restacks, full text or HTML and comments. Search posts by topic across Substack, find top newsletters by category, filter by date and type. No login. From $0.50 per 1,000 posts.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Khandji Omar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Substack Scraper — Newsletters, Subscribers, Posts
Scrape Substack newsletters and their posts: subscriber count, paid prices, author followers and social links, plus every post with likes, comments, restacks, word count, free or paid, and optionally the full text, the HTML and the comments. Search posts by topic across all of Substack and discover the top newsletters of any category (Technology, Business, Finance…). No login. $0.50 per 1,000 posts, no start fee.
Free tier — 20 results free on every run
The first 20 results of every run are free, on every run you ever make — not a one-off trial. One guard: the free allowance never covers more than half of a run, so the offer stays sustainable.
What does this Substack scraper do?
Give it newsletters (a link to any page, a custom domain, name.substack.com or just lenny)
and/or categories. For each newsletter you get one row with its card — subscribers, paid
plans, author, followers, socials — followed by its posts, newest first, back to the date you
choose.
Compared with automation-lab/substack-scraper
Read on the Store on 2026-10-23 (Substack Scraper). Where it does better, this section says so.
- Built on the site's own data, not a resold scraper: no second Actor between you and the source.
- Free results on every run and a hard cost cap (
maxTotalChargeUsd). - Price: $2 per 1,000 here, $1.15 there.
Why use it
- Subscriber counts and prices on every newsletter — ready for sponsorship and partnership prospecting.
- Category discovery: the top 25 to 1,000 newsletters of a category, ranked, with their numbers. Find the right newsletters to sponsor in minutes.
- Engagement per post: likes, comments, restacks and word count, free or paid.
- Full text of free posts for AI, RAG, summaries and research (paid posts: public preview, charged as a plain post).
- Cheaper than the market leader and no start fee.
- API, n8n, Make, Zapier and MCP ready.
How to use it in 3 steps
- Click Try for free — a newsletter and a category are prefilled.
- Add newsletters or categories; choose how many posts and whether you want the text.
- Click Start and download JSON, CSV or Excel.
Input
| Field | What it does |
|---|---|
newsletters | Links, custom domains, name.substack.com or subdomains. |
categories | Leaderboard categories: Technology, Business, Finance, Culture, Politics, Science, Crypto, Health & Wellness, Food & Drink, Sports… |
maxNewslettersPerCategory | Top-ranked first, 1 to 1,000. Default 25. |
paidOnly | Use the paid leaderboard (ranked by paid subscribers). |
maxPostsPerNewsletter | 0 to 5,000, newest first. 0 = newsletter info only. Default 20. |
includeText | Full text of free posts (preview of paid posts). |
postedAfter | Optional YYYY-MM-DD: only posts on or after it. |
postedBefore | Optional YYYY-MM-DD: only posts on or before it. |
keywords | Topics to search across all of Substack (up to 50). |
maxPostsPerKeyword | Posts per topic, 1 to 500. Default 20. |
contentType | all (default), newsletter, podcast or thread. |
onlyFree | Skip paywalled posts. |
includeHtml | Add the full HTML body next to the plain text. |
includeComments / maxCommentsPerPost | Add each post's comments and replies in commentsList (up to 2,000 per post). No extra charge. |
maxTotalChargeUsd | Optional hard cost cap for the run. |
{"categories": ["Technology", "Business"],"maxNewslettersPerCategory": 100,"maxPostsPerNewsletter": 0}
Output
Real examples. A newsletter row:
{"type": "newsletter","name": "Lenny's Newsletter","url": "https://www.lennysnewsletter.com","subscribers": 1200000,"subscribersText": "1.2M+","leaderboardBadge": "Tens of thousands of paid subscribers","paidEnabled": true,"monthlyPriceUsd": 20.0,"yearlyPriceUsd": 200.0,"hasPodcast": true,"firstPostDate": "2019-06-14T15:00:48.833Z","authorName": "Lenny Rachitsky","authorFollowers": 1381643,"authorSocials": {"twitter": "https://x.com/lennysan","youtube": "https://www.youtube.com/c/LennysPodcast"},"authorWebsite": "https://www.lennyrachitsky.com/","profileUrl": "https://substack.com/@lenny"}
A post row:
{"type": "post","newsletterUrl": "https://www.lennysnewsletter.com","title": "All of the Lenny & Friends Summit talks are now online!","subtitle": "Plus, some reflections and takeaways from the day","url": "https://www.lennysnewsletter.com/p/all-of-the-lenny-and-friends-summit","postDate": "2026-09-29T13:15:57.512Z","audience": "free","likes": 263,"comments": 5,"restacks": 4,"wordCount": 1276,"authors": ["Lenny Rachitsky"]}
With includeText, posts also carry text and textIsFull.
How much does it cost?
| Event | Price |
|---|---|
| Newsletter (card with subscribers, prices, author, socials) | $0.002 |
| Post (title, date, likes, comments, restacks…) | $0.0005 ($0.50 per 1,000) |
| Post with full text (free posts) | $0.001 |
| Start fee | none |
Up to 20 results of every run are free (at most half of the run). Newsletters that do not exist are reported and never charged. Paid Apify plans get lower tier prices.
Use cases
- Newsletter sponsorship — the biggest newsletters of a niche, with subscribers and prices.
- Creator and influencer outreach — authors with followers and social links.
- Content research — what performs (likes, comments, restacks) in a niche.
- AI and RAG — clean full text of free posts with dates and authors.
- Monitoring — new posts of a list of newsletters with a daily schedule and
postedAfter.
Use it from code (API)
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("om_kh/substack-scraper").call(run_input={"categories": ["Finance"],"maxNewslettersPerCategory": 50,"maxPostsPerNewsletter": 0,})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row["name"], row.get("subscribers"), row.get("monthlyPriceUsd"))
curl -X POST "https://api.apify.com/v2/acts/om_kh~substack-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"newsletters": ["lenny"], "maxPostsPerNewsletter": 10}'
Integrations and MCP
Schedule it daily with postedAfter and send new posts to Slack, Notion or Google Sheets with
n8n, Make or Zapier. AI agents can call it through https://mcp.apify.com as
om_kh/substack-scraper.
Tips and limits
- Subscriber counts are the ones Substack shows publicly (exact for most, rounded like "1.2M+" for the largest).
contactEmailis filled only when the newsletter publishes a support email.- Comments' text and paid post bodies need a subscription and are not offered.
FAQ
Do I need a Substack account? No.
Is it legal? It reads what newsletters publish publicly. Use the data in line with the laws and terms that apply to you.
Related Actors
- YouTube Channel Email Scraper - Business Emails, Socials — creators on YouTube.
- Google News Scraper - Headlines, Source, Date, API — news coverage of the same topics.
- Hacker News Scraper - Posts, Points, Comment Count — where tech newsletters get discussed.
Your feedback
Did this Actor save you time? A short review on the Reviews tab helps other people find it, and every review is read. Something missing or broken? Open an issue on the Issues tab: it is answered and fixed fast.