> **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/profiles-handle>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/substack/profiles-handle.mdx>

---

# Substack Profile API

A reader's public profile, the publications they write for and the ones they show publicly.

`GET /v1/substack/profiles/{handle}` resolves a public reader profile. `data.profile` carries `id`, `name`, `handle`, `slug`, `bio`, `photoUrl`, `createdAt`, `isDisabled`, `followerCount`, `subscriberCount`, `subscriberCountLabel`, `roughSubscribers`, `bestsellerTier`, `leaderboard`, `links`, `publicationUrl`, `hasNotes`, `hasPosts`, `recommendationCount` and `primaryPublication`.

`publications[]` lists the publications the person writes for, each with `role`, `public` and `isPrimary`. `subscriptions[]` lists the publications they show publicly, with `visibility`, `membershipState`, `type` and `isFounding`. `subscriptionsTruncated` is true when Substack cut that list. `lookupStatus` is `found` or `not_found`.

## Request

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

## FAQ

### What handle do I use?

The handle shown on the profile, for example `dieworkwear`. Letters, digits, dots, underscores and hyphens are accepted. Handles are case-sensitive, so use the exact casing shown on the profile.

### Are subscriptions complete?

Only the publications a person shows publicly appear. When Substack cuts the list, `subscriptionsTruncated` is true. Use `profile.subscriptions.list` for the paged version.

### What do the subscriber numbers mean?

`subscriberCount` is numeric when Substack publishes one. The labels such as `subscriberCountLabel` and `roughSubscribers` are the bands Substack displays, so treat them as labels rather than exact counts.

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