Skip to content
scrapeatlas.Dashboard

Publishing

Substack API

Retrieve public Substack publications, posts, writer profiles, Notes and replies.

10 endpointsx-api-key

Search publications, browse newsletter archives and writer activity, retrieve articles and media metadata, and follow comments, Notes and replies. Read category IDs, names and slugs for organizing a publication directory.

API availability: Available

Base URL · local workerhttp://localhost:3046Public API: https://api.scrapeatlas.com.
Authenticationx-api-keyCustomer key from your account. See Authentication.

Endpoints

GET/v1/substack/publication

Get a Substack publication

Retrieve publication identity, descriptions, images, author details, subscriber-count text, sections and podcast metadata.

Reference
GET/v1/substack/posts

Get a Substack publication’s posts

Retrieve a publication’s post archive with titles, authors, publication times, engagement and media metadata. Choose newest or top sorting and continue with the returned offset.

Reference
GET/v1/substack/post

Get a Substack post

Retrieve a post’s title, subtitle, published article content, authors, tags, engagement, audio and video metadata.

Reference
GET/v1/substack/post/comments

Get a Substack post’s comments

Retrieve comment text, author details, reaction counts and replies. Parent IDs and depth link each reply to its discussion.

Reference
GET/v1/substack/profile

Get a Substack writer profile

Retrieve a writer’s public identity, bio, images, audience counts, profile links, publications and public subscriptions.

Reference
GET/v1/substack/search

Search Substack publications

Discover Substack publications by query with names, descriptions, author details, images, sections and podcast metadata.

Reference
GET/v1/substack/profile/feed

Get a Substack writer’s activity feed

Retrieve a writer’s public posts and Notes with author details, text, media attachments, engagement and parent discussion context. Continue with the returned cursor.

Reference
GET/v1/substack/note

Get a Substack Note

Retrieve a public Note’s text, rich-text document, author details, reactions, restacks, attachments and parent discussion context.

Reference
GET/v1/substack/note/replies

Get a Substack Note’s replies

Retrieve a root Note and its replies with published text, author details, rich-text documents, reactions, restacks and attachments. Continue with the returned cursor.

Reference
GET/v1/substack/categories

Get Substack publication categories

Retrieve the public publication category directory with numeric IDs, names, slugs and emoji metadata.

Reference

Quick start

Create an API key on your account page, then call the public API. Values below are placeholders.

Terminal
curl "https://api.scrapeatlas.com/v1/substack/publication?url=https%3A%2F%2Fexample.substack.com%2F" \
  -H "x-api-key: YOUR_API_KEY"

Coverage & limits

  • One publication, post or writer per request; four active requests and eight queued requests per worker, with a 10-second queue wait.
  • Post lists: 1–100 records per page, default 20; offset 0–10,000; new or top sorting.
  • Comment lists: 1–100 records, default 50; 1–8 hierarchy levels including top-level comments, default 3.
  • Search, profile feeds and Note replies: 1–100 records, default 100. Search page numbers are 0–1,000; feed and reply cursors are at most 1,024 characters.
  • Search phrases are 1–200 characters; Note IDs are positive numeric strings of 1–15 digits.
  • URLs are at most 1,024 characters; writer handles are 1–64 characters.
  • A 25-second total request deadline, three upstream attempts and one shared retry for network errors or HTTP 5xx.
  • At most 8 MiB of decoded source data, 32 nested levels and 100,000 examined nodes.
  • Publication sections, author bylines, post tags, media records, caption tracks, Note attachments, parent discussion records, categories and each profile collection contain at most 100 records.
Error codes
15
HTTPfailure.codeMeaning
400invalid_requestMissing, duplicated, invalid or unsupported request parameters.
401unauthorizedMissing or invalid service API key.
404not_foundThe requested publication, post or profile was not found.
422restricted_pageThe requested content requires additional access.
422unsupported_pageThe source did not provide the expected record.
502upstream_challengedThe source challenged the request.
502upstream_rate_limitedThe source rate limited the request.
502upstream_errorA source request failed.
502response_too_largeSource data exceeded the response byte limit.
502payload_too_complexSource data exceeded the traversal depth or node limit.
502unsafe_redirectThe source returned an unexpected redirect.
502request_limitThe request exhausted its source-attempt budget.
503busyAll worker request slots are in use.
504timeoutThe request exceeded its deadline.
200partialUsable data was returned with coverage warnings.