Substack Scraper: Posts, Content & Engagement avatar

Substack Scraper: Posts, Content & Engagement

Pricing

from $0.80 / 1,000 delivered post records

Go to Apify Store
Substack Scraper: Posts, Content & Engagement

Substack Scraper: Posts, Content & Engagement

Scrape Substack newsletters, including custom domains: post archive, public post content, authors, likes, comments and restacks. Track new and changed posts between runs. Paid posts are labelled as excerpts. $0.80 per 1,000 posts.

Pricing

from $0.80 / 1,000 delivered post records

Rating

0.0

(0)

Developer

Nexo Data

Nexo Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Scrape Substack newsletters, including custom domains: post archive, public post content, authors, likes, comments and restacks. Track new and changed posts between runs. Paid posts are labelled as excerpts. $0.80 per 1,000 posts.

Store page: https://apify.com/nexo_data/substack-public-archive-and-changes

What can you do with this Substack posts scraper?

  • Archive a newsletter's full public post history
  • Track new posts and engagement over time
  • Analyze topics and content strategy of creators
  • Feed newsletter content into LLM/RAG apps

How to scrape a Substack newsletter archive

  1. Open the Actor on Apify Store and click Try for free.
  2. Paste your input (see the example below) in the Input tab.
  3. Click Start and wait for the run to finish.
  4. Download results as JSON, CSV, Excel or HTML, or fetch them via the Apify API.

How to scrape a Substack newsletter archive via API

curl -X POST "https://api.apify.com/v2/acts/nexo_data~substack-public-archive-and-changes/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"publicationUrls": ["https://www.noahpinion.blog"], "maxPosts": 3, "includeContent": true}'

You can also call it from Python/JS with the apify-client, schedule it, or connect it to Make, Zapier, n8n or an MCP-enabled AI agent.

How to schedule it for monitoring

Create an Apify Schedule (e.g. daily) with the same input. Combine with webhooks or integrations to get alerts in Slack, email or Google Sheets.

Input example

{
"publicationUrls": [
"https://www.noahpinion.blog"
],
"maxPosts": 3,
"includeContent": true
}

Output example

Each item in the dataset is one result. Typical fields are listed in the Output tab; export to JSON/CSV/Excel.

Pricing (pay per event)

You only pay for what you get — no monthly rental. Apify platform usage is included in the event prices below.

EventWhat it isPrice
run-startRun initialization (including invalid inputs) — One initialization event per run, including runtime input-validation failures.$0.003 ($3.0 / 1,000)
source-checkBounded public-source check — One bounded public-source request attempt; charged also when access fails or filters match nothing.$0.001 ($1.0 / 1,000)
resultDelivered post record — One delivered usable post record. Error rows do not trigger this event.$0.0015 ($1.5 / 1,000)

Tip: set Maximum cost per run in run options to cap spend. New Apify accounts get free monthly credits, so your first runs are effectively free.

FAQ

Is it legal to scrape Substack posts? This Actor collects only publicly available data. Make sure your use complies with the site's terms and data protection laws (e.g. GDPR).

Do I need an API key or login? No. Only an Apify account.

What if a source fails? Failed or empty sources are reported in the output for diagnosis; you are not charged the result event for them.

Can I use it with AI agents / LLMs? Yes — output is structured JSON, ready for RAG, LangChain, LlamaIndex or the Apify MCP server.

Found a bug or need a feature? Open an issue in the Issues tab — we usually respond within 24 hours.