Substack hub

Substack Notes API

A reader's public Notes and replies, cursor paged, with the note, parent comments and attachments.

GET /v1/substack/profiles/{handle}/notes

1 credit Failed requests are free

About this endpoint

GET /v1/substack/profiles/{handle}/notes lists a reader's public Notes history. type is notes, replies or all; the default is all. cursor comes from the previous page's page.nextCursor.

data.items[] uses the shared feed item shape: type, id, post, note, publication, profiles, createdAt and parentComments. A note row carries body, bodyJson, createdAt, author, reactionCount, reactions, restackCount, replyCount, language, isAiGenerated, attachments and replyPermission. data.profileId names the reader and data.page reports hasMore and nextCursor.

Substack Notes API FAQ

What do the type values return?

notes returns the person's own notes, replies returns their replies to other notes, and all returns both. The default is all.

How deep can I page?

Follow page.nextCursor while page.hasMore is true. The feed is deep, so a full history can take many pages.

What is a feed item?

Notes, posts and profile blocks share one envelope. Check item.type and read item.note, item.post or item.profiles accordingly.

How many credits does a Notes page cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth.