POST/social-inbox/items/{id}/state
Moderates a comment on the platform: hide, unhide, or delete.
pf-api-keyRate limit: 12,000 requests per day, 1,200 per hourDELETE cannot be undone
DELETE removes the comment on the platform itself, not just from the Social Inbox. There is no way to restore it afterwards, so confirm the action in your own UI before calling this route.
If you only want the comment out of public view, use HIDE: it is reversible with UNHIDE.
Platform support
HIDE and UNHIDE work on TikTok, Instagram, Facebook Pages, and Threads.
DELETE is unavailable on Threads and returns inbox.deleteNotSupported there.
Moderation performed directly on the platform syncs back into the item's state, so the two views stay in step.
The platform can refuse a hide or delete
When the platform refuses the hide, unhide, or delete, the request fails with inbox.moderationFailed and description carries the platform's reason. Most often the comment is already gone from the platform. Since 28 October 2026 these refusals are a 400; before that they came back as HTTP 500.
{
"statusCode": 400,
"message": "inbox.moderationFailed",
"error": "BAD_REQUEST",
"description": "Unsupported post request. Object with ID '17912345678901234' does not exist"
}Deleted comments and your own replies
DELETE on a comment that is already deleted returns 201 with the item (state: DELETED) and makes no platform call, so repeating a delete is safe.
HIDE and UNHIDE on a deleted comment, or on a reply of yours that never reached the platform, return inbox.itemNotFound.
DELETE on one of your own replies that failed to send removes it from PostFast only, since it never reached the platform. DELETE on a reply that is still sending returns inbox.replyInProgress; wait for the send to finish first.
Path parameters
idstring (UUID)requiredThe comment item id, from /social-inbox/conversations/{id}/items. This is the item id, not the conversation id.
Request body
actionstringrequiredWhat to do with the comment. An unrecognized value returns inbox.unsupportedAction.
HIDEUNHIDEDELETEResponse
201 Created The updated item, with state reflecting the new moderation state.
idstring (UUID)requiredItem id. This is the value the reply, private-reply, and state routes take as their path parameter.
conversationIdstring (UUID)requiredConversation the item belongs to.
kindstringrequiredItem type. Always COMMENT today.
directionstringrequiredINBOUND for a comment you received, OUTBOUND for a reply you sent.
INBOUNDOUTBOUNDexternalItemIdstring | nulloptionalThe platform's comment id. null on an outbound reply that is still sending.
parentExternalItemIdstring | nulloptionalPlatform id of the parent comment, for threading.
authorUsernamestring | nulloptionalAuthor's username, when the platform exposes it.
textstring | nulloptionalComment or reply body.
statestringrequiredModeration state on the platform, changed via the state route.
VISIBLEHIDDENDELETEDdeliveryStatusstring | nulloptionalOutbound items only: how far the send got. null on inbound comments.
PENDINGSENTFAILEDauthoredByUserIdstring (UUID) | nulloptionalWorkspace member who sent an outbound item. null for replies sent with an API key, because keys are workspace-scoped rather than user-scoped.
platformCreatedAtISO 8601requiredWhen the platform recorded the comment.
createdAtISO 8601requiredWhen PostFast stored the item.
canPrivateReplyboolean | nulloptionalInstagram inbound comments: whether this comment is still eligible for /social-inbox/items/{id}/private-reply. null elsewhere.