All endpoints
Substack User Activity

Substack User Activity API

Get an author's public activity feed: their Notes and the posts they publish or restack, newest first, or only their notes, posts, replies, restacks or likes. Each item is tagged note, post or comment and says what the author did with it. Notes carry text, engagement and any quoted post or note.

Price: $0.003 per page
Free tier: 50 requests/month
Endpoint
GET /v1/substack/user/activity

Parameters

username
Substack handle, e.g. lenny, with or without a leading @ (max 100 characters). Provide one of username, user_id or url.
user_id
Numeric Substack user ID, as returned in user_id. Provide one of username, user_id or url.
url
Profile URL, e.g. https://substack.com/@lenny (max 500 characters). Provide one of username, user_id or url.
type
Only this kind of activity: note, post, reply, restack or like
pages
Number of pages to fetch, 1-250 (default: 1). Each page returns 12 items; you are billed per page returned.

Response fields

items
Array of activity items, newest first
type
note, post or comment (a reply on a post or note)
activity
What the author did with it: note, post, reply, restack or like
note_id
Note ID
body
Note text
date
Date and time posted (UTC)
author
Author's handle
author_name
Author's display name
author_id
Author's user ID
author_url
Link to the author's profile
source
"Substack"
domain
"substack.com"
likes
Number of likes
replies
Number of replies
restacks
Number of restacks
reactions
Reaction counts by emoji
author_pic_url
Author's profile picture URL
author_bestseller_tier
Author's bestseller badge tier: 0, 100, 1000 or 10000
lang
Language code
attachments
Media and quoted items. Each has type (image, video, link, post, note, publication) and url, plus title or dimensions where relevant
publication
The author's primary publication
url
Direct link to the note
post_type
For post items: newsletter, podcast, video or thread; post items otherwise carry the post fields documented on User Posts (https://apidirect.io/docs/substack-user-posts)
username
The author's handle
user_id
The author's user ID
pages
Number of pages returned
count
Number of items returned

Example Request

curl "https://apidirect.io/v1/substack/user/activity?username=hamish&pages=1"   -H "X-API-Key: YOUR_API_KEY"

Example Response

{
  "count": 24,
  "items": [
    {
      "activity": "note",
      "attachments": [
        {
          "attachments": [
            {
              "post_id": "218085342",
              "publication": "On Substack",
              "title": "Model Behavior: George Saunders",
              "type": "post",
              "url": "https://on.substack.com/p/model-behavior-george-saunders"
            },
            {
              "duration": 44.6,
              "height": 1280,
              "type": "video",
              "url": "https://substack.com/api/v1/video/upload/c7e75333-51e0-4895-9c1c-597fbbdb5d11/src",
              "width": 720
            }
          ],
          "author": "arielleswedback",
          "author_name": "Arielle Swedback",
          "body": "@George Saunders spoke about Substack and our AI conversation yesterday on Late Night with Seth Meyers. Grateful to him for helping us see our way through",
          "note_id": "355302724",
          "type": "note",
          "url": "https://substack.com/@arielleswedback/note/c-355302724"
        }
      ],
      "author": "hamish",
      "author_bestseller_tier": 0,
      "author_id": "3567",
      "author_name": "Hamish McKenzie",
      "author_pic_url": "",
      "author_url": "https://substack.com/@hamish",
      "body": "Still feels like a massive honor just for @George Saunders to be publishing on Substack, let alone be speaking of it on the big shows. ",
      "date": "2026-10-08 04:48:40",
      "domain": "substack.com",
      "lang": "en",
      "likes": 53,
      "note_id": "355659691",
      "publication": "Disjointed",
      "reactions": {
        "❤": 53
      },
      "replies": 5,
      "restacks": 3,
      "source": "Substack",
      "type": "note",
      "url": "https://substack.com/@hamish/note/c-355659691"
    }
  ],
  "pages": 2,
  "user_id": "3567",
  "username": "hamish"
}

Frequently asked questions

How do I get only Notes?

Pass type=note. Without type the feed holds notes, posts and restacks; replies and likes only appear when you ask for them.

Why 12 per page?

Substack serves this feed 12 items at a time regardless of the limit requested.

How does pricing work?

You only pay for successful requests. The Substack User Activity API costs $0.003 per page. There are no monthly fees or commitments. You get 50 free requests per endpoint every month.

Do I need a credit card to start?

No. You can sign up and use the free tier (50 requests/endpoint/month) without adding a payment method. You only need to add a card when you want to exceed the free tier.

Are there rate limits?

Yes, there's a concurrency limit of 10 simultaneous requests per endpoint per user. If you need more, just get in touch.

Start using the Substack User Activity API

Get your API key and start making requests in minutes. 50 requests/month free every month.

Get API Key