> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/substack/notes-noteid>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/substack/notes-noteid.mdx>

---

# Substack Note API

One note by id, with its body, author, engagement and attachments.

`GET /v1/substack/notes/{noteId}` resolves one note. A note id is a whole number from 1 to 2147483647, for example `378007586`.

`data.note` carries `id`, `body`, `bodyJson`, `createdAt`, `editedAt`, `author`, `reactionCount`, `reactions`, `restackCount`, `replyCount`, `language`, `isAiGenerated`, `translation`, `replyPermission`, `ancestorPath` and `attachments`. Each attachment has `type` such as `image`, `link`, `post` or `poll`, with its image, link preview or post ids. `lookupStatus` is `found` or `not_found`.

## Request

- **Endpoint:** `GET /v1/substack/notes/{noteId}`
- **Credits:** 1 credit
Failed requests are free
- **Input:** by note id
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/substack/notes/noteid/get)
- **Platform page:** [/platforms/substack](https://www.socialfetch.dev/platforms/substack)

## FAQ

### Where do I find a note id?

It is the numeric id on a note or in a Notes feed item's `note.id`, or the `substack.com/@handle/note/c-123` URL. The route accepts ids from 1 to 2147483647 and rejects other values with a 400.

### What does isAiGenerated mean?

It is Substack's own flag on the note, returned as-is. It is not Social Fetch's judgement about the text.

### What if no note has the id?

A malformed id is a 400. A well-formed id that matches no note is a typed `not_found`.

### How many credits does a note lookup 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.
