---
title: "Comment events"
method: POST
path: "commentEvents"
tags: ["Webhook Events"]
---

# Comment events

`POST commentEvents` (webhook)

- `comment.received`: A new comment from someone other than the account arrived on one of the account's posts; comments imported when a post is first synced do not emit it.

Delivered as a `POST` to every active endpoint that subscribes to the event and whose profile access covers it. Delivery is at least once and events are not ordered, so deduplicate by `id`.

## Payload

- WebhookCommentEvent: Envelope for `comment.received`.
  - `id` string, required: Event id (`evt_…`). Stable across automatic retries and manual redeliveries; deduplicate on it.
  - `type` 'comment.received', required
  - `apiVersion` string, required: Payload version.
  - `createdAt` string, date-time, required: When the event was created.
  - `data` WebhookCommentEventData, required
    - `comment` WebhookCommentEventComment, required
      - `id` string, required: Platform comment id.
      - `accountId` string, required: PostZen account id.
      - `profileId` string, required: The account's profile.
      - `platform` 'x' | 'instagram' | 'tiktok' | 'linkedin' | 'facebook' | 'youtube' | 'threads' | 'pinterest' | 'bluesky' | 'telegram', required: Platform of the account an event refers to. Webhook payloads use `x` for X (Twitter).
      - `platformPostId` string, required: The platform's id for the post the comment is on.
      - `parentCommentId` string: Present when the comment is a reply to another comment.
      - `text` string, required: Comment text.
      - `author` WebhookEventPerson, required: A platform user as the platform reported them. Every field is omitted when unknown.
        - `id` string: Platform user id.
        - `name` string: Display name.
        - `username` string: Handle without the leading @.
      - `publishedAt` string, date-time, required: When the comment was posted.
      - `permalink` string, uri: Link to the comment on the platform.

## Acknowledgement `2XX`

Acknowledges the delivery. Any other status, or no response within 10 seconds, schedules a retry.

---

[API](https://skmtc.dev/postzen/apis/postzen-public-api.md) · [All operations](https://skmtc.dev/postzen/apis/postzen-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/postzen/apis/postzen-public-api/revisions/40863e3710ec?raw)
