Read and reply to comments
Find comments that need an answer, reply to them, and hide or delete comments.
Find comments to answer
curl --get "https://www.posteady.com/api/v1/comments" \
--data "status=unanswered" --data "days=7" \
--header "Authorization: Bearer $POSTEADY_API_KEY"| Parameter | Meaning |
|---|---|
platform | threads, instagram, x, youtube, tiktok, linkedin, or facebook; omit for all |
accountId | Filter by account UUID |
status | all (default), unanswered, replied, or resolved |
days | 7, 30 (default), 90, or 0 for all synchronized comments |
cursor | nextCursor from the previous response |
The filters and statuses are the same as in the Posteady comment inbox. replied means the latest reply under the comment is from the account. resolved means someone marked the comment as handled in Posteady. Other comments from other people are unanswered. Comments that the account wrote have fromAccount: true and no status.
Each comment has commentId, accountId, and platform for a reply. postId is the native ID of the post, and parentCommentId is the comment that this one answers.
This API reads comments already synchronized to Posteady; it does not fetch new comments from the platform when you call it.
While hasMore is true, send nextCursor as cursor with the same filters. If failedPlatforms is present, Posteady couldn't read comments from those platforms. nextCursor is then null so that their comments aren't skipped; send the same request again later.
Reply to a comment
Send the commentId, platform, and accountId from the list. For LinkedIn, also send the postId, because the same commentId can appear on more than one post.
curl --request POST "https://www.posteady.com/api/v1/comments/18000000000000101/replies" \
--header "Authorization: Bearer $POSTEADY_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"platform": "instagram",
"accountId": "11111111-1111-4111-8111-111111111111",
"text": "Yes! It is in stock now."
}'The reply is posted as the account that received the comment. Replies are text only. The response has the new replyId and the parentCommentId that the reply is attached to. Posteady also adds the reply to the comment list right away, so the thread shows as replied before the next sync.
| Platform | Reply rules |
|---|---|
| Instagram, YouTube, Facebook | Replies stay one level deep. A reply to a reply is attached to the top-level comment of the thread, and note says so |
| The reply is posted as the Page. The connected account needs comment permissions and a Page role that can moderate comments | |
| TikTok | The account must be connected through TikTok for Business. If TikTok doesn't return the new reply's ID, replyId is null and the reply appears in the list after the next sync |
| X | Korean, Chinese, and Japanese characters and emoji count as 2 characters. If Posteady can't save the reply to the list, note says so |
Send postId from the comment list |
| Platform | Maximum text length |
|---|---|
| 2,200 characters | |
| YouTube | 10,000 characters |
| Threads | 500 characters |
| X | 280 characters |
| 1,250 characters | |
| 8,000 characters | |
| TikTok | TikTok's own limit |
Results and errors
A reply request has no requestId. Sending the same request again can post a second reply, so check the result before you retry.
| Response | Next step |
|---|---|
422 VALIDATION_ERROR | Read the message. The text may be too long, X may have rejected duplicate text, or a LinkedIn reply may need postId |
403 INSUFFICIENT_PERMISSION | Check your workspace permissions. For Facebook, check the account's role on the Page |
404 COMMENT_NOT_FOUND | Use the IDs from the comment list. The comment may have been deleted |
409 ACCOUNT_TOKEN_EXPIRED | Reconnect the account in Posteady |
429 RATE_LIMITED | The platform's request limit was reached. Wait, then retry |
502 PLATFORM_ERROR | The reply may have been posted. Check the comment on the platform before you send it again |
503 SERVICE_UNAVAILABLE | Nothing was posted. Retry later |
If the request times out, check the comment on the platform before you send it again. The member who owns the API key needs permission to view comments to read them, and permission to write comments to reply.
Hide or delete a comment
curl --request PATCH "https://www.posteady.com/api/v1/comments/18000000000000101" \
--header "Authorization: Bearer $POSTEADY_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"platform": "instagram",
"accountId": "11111111-1111-4111-8111-111111111111",
"hidden": true
}'Send "hidden": false to show the comment again. To delete a comment, send the same values as query parameters.
curl --request DELETE "https://www.posteady.com/api/v1/comments/18000000000000101?platform=instagram&accountId=11111111-1111-4111-8111-111111111111" \
--header "Authorization: Bearer $POSTEADY_API_KEY"The rules are the same as in the Posteady comment inbox. For LinkedIn, also send postId.
| Action | Rules |
|---|---|
| Hide or show | Comments from other people only. LinkedIn doesn't support hiding. YouTube hides only top-level comments, and hiding holds the comment for review. X hides only replies in conversations that the account started |
| Delete | Comments that your accounts wrote (fromAccount: true), on every platform, as the account that wrote them. Comments from other people can be deleted only on Instagram and Facebook; hide them on other platforms. Instagram, Facebook, and LinkedIn also delete the replies to the comment |
Deletion can't be undone. If a comment can't be hidden or deleted, the API returns 422 VALIDATION_ERROR with the reason. Posteady also updates the comment list right away; if it can't, note says so. Hiding needs permission to edit comments, and deleting needs permission to delete comments.
List comments reference · Reply reference · Hide reference · Delete reference · Error guide