Substack API/Docs
Substack API docs
Unofficial live read API. Subscribe on RapidAPI, send the key on every request. Successful responses wrap Substack JSON as { "data": ... }. Missing parameters return 400. Unknown resources return 404. Upstream timeouts return 504.
Quickstart
Host is substack-live.p.rapidapi.com. IDs come from search or feed: posts as post_id, comments as comment_id. Publication handles are the subdomain or host.
curl --request GET \
--url 'https://substack-live.p.rapidapi.com/search/post?query=newsletter&language=en' \
--header 'x-rapidapi-host: substack-live.p.rapidapi.com' \
--header 'x-rapidapi-key: YOUR_RAPIDAPI_KEY'Search
GET /search/top
Ranked posts and comments for a keyword.
queryrequiredSearch textlanguageISO code that boosts ranking, e.g. en
GET /search/post
Search posts. Paginate with page.
queryrequiredSearch textpageStarts at 0languageISO code, e.g. en
GET /search/people
Search public profiles.
queryrequiredSearch textpageStarts at 0languageISO code, e.g. en
GET /search/publication
Search publications.
queryrequiredSearch textpageStarts at 0languageISO code, e.g. en
GET /search/explore
Explore tabs and items.
tabe.g. exploretypee.g. basequeryOptional filtercursorPagination cursorlanguageISO code, e.g. en
Feed
GET /feed
Feed of posts and comments by category tab.
tabDefault for-youcursorPagination cursorlimitPage size
GET /feed/tabs
List available feed tabs.
surfacee.g. exploreselectedTabe.g. exploretypee.g. base
Publication
GET /publication/archive
Posts in a publication archive.
publicationrequiredSubdomain (platformer) or host (platformer.substack.com)sortDefault newlimitPage sizeoffsetPagination offset
GET /publication/recommendations
Publications recommended from one publication.
publicationIdrequiredNumeric publication id
Reader
GET /reader/post
One post by id, or by publication plus slug.
postIdFrom search or feed as post_idpublicationRequired with slugslugRequired with publication
GET /reader/comment
One comment by id.
commentIdrequiredFrom search or feed as comment_id
GET /reader/comment-replies
Replies to a comment.
commentIdrequiredComment idcursorPagination cursor
GET /reader/post-comments
Comments on a post.
publicationrequiredSubdomain or hostpostIdrequiredPost id
Discover
GET /categories
All public categories.
GET /category
Publications in a category.
categoryIdrequirede.g. 96tierDefault allpageStarts at 0
Profile
GET /profile/public-profile
Public profile for a handle.
handlerequirede.g. scottstillman
GET /profile/activity
A user's public activity.
profileIdrequiredNumeric profile idcursorPagination cursor
GET /profile/posts
Posts by a user.
profileIdrequiredNumeric profile idoffsetPagination offsetlimitPage size
Health
GET /health
Service health. Returns {"status":"ok"}.