Substack API

Substack API for Publication Info, Post Archives, Post Details, and Comments

Scrappa's Substack API returns structured JSON from Substack, the newsletter platform. Retrieve publication info from the homepage metadata, read post archives sorted by new or top with pagination, fetch full post details with likes, comment counts, paywall flags and the free post body as plain text, and read complete public comment threads. Scrappa is an independent service and is not affiliated with or endorsed by Substack.

500 free credits
No card needed
From $0.20 / 1k
Pay as you go
Structured JSON
Ready for apps
API key access
Test in minutes
4
Endpoints
Substack
Source coverage
$0.20
Per 1k requests

Try it now

Make one request. Inspect structured JSON.

Use the first endpoint in this API family with a Scrappa API key. Every account includes 500 free monthly credits, so you can validate the response shape before buying credits.

Request preview
Request
curl -X GET "https://scrappa.co/api/substack/post?publication=slowboring&slug=destroying-the-west-in-order-to-save" \
  -H "Accept: application/json" \
  -H "X-API-KEY: YOUR_API_KEY"
JSON response
{
  "success": true,
  "data": {
    "post": {
      "id": 219413798,
      "title": "Destroying the West in order to save it",
      "author": "Matthew Yglesias",
      "date": "2026-10-13T10:02:01.922Z",
      "likes": 151,
      "comment_count": 102,
      "paywalled": false,
      "body_plain_text": "A couple of weekends ago, I went with friends to the Power to the People music festival..."
    }
  },
  "meta": { "endpoint_family": "post_detail", "billable": true }
}

What you can build

Structured data for real applications. Here are some ideas.

Newsletter Analytics

Track Substack publication info, post output and engagement metrics like likes and comment counts for influencer and media research.

Content Monitoring

Monitor new and top posts from followed publications with titles, subtitles, authors and publication dates already parsed.

Paywall-Aware Scraping

Respect post paywalls with an explicit paywall flag and read only the free post body as clean plain text.

Comment Analysis

Fetch complete public comment threads with authors, dates, text and like counts to analyze reader reaction.

Substack scraper API

Substack API for newsletter publications, posts, and comments

The Substack API is built for newsletter analytics, content monitoring, and comment research. Each endpoint returns structured JSON from public Substack data: publication info from homepage metadata, post archives with engagement metrics, post details with the free body as plain text and complete public comment threads.

Retrieve publication info with name, subdomain, description, author and hero image URL.

Read post archives sorted by new or top with offset pagination and a has_more flag.

Fetch post details with likes, comment counts, paywall flag and the free body as plain text.

Read complete public comment threads with authors, dates, text and like counts.

All data is public; no login or account credentials required.

Choose the right Substack API endpoint

Use Post Archive for publication monitoring

Pass a publication subdomain and sort order to the posts endpoint to read the latest or most liked posts with titles, subtitles, authors, dates, likes and comment counts already parsed.

Open Substack Post Archive API docs

Use Post Detail for full post records

Pass a publication and slug to the post endpoint to get the full post detail with likes, comment count, paywall flag and the free body as HTML plus a plain-text rendering.

Open Substack Post Detail API docs

Use Post Comments for reader reaction

Pass a publication and post ID to the comments endpoint to read the complete public comment thread with authors, dates, text and like counts.

Open Substack Post Comments API docs

Available endpoints

Everything you need in one API.

GET

Publication Info

/api/substack/publication

Retrieve public Substack publication info: name, subdomain, description, author and hero image

GET

Post Archive

/api/substack/posts

Retrieve a page of posts from a Substack publication archive with sort and pagination

GET

Post Detail

/api/substack/post

Retrieve a single Substack post with likes, comment count, paywall flag and free body

Scrappa vs ScrapingBee / ScraperAPI

See how Scrappa compares to the official API.

Substack publication data as JSON
Scrappa:
ScrapingBee / ScraperAPI: Build your own parser
Post archive with engagement metrics
Scrappa: Likes and comment counts included
ScrapingBee / ScraperAPI: Parse it yourself
Paywall flag
Scrappa:
ScrapingBee / ScraperAPI:
Comment threads
Scrappa: Complete thread in one call
ScrapingBee / ScraperAPI: Separate parse
Price per 1k requests
Scrappa: From $0.20
ScrapingBee / ScraperAPI: Varies by credits per request
Unified API key
Scrappa: Yes (80+ APIs)
ScrapingBee / ScraperAPI: Scraping only
Free tier
Scrappa: 500 credits/month
ScrapingBee / ScraperAPI: Trial credits

Key features

Publication info with name, subdomain, description, author and hero image URL
Post archives sorted by new or top with offset pagination and a has_more flag
Post details with likes, comment counts, paywall flag and free body as HTML plus plain text
Complete public comment threads with authors, dates, text and like counts
Unknown publications and posts fail with a non-billable 404

Frequently asked questions

No. Scrappa is an independent service and is not affiliated with or endorsed by Substack. The Substack API returns structured JSON from public Substack data through a Scrappa API key.

Every Scrappa account includes 500 free credits each month. After that, each request costs one credit, which works out to $0.20 to $0.30 per 1,000 requests depending on the credit pack or plan. Failed requests are never charged.

The Substack comments endpoint returns the complete public thread in a single response with no continuation cursor, so has_more is always false. Very large threads are capped and the cut count is reported as comments_cut.

The publication homepage og:title carries an author segment only when the author name differs from the publication name. When it is absent, the author field is omitted rather than returned empty.

Start using the Substack API

Sign up and get 500 free credits. No credit card required.