Substack Scraper - Newsletters, Posts & Sponsorship Leads avatar

Substack Scraper - Newsletters, Posts & Sponsorship Leads

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Substack Scraper - Newsletters, Posts & Sponsorship Leads

Substack Scraper - Newsletters, Posts & Sponsorship Leads

Scrape Substack newsletters and posts without login: subscriber tier, paid plans, posting frequency, engagement, reactions and comments. Build newsletter sponsorship lead lists and research creators.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

ahmed abdelmenem

ahmed abdelmenem

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Substack Scraper: Newsletters, Posts & Sponsorship Leads

Scrape Substack newsletters and posts without logging in. This Substack scraper turns any Substack publication (on *.substack.com or a custom domain) into clean, structured data: post titles, dates, reactions, comments, restacks and paid/free status, plus publication profiles with subscriber tier, paid plan prices, posting frequency and engagement averages. Use it to build newsletter sponsorship lead lists, research creators, analyze content, or monitor competitors.

It works like a lightweight Substack API: you give it newsletter URLs or keywords and get JSON, CSV, Excel or HTML back.

What data you get

Publications (sponsorship and outreach leads)

FieldExample
name, url, subdomain, customDomainLenny's Newsletter, https://www.lennysnewsletter.com
description, language, logoNewsletter tagline and logo
authorName, authorHandle, authorProfileUrl, authorBio, twitterHandlePublic author info
subscriberTier, subscriberCountText, paidSubscriberTier"Millions of subscribers", "Over 1,200,000 subscribers" (as shown publicly by Substack)
hasPaidPlan, paidPricesMonthly, yearly and founding-member prices
postsLast30Days, postsLast90DaysPublishing cadence
avgReactionsRecent, avgCommentsRecent, paidPostShareRecentEngagement over the 10 most recent posts
lastPostAt, firstPostAt, createdAtActivity and age
hasPodcast, communityEnabled, sampleSize, scrapedAtExtras

No personal email addresses are collected.

Posts

publication, publicationUrl, postId, title, subtitle, slug, url, postType, author, authors (name, handle, profile URL), publishedAt, audience (everyone, only_paid, founding, only_free), isPaid, wordcount, reactionCount, commentCount, restacks, section, tags, coverImage, podcastDurationSec, bodyText (optional, free public posts only), scrapedAt.

Use cases

  • Newsletter sponsorships: find newsletters in your niche, check audience size tiers, posting cadence and engagement before you pitch an ad placement.
  • Influencer and creator research: build lists of Substack writers by topic, with their profile links and social handles.
  • Content analysis: see which topics, formats and lengths get the most reactions, comments and restacks.
  • Competitor monitoring: track what competing newsletters publish, how often, and what goes behind the paywall.
  • Pricing research: compare paid subscription prices across a niche.

How to use

  1. Add Substack URLs: publication homepages (https://example.substack.com, https://www.lennysnewsletter.com), single post URLs (.../p/post-slug) or author profiles (https://substack.com/@handle).
  2. Optionally add search keywords (e.g. product management, sourdough) to discover publications automatically.
  3. Choose the output: posts, publications, or both.
  4. Run and download your dataset. The Posts and Publications views in the dataset show each type as a table.

Example input

{
"startUrls": [
{ "url": "https://www.lennysnewsletter.com" },
{ "url": "https://newsletter.pragmaticengineer.com" }
],
"searchQueries": ["product management"],
"maxPublicationsPerQuery": 20,
"outputMode": "both",
"maxPostsPerPublication": 20,
"postedWithinDays": 90,
"includeBody": false,
"maxItems": 1000
}

Example output (publication)

{
"type": "publication",
"name": "Lenny's Newsletter",
"url": "https://www.lennysnewsletter.com",
"authorName": "Lenny Rachitsky",
"authorProfileUrl": "https://substack.com/@lenny",
"subscriberTier": "Millions of subscribers",
"subscriberCountText": "Over 1,200,000 subscribers",
"hasPaidPlan": true,
"paidPrices": [{ "name": "$20 a month", "amount": 20.0, "currency": "USD", "interval": "month", "isFounding": false }],
"postsLast30Days": 3,
"postsLast90Days": 10,
"avgReactionsRecent": 481.2,
"avgCommentsRecent": 9.7,
"lastPostAt": "2026-09-29T13:15:57+00:00"
}

Input options

OptionDescription
startUrlsPublication, post or author profile URLs.
searchQueriesKeywords to discover publications through Substack's public search.
maxPublicationsPerQueryPublications per keyword (default 20).
outputModeposts, publications or both (default).
maxPostsPerPublicationMost recent posts saved per publication (default 20).
postedWithinDaysOnly save posts from the last N days.
includeBodyAdd plain-text body (max 8,000 characters) for free, public posts only.
maxItemsCap on total results.

Pricing: pay per result

This Actor uses pay-per-result pricing: you are charged per item saved to the dataset (each post or publication counts as one result). Use maxItems and maxPostsPerPublication to control cost. If you set a maximum charge for the run, the scraper stops as soon as it is reached.

Notes and limitations

  • Only publicly available data is collected. No login is used and paid-only content is never extracted; for paid posts you get metadata (title, date, engagement) but no body text.
  • Subscriber numbers are the public tier text that Substack shows (e.g. "Over 1,000 subscribers"); exact counts are not public. Some publications hide them.
  • postsLast30Days / postsLast90Days are computed from a recent sample of up to 120 posts and are null if the sample doesn't cover the period.
  • Keyword discovery uses Substack's public profile search, which ranks writers by relevance; results depend on Substack.
  • Requests are rate-limited (max 3 concurrent) with automatic retries.

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Substack Inc.