Skip to content

Latest commit

 

History

History
89 lines (74 loc) · 3.45 KB

README.md

File metadata and controls

89 lines (74 loc) · 3.45 KB

Substack Scraper - Posts, Substack Notes & Newsletter Archive

Substack scraper for posts and Substack Notes: paste publication URLs or profile handles and get every post with title, date, paywall flag, likes, restacks, comments, tags, authors and the full text of free posts, plus Notes with text, likes, restacks and replies. No login, no API key.

Run it on Apify Store: no servers, no proxies to manage, results as JSON, CSV or Excel, or straight into your app through the API.

Why use it

  • Runs in the cloud on Apify; start it from the browser, the API, a schedule, or tools like Make, n8n and Zapier.
  • Pay only for results. The current price and plan discounts are always on the Store page.
  • Cap the cost of any run with the maximum cost per run setting.

Quick start

  1. Open the Actor page and click Try for free.
  2. Paste an input like the one below and click Start.
  3. Download the dataset or read it over the API.
{
  "publications": [
    "https://www.lennysnewsletter.com/"
  ],
  "profiles": [
    "lenny"
  ],
  "maxPostsPerPublication": 20,
  "maxNotesPerProfile": 20,
  "maxItems": 40
}

Use it from code

Python (examples/python_example.py), Node.js (examples/node_example.js) and cURL (examples/curl.sh) examples are in the examples folder. All of them need an Apify API token.

Sample output

Real rows from a recent run, with any contact details masked. Full sample: sample-output.json.

[
  {
    "kind": "post",
    "id": 219482066,
    "title": "How to tell if a startup has a moat",
    "subtitle": "A framework for assessing whether the company you’re considering joining is built to last",
    "url": "https://www.lennysnewsletter.com/p/how-to-tell-if-a-startup-has-a-moat",
    "slug": "how-to-tell-if-a-startup-has-a-moat",
    "postType": "newsletter",
    "publishedAt": "2026-10-13T12:45:41.160Z",
    "audience": "only_paid",
    "isPaywalled": true,
    "description": "A framework for assessing whether the company you’re considering joining is built to last",
    "likes": 337,
    "restacks": 16,
    "comments": 2,
    "wordCount": 4153,
    "tags": [
      "Career"
    ],
    "sectionName": null,
    "authors": [
      {
        "name": "Dan Hockenmaier",
        "handle": "danhock",
        "url": "https://substack.com/@danhock",
        "isGuest": true
      }
    ],
    "language": "en",
    "coverImage": "https://substackcdn.com/image/fetch/$s_!7Uce!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb5a8d5c-1e31-45f5-b9f8-93426e87a971_1456x970.png",
    "podcastUrl": null,
    "podcastDurationSeconds": null,
    "publicationId": 10845,
    "publicationName": "Lenny's Newsletter",
    "publicationUrl": "https://www.lennysnewsletter.com",
    "bodyText": null,
    "bodyTruncated": null
  }
]

Support

Found a problem or need a field? Open an issue on the Actor's Issues tab and include your run link.


This repository holds usage examples and sample data. The Actor itself runs on Apify.