---
title: "Get comment"
method: GET
path: "/api/posts/{post_id}/comments/{id}"
tags: ["Comments"]
---

# Get comment

`GET /api/posts/{post_id}/comments/{id}`

## Request

- Base URL: `https://api.postproxy.dev`
- URL: `https://api.postproxy.dev/api/posts/{post_id}/comments/{id}`
- Auth: HTTP bearer

Retrieves a single comment with its direct replies.

## Query parameters

- `profile_group_id` string
- `profile_id` string, required

## Response `200`

The comment with its replies.

- Comment: A comment on a published post.
  - `id` string: Unique comment identifier (ID)
  - `external_id` string, nullable: Platform's native comment ID (null for pending comments)
  - `body` string: Comment text content
  - `status` 'synced' | 'pending' | 'published' | 'failed' | 'failed_waiting_for_retry' | 'delivery_unconfirmed': Comment status. Only published and failed are terminal — treat every other value as still in progress.
  - `error` string, nullable: Error summary if the comment failed to publish (null otherwise)
  - `error_details` PlatformErrorDetails, nullable: Structured platform error (omitted when no platform error info is available).
    - `platform_error_code` string, nullable: Error code returned by the platform API
    - `platform_error_subcode` string, nullable: Error subcode returned by the platform API
    - `platform_error_message` string, nullable: Error message returned by the platform API
    - `postproxy_note` string, nullable: Additional context from Postproxy about the error
  - `author_username` string, nullable: Author's display name or username
  - `author_avatar_url` string, nullable: Stable Postproxy storage URL of the author's profile picture once mirrored; the platform URL until then
  - `author_external_id` string, nullable: Author's platform-specific ID
  - `metadata` CommentMetadata, nullable: Additional author signals fetched asynchronously from the platform after the comment is ingested. Null until the lookup completes; individual keys may be absent depending on platform support.
    - `author_fetched_at` string: ISO 8601 timestamp of the last author-info refresh
    - `is_verified_user` boolean: Author has a verified account (instagram)
    - `is_user_follow_business` boolean: Author follows the business profile (instagram)
    - `is_business_follow_user` boolean: The business profile follows the author (instagram)
    - `follower_count` integer: Author's follower count (instagram)
  - `parent_external_id` string, nullable: Parent comment's external ID (null for top-level comments)
  - `like_count` integer: Number of likes on the comment
  - `is_hidden` boolean: Whether the comment is hidden
  - `permalink` string, nullable: Direct URL to the comment on the platform (when available)
  - `platform_data` object, nullable: Platform-specific metadata
  - `attachments` CommentAttachment[]: Media attached to the comment. Empty array when there are none. Always empty on a freshly created (pending) comment.
    - `id` string: Attachment hashid
    - `type` 'image' | 'video' | 'audio' | 'gif' | 'external' | 'file'
    - `url` string, nullable: Stable storage URL to the asset. While status is pending, this temporarily falls back to the source URL on the platform until the file is mirrored to Postproxy storage.
    - `status` 'pending' | 'processed' | 'failed': pending (still being mirrored), processed (stored and ready), failed (could not be downloaded)
    - `external_id` string, nullable: Platform-side identifier for the attachment (e.g. Facebook attachment target ID). Omitted when the platform did not provide one.
  - `external_edited_at` string, nullable: ISO 8601 timestamp of the last edit made through Postproxy (null if never edited)
  - `posted_at` string, nullable: ISO 8601 timestamp when the comment was posted on the platform
  - `created_at` string: ISO 8601 timestamp of record creation
  - `replies` Comment[]: All replies (regardless of nesting depth) flattened under the root top-level comment, sorted by created_at ascending. Present on per-post list and get responses.

## Other responses

- `400`: Missing required parameters.
- `401`: Invalid, missing, or insufficient API key permissions.
- `404`: Resource does not exist or is not accessible.

---

[API](https://skmtc.dev/postproxy/apis/postproxy-social-media-api.md) - [All operations](https://skmtc.dev/postproxy/apis/postproxy-social-media-api/llms.txt) - [OpenAPI document](https://skmtc.dev/postproxy/apis/postproxy-social-media-api/revisions/d54482ac4ce7?raw)
