---
title: "Substack User Activity"
method: GET
path: "/v1/substack/user/activity"
tags: ["Substack"]
---

# Substack User Activity

`GET /v1/substack/user/activity`

## Request

- Base URL: `https://apidirect.io`
- URL: `https://apidirect.io/v1/substack/user/activity`
- Auth: API key in header `X-API-Key`

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.

## Query parameters

- `username` string
- `user_id` string
- `url` string
- `type` 'note' | 'post' | 'reply' | 'restack' | 'like'
- `pages` integer

## Response `200`

Successful response

- SubstackUserActivityResponse: Inferred from a live response. Any field can be null or absent, and new fields may be added at any time.
  - `items` object[], nullable
    - `note_id` string, nullable
    - `body` string, nullable
    - `date` string, nullable
    - `author` string, nullable
    - `author_name` string, nullable
    - `author_id` string, nullable
    - `author_url` string, nullable
    - `source` string, nullable
    - `domain` string, nullable
    - `likes` number, nullable
    - `replies` number, nullable
    - `restacks` number, nullable
    - `reactions` object, nullable
      - `❤` number, nullable
    - `author_pic_url` string, nullable
    - `author_bestseller_tier` number, nullable
    - `lang` string, nullable
    - `attachments` object[], nullable
      - `type` string, nullable
      - `note_id` string, nullable
      - `author` string, nullable
      - `author_name` string, nullable
      - `body` string, nullable
      - `attachments` object[], nullable
        - `post_id` string, nullable
        - `publication` string, nullable
        - `title` string, nullable
        - `type` string, nullable
        - `url` string, nullable
        - `duration` number, nullable
        - `height` number, nullable
        - `width` number, nullable
      - `url` string, nullable
    - `publication` string, nullable
    - `url` string, nullable
    - `type` string, nullable
    - `activity` string, nullable
  - `username` string, nullable
  - `user_id` string, nullable
  - `pages` number, nullable
  - `count` number, nullable

## Other responses

- `400`: Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).
- `401`: Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).
- `402`: Free tier used up for this endpoint and no payment method on file (`payment_required`).
- `403`: Account blocked after a failed payment (`account_blocked`).
- `404`: Not found: the requested item does not exist (code: not_found).
- `429`: Rate limit exceeded, or too many concurrent requests for this endpoint
- `500`: Internal server error
- `502`: Temporary failure retrieving Substack data. Please retry shortly.
- `503`: Service unavailable: the data source is temporarily unavailable
- `504`: The request timed out

---

[API](https://skmtc.dev/apidirect/apis/api-direct.md) · [All operations](https://skmtc.dev/apidirect/apis/api-direct/llms.txt) · [OpenAPI document](https://skmtc.dev/apidirect/apis/api-direct/revisions/fa8c68d70bd0?raw)
