---
title: "Get post replies/comments"
method: GET
path: "/v1/posts/{id}/replies"
tags: ["Posts", "Comments"]
---

# Get post replies/comments

`GET /v1/posts/{id}/replies`

## Request

- Base URL: `https://api.outstand.so`
- URL: `https://api.outstand.so/v1/posts/{id}/replies`
- Auth: none declared

Fetch all comments and replies for a specific published post from a particular social media account. Specify the target account using `network` (required) and optionally `username`. If the post was published to only one account on that network, `username` can be omitted. When the post was published to multiple accounts on the same network, omitting `username` returns a 400 with the available usernames to disambiguate. By default only top-level comments are returned; set `include_replies=true` to nest each comment's replies under it (Facebook, Instagram, LinkedIn - a single reply tier; Threads nests to any depth). Note that Threads returns the whole conversation flat when `include_replies` is omitted, so nested replies still appear there as top-level entries. Comments are not supported on every network - TikTok, Pinterest, and Google Business Profile do not expose a comments API, and YouTube comments are not yet supported; these networks will return an error.

**Response keys:** read `data`, which returns the same comment shape for every network (id, author, text, created_at, like_count, and nested `replies` when requested). The `replies` key is deprecated: it preserves the per-network shape this endpoint returned before the cross-network format existed, so it differs by network and never carries nested replies. It is kept only so existing integrations do not break.

## Path parameters

- `id` string, required

## Query parameters

- `network` string, required
- `username` string
- `include_replies` boolean
- `resolve_author_names` boolean

## Response `200`

Replies retrieved successfully

- object
  - `success` boolean, required
  - `replies` union, required: Deprecated. The per-network shape this endpoint returned before the cross-network reply format was introduced, frozen so existing integrations keep working. The shape depends on `network`: Facebook and Instagram return an object `{ comments: [...] }`; Bluesky and Vimeo return arrays with network-specific field names (note Bluesky's `replies` here is a reply count, not an array); every other network returns the same array as `data`. Nested replies never appear here, even with include_replies=true. Use `data`, which is identical across every network.
    - LegacyNormalizedReply[]
      - `id` string, required: Unique identifier for the reply
      - `author` string, required: Author of the comment as the network identifies them (username, display name, or platform URN). Unchanged by `resolve_author_names`.
      - `text` string, required: Reply content
      - `created_at` string, nullable, required: ISO timestamp when the reply was created
      - `like_count` number: Number of likes on the comment, when the platform reports it
      - `platform_specific` unknown
      - `replies` LegacyNormalizedReply[]
    - LegacyFacebookReplies: Deprecated Facebook-only shape. Use `data` instead.
      - `comments` object[], required
        - `id` string, required
        - `text` string, required
        - `timestamp` string, nullable, required
        - `from` object
          - `id` string, required
          - `name` string, required
        - `like_count` number
    - LegacyInstagramReplies: Deprecated Instagram-only shape. Use `data` instead.
      - `comments` object[], required
        - `id` string, required
        - `text` string, required
        - `timestamp` string, nullable, required
        - `username` string
        - `like_count` number
        - `replies` unknown
    - LegacyBlueskyReply[]
      - `id` string, required
      - `author` string, required
      - `author_display_name` string
      - `author_avatar` string
      - `text` string, required
      - `created_at` string
      - `likes` number, required
      - `replies` number, required: Reply COUNT, not the nested replies array. `data` carries the array under the same name.
      - `reposts` number, required
      - `platform_specific` unknown
    - LegacyVimeoComment[]
      - `uri` string, required
      - `text` string, required
      - `createdOn` string, required
      - `user` object, required
        - `name` string, required
        - `uri` string, required
  - `data` NormalizedReply[], required: Top-level comments in the cross-network shape, each optionally carrying nested replies when include_replies=true. Identical for every network. Nesting is one tier deep on Facebook, Instagram, and LinkedIn, and unbounded on Threads. Prefer this over `replies`.
    - `id` string, required: Unique identifier for the reply
    - `author` string, required: Author of the comment as the network identifies them (username, display name, or platform URN). Unchanged by `resolve_author_names`.
    - `author_name` string, nullable, required: Human-readable author name. `null` when the network does not expose one, or on LinkedIn when `resolve_author_names` was not set or the commenter could not be resolved - `author` then stays the raw URN.
    - `author_username` string: The author's handle or vanity name, when the network provides one
    - `author_avatar_url` string: URL of the author's profile picture, when the network provides one. May expire.
    - `author_profile_url` string: Public profile URL of the author, when it can be derived
    - `text` string, required: Reply content
    - `created_at` string, nullable, required: ISO timestamp when the reply was created
    - `like_count` number: Number of likes on the comment, when the platform reports it
    - `platform_specific` unknown
    - `replies` NormalizedReply[]: Replies nested under this comment. Present only when include_replies=true. Facebook, Instagram, and LinkedIn cap threading at this single tier, so their replies never carry a `replies` key of their own; Threads nests to any depth, so a reply there can carry further replies recursively.

## Other responses

- `400`: Invalid query parameters
- `403`: Unauthorized - post belongs to different organization
- `404`: Post not found or account not published
- `500`: Internal server error

---

[API](https://skmtc.dev/outstand/apis/outstand-posts-v1.md) · [All operations](https://skmtc.dev/outstand/apis/outstand-posts-v1/llms.txt) · [OpenAPI document](https://skmtc.dev/outstand/apis/outstand-posts-v1/revisions/9cf3d8976019?raw)
