Skip to main content

tap-substack

A Singer tap for extracting data from Substack newsletters, built with the Meltano Singer SDK.

What's Working

Streams

Stream Endpoint Auth Status Description
posts /api/v1/archive No Working All published posts (paginated, sorted by date)
post_details /api/v1/posts/{slug} No Working Full HTML content per post (child of posts)
comments /api/v1/post/{id}/comments No Working Comments per post (child of posts)
dashboard_summary /api/v1/publish-dashboard/summary Yes Working High-level publication metrics (subscribers, views, open rate)
email_stats /api/v1/publication/stats/email_stats Yes Working Per-post email delivery and engagement metrics
recommendations_inbound /api/v1/recommendations/stats/to Yes Working Publications recommending you + signup stats
recommendations_outbound /api/v1/recommendations/stats/from Yes Working Publications you recommend + signup stats
subscribers /api/v1/publication/subscribers Yes Working Subscriber list with email, type, source

Features

  • Public + authenticated modes: Runs without auth for public data; add session_token to unlock dashboard/analytics streams
  • Pagination: Offset-based pagination for list endpoints (posts, email_stats, subscribers)
  • Rate limiting: Built-in 0.5s request throttle to avoid 429s
  • Graceful auth errors: Authenticated streams log warnings and skip on 403/404/429 instead of crashing
  • Parent-child streams: post_details and comments automatically iterate over posts from the posts stream
  • Incremental replication: posts stream supports replication_key on post_date

Installation

pip install -e .

Configuration

Setting Required Description
subdomain Yes Your Substack subdomain (e.g. newsletter for newsletter.substack.com)
session_token Yes Your substack.sid cookie (see below)

Getting your session token

  1. Log in to your Substack dashboard
  2. Open browser DevTools > Application > Cookies
  3. Copy the value of the substack.sid cookie

Usage

# Discovery mode
tap-substack --config sample_config.json --discover

# Sync public data only
tap-substack --config sample_config.json

# Pipe to a target
tap-substack --config config.json | target-jsonl

Development

# Set up
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

# Run against a test newsletter (public only)
tap-substack --config test_config.json

Metadata

Release files for tap-substack 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tap-substack 1.0.0
File Size Uploaded
tap_substack-1.0.0.tar.gz 7.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tap-substack 1.0.0
File Interpreter ABI Platform
tap_substack-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 15.5 kB

Release files / tap_substack-1.0.0.tar.gz

Download URL tap_substack-1.0.0.tar.gz
Size 7.7 kB
Tags Source
SHA-256 checksum
How to use checksums
70098d9c035e1ad6fc4f7fc6647e7bb26b0d4048e33d24404d4bfa592b96e0f2
BLAKE2b-256 checksum
How to use checksums
8428fdfa6ad0e326b9f3d6b793caa92a7b2c9bf1a7c2f1c409f32820ddbef8d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.11

Release files / tap_substack-1.0.0-py3-none-any.whl

Download URL tap_substack-1.0.0-py3-none-any.whl
Size 7.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f31043e92b7f06d8d054d28e63e2cf31d08c4a7c2243d17403d51b4d005100cf
BLAKE2b-256 checksum
How to use checksums
9783f1bfbf737be024590cff8119688686a7646cc7bd6af3315ffa5b9534188e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.11

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page