Substack Scraper - Newsletters, Subscribers, Posts avatar

Substack Scraper - Newsletters, Subscribers, Posts

Pricing

Pay per event

Go to Apify Store
Substack Scraper - Newsletters, Subscribers, Posts

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

Khandji Omar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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

  1. Subscriber counts and prices on every newsletter — ready for sponsorship and partnership prospecting.
  2. Category discovery: the top 25 to 1,000 newsletters of a category, ranked, with their numbers. Find the right newsletters to sponsor in minutes.
  3. Engagement per post: likes, comments, restacks and word count, free or paid.
  4. Full text of free posts for AI, RAG, summaries and research (paid posts: public preview, charged as a plain post).
  5. Cheaper than the market leader and no start fee.
  6. API, n8n, Make, Zapier and MCP ready.

How to use it in 3 steps

  1. Click Try for free — a newsletter and a category are prefilled.
  2. Add newsletters or categories; choose how many posts and whether you want the text.
  3. Click Start and download JSON, CSV or Excel.

Input

FieldWhat it does
newslettersLinks, custom domains, name.substack.com or subdomains.
categoriesLeaderboard categories: Technology, Business, Finance, Culture, Politics, Science, Crypto, Health & Wellness, Food & Drink, Sports…
maxNewslettersPerCategoryTop-ranked first, 1 to 1,000. Default 25.
paidOnlyUse the paid leaderboard (ranked by paid subscribers).
maxPostsPerNewsletter0 to 5,000, newest first. 0 = newsletter info only. Default 20.
includeTextFull text of free posts (preview of paid posts).
postedAfterOptional YYYY-MM-DD: only posts on or after it.
postedBeforeOptional YYYY-MM-DD: only posts on or before it.
keywordsTopics to search across all of Substack (up to 50).
maxPostsPerKeywordPosts per topic, 1 to 500. Default 20.
contentTypeall (default), newsletter, podcast or thread.
onlyFreeSkip paywalled posts.
includeHtmlAdd the full HTML body next to the plain text.
includeComments / maxCommentsPerPostAdd each post's comments and replies in commentsList (up to 2,000 per post). No extra charge.
maxTotalChargeUsdOptional 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?

EventPrice
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 feenone

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 ApifyClient
client = 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).
  • contactEmail is 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.

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.