Substack Publication Post Exporter

Export posts from any Substack newsletter: title, author, publish date, body, categories and cover image, filtered by category, date or keyword. No login or proxy needed.

Open in Apify Store$0.99 / 1K on Free

Short answer

Substack Publication Post Exporter is an Apify Store Actor for Substack data that returns 8 published output fields, including title, publication, author, publishedAt. It lists $0.99 per 1,000 results on the Free plan (pay per event), $0.49 on the Business plan. It takes 18 input settings, none required. It covers 6 of the 7 core Substack fields this site tracks. Last updated Oct 25, 2026.

From the public Store listing and published build schema, synced 2026-11-12.
Substack AutomationNewsOther

What it returns

8 fields from the published dataset schema. Export as JSON, CSV or Excel, or read the dataset through the Apify API.

  • title
  • recordType
  • publication
  • author
  • publishedAt
  • audience
  • commentCount
  • url

Not in the schema among the core Substack fields: comment. The field matrix shows which other tools return them.

Input

Input settings for Substack Publication Post Exporter
SettingTypeRequiredDefaultWhat it does
mode string No publicationPosts What to scrape. substack.com-hosted inputs are reported as blocked_egress.
publications array No ["platformer.news"] (mode=publicationPosts) Custom-domain publication URLs or RSS-capable sites, e.g. `https://www.slowboring.com` or `https://platformer.news`. Bare subdomains and substack.com links are blocked from this actor's cloud network.
postUrls array No [] (mode=postUrls) Custom-domain post URLs, e.g. `https://www.noahpinion.blog/p/the-internet-breaks`. substack.com share links are reported as blocked_egress.
sortBy string No newest (mode=publicationPosts) Newest first or all-time most popular first.
publishedAfter string No – Keep posts published on or after this date (`YYYY-MM-DD`).
publishedBefore string No – Keep posts published on or before this date (`YYYY-MM-DD`).
containsKeyword string No – (mode=publicationPosts) Keep posts whose title, teaser or text contains this keyword. Uses Substack's publication search when possible.
tagsAnyOf array No [] Keep posts carrying at least one of these tags (case-insensitive).
audienceFilter string No all Keep all posts, only free posts, or only paid posts.
postType string No all Keep all post types or a single type.
Show the other 8 settings
More input settings for Substack Publication Post Exporter
SettingTypeRequiredDefaultWhat it does
mediaFilter string No any Keep all posts, audio posts, video posts, or text-only posts.
bodyFormat string No all Body fields to include. `none` is fastest; `all` adds HTML, plain text and Markdown.
includePaidPreview boolean No true For paid posts, include the public preview body and flag it as a preview. Turn off for faster metadata-only runs.
includeComments boolean No false Include public comment threads for free posts. Paid-post comments are members-only.
maxCommentsPerPost integer No 20 Cap on comments per post, including replies. Set to 0 for no limit.
includePublicationInfo boolean No true Add publication details such as pricing plans, sections, language and payment status.
maxItems integer No 50 Hard cap on emitted records.
maxPostsPerPublication integer No 0 Optional per-publication cap. Set to 0 for no per-publication limit.

Example input

Built from the input form's published example values and defaults.

{
  "mode": "publicationPosts",
  "publications": [
    "platformer.news"
  ],
  "postUrls": [],
  "sortBy": "newest",
  "tagsAnyOf": [],
  "audienceFilter": "all",
  "postType": "all",
  "mediaFilter": "any",
  "bodyFormat": "none",
  "includePaidPreview": false,
  "includeComments": false,
  "maxCommentsPerPost": 20,
  "includePublicationInfo": false,
  "maxItems": 3,
  "maxPostsPerPublication": 3
}

Run it from code or an AI agent

The same run through the Apify API, with the example input. You need an Apify API token; the run is billed to your account at the Store price.

Python

from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
    "mode": "publicationPosts",
    "publications": [
        "platformer.news"
    ],
    "postUrls": [],
    "sortBy": "newest",
    "tagsAnyOf": [],
    "audienceFilter": "all",
    "postType": "all",
    "mediaFilter": "any",
    "bodyFormat": "none",
    "includePaidPreview": False,
    "includeComments": False,
    "maxCommentsPerPost": 20,
    "includePublicationInfo": False,
    "maxItems": 3,
    "maxPostsPerPublication": 3
}

run = client.actor("vexaloom-labs/substack-publication-post-exporter").call(run_input=run_input)
if run is None:
    raise RuntimeError("The Actor run was not found.")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

pip install apify-client

JavaScript

import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "<YOUR_APIFY_TOKEN>" });
const input = {
    "mode": "publicationPosts",
    "publications": [
        "platformer.news"
    ],
    "postUrls": [],
    "sortBy": "newest",
    "tagsAnyOf": [],
    "audienceFilter": "all",
    "postType": "all",
    "mediaFilter": "any",
    "bodyFormat": "none",
    "includePaidPreview": false,
    "includeComments": false,
    "maxCommentsPerPost": 20,
    "includePublicationInfo": false,
    "maxItems": 3,
    "maxPostsPerPublication": 3
};

const run = await client.actor("vexaloom-labs/substack-publication-post-exporter").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

npm install apify-client

cURL

curl -X POST "https://api.apify.com/v2/actors/vexaloom-labs~substack-publication-post-exporter/run-sync-get-dataset-items"   -H "Authorization: Bearer $APIFY_TOKEN"   -H "Content-Type: application/json"   -d '{"mode":"publicationPosts","publications":["platformer.news"],"postUrls":[],"sortBy":"newest","tagsAnyOf":[],"audienceFilter":"all","postType":"all","mediaFilter":"any","bodyFormat":"none","includePaidPreview":false,"includeComments":false,"maxCommentsPerPost":20,"includePublicationInfo":false,"maxItems":3,"maxPostsPerPublication":3}'

Waits for the run and returns the dataset items (runs over 300 seconds return HTTP 408; start an async run instead).

MCP (AI agents)

{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=vexaloom-labs/substack-publication-post-exporter",
      "headers": {
        "Authorization": "Bearer <YOUR_APIFY_TOKEN>"
      }
    }
  }
}

Adds this Actor as a tool in an MCP client that takes a remote server URL (Cursor, VS Code, Claude Code) through Apify's hosted MCP server. OAuth sign-in also works without the header. Clients that only start local servers can wrap the URL with npx mcp-remote.

What a run costs

The result rate falls on higher Apify plans. Each figure is the published per-result rate times the number of results.

Cost of Substack Publication Post Exporter results by Apify plan
Apify planPer 1,00010,000 results100,000 results
Free plan$0.99$9.90$99
Starter plan$0.82$8.20$82
Scale plan$0.66$6.60$66
Business plan$0.49$4.90$49
  • Every run also has a start event, charged per GB of memory (minimum one): $0.10 on Free, $0.03 on Business. At its default memory of 4 GB a run starts at $0.40 on Free. Fewer, larger runs keep this small.
  • The Free plan includes $5 of monthly usage (Apify pricing, checked 2026-11-11); at the Free rate that covers at most about 5,050 results, less start events and platform usage.
  • Worked example: 10,000 results in one run on the Free plan cost $10.30 ($9.90 for results + $0.40 start), plus Apify platform usage (compute), billed separately by Apify.
  • Pay per event. Platform usage (compute) is billed by Apify on top of the event prices. Compare other tools in the cost estimator.

Where it fits among Substack routes

It ranks 1 of 1 catalogue Actors for Substack on the published formula (fields, price, reliability, freshness). Its line is highlighted on the map.

Route diagram for Substack dataSubstack Publication Post Exporter: stops at 5 of the 10 fields shown; Other Store tools (4): stops at 10 of the 10 fields shown; Substack Developer API: limited, field coverage not compared.SubstackcommenttitlepublicationauthorpublishedaudiencescrapedAtsubscriberCountdescriptionreactionCount1+API

Stops are fields. A ring means the field is in that route's published output schema; no ring means the line passes without it. Bold labels are the core fields for this website, the rest are fields that differ between routes. A white capsule means every data line stops there. The red line is the official API; its field coverage is not compared. A crossed red line means there is no open official API.

Official route: Substack Developer API

Limited access. Substack's Developer API Terms (last updated January 8, 2026) cover access to certain public information on creators' profiles or publications. It is not a general post archive API; each publication also serves a public RSS feed.

No public price is published.

Official documentation

Other Store tools for Substack

Reference only, from their public listings.

Other Store tools for Substack
ToolFieldsPrice / 1K
Substack Scraper39$1.15
Substack Newsletter Scraper25$3.00
Substack Leaderboard Scraper22$4.00
Substack Scraper–$2.50
Substack Scraper18$15

What people use it for

  • export publication posts
  • filter posts by date and topic

Medium Article Discovery & Metadata Extractor

Find Medium articles by tag, author, publication, keyword search or direct URL, returning title, author, tags, preview text, reading time, publish…

8 output fields $0.99 per 1K

Product Hunt Launch & Topic Data Exporter

Export Product Hunt launches with votes, comments, makers, hunter and topics from the daily leaderboard, a topic, a maker's history, or specific…

11 output fields $0.99 per 1K

Facebook Group Feed & Engagement Extractor

Pull posts from any public Facebook group with full text, media, reaction breakdown, top comments and reshares, plus optional group member count,…

7 output fields $0.99 per 1K

Facebook Post & Group Comment Thread Extractor

Get comments and nested reply threads from public Facebook posts, Watch videos, photos, and group posts, with per-reaction-type counts, author…

12 output fields $0.99 per 1K

Facebook Timeline Posts & Reel Transcript Extractor

Pull recent posts and Reels from a public Facebook Page or Profile, or fetch one post by its link, with text, reaction breakdown, comments, media,…

14 output fields $0.99 per 1K

LinkedIn Activity Feed Scraper with Engagement Filters

Pull posts, articles, and reposts from LinkedIn profile activity feeds, with reaction/comment/date filters and a per-reaction-type breakdown.…

9 output fields $0.99 per 1K

Questions people ask

How much does Substack Publication Post Exporter cost?

The published result rate depends on your Apify plan: $0.99 per 1,000 on Free, $0.82 per 1,000 on Starter, $0.66 per 1,000 on Scale, $0.49 per 1,000 on Business. So 10,000 results cost about $9.90 on the Free plan and $4.90 on Business, plus a start fee of $0.10 per run per GB of memory on Free. Platform usage is billed separately.

What data does Substack Publication Post Exporter return?

Its published output schema lists 8 fields: title, recordType, publication, author, publishedAt, audience, commentCount, url. A listed field is not guaranteed to be filled in every row.

What input does Substack Publication Post Exporter need?

No input is strictly required; the defaults run as is. Common settings: mode, publications, postUrls, sortBy, publishedAfter, publishedBefore.

How do I run Substack Publication Post Exporter from Python or the API?

Use the Apify API client: in Python, ApifyClient(token).actor("vexaloom-labs/substack-publication-post-exporter").call(run_input=...), then read the run's default dataset (run.default_dataset_id); in JavaScript the same call is client.actor("vexaloom-labs/substack-publication-post-exporter").call(input). Without a client, POST the input JSON to https://api.apify.com/v2/actors/vexaloom-labs~substack-publication-post-exporter/run-sync-get-dataset-items with your API token. Ready-to-paste code with the example input is on this page.

Sources

Actor updated 2026-10-25 Data synced 2026-11-12
Cite this page

Scraper Finder. "Substack Publication Post Exporter." https://scraperfinder.com/catalogue/substack-publication-post-exporter/ (data checked 2026-11-12).

Run Substack Publication Post Exporter

$0.99 per 1,000 results. Paste the example input above, set your Substack query, then export the dataset. Still choosing? Compare every Substack route.

Open in Apify Store