POST/social-inbox/items/{id}/reply
Replies publicly under a comment. Pass the comment item id, not the conversation id.
pf-api-keyRate limit: 350 requests per day, 150 per minuteCheck the capability first
Read canReply and maxReplyLength from the conversation before you send. They are computed per conversation and are authoritative; validating against a hardcoded platform limit will eventually be wrong.
When canReply is false, disabledReason explains why as a stable code such as inbox.replyNotSupportedOnPlatform.
One reply in flight at a time
Sending a second reply to the same comment while the first is still being delivered returns inbox.replyInProgress. Wait for the first response instead of retrying immediately.
If you do need to retry after a network timeout, pass the same idempotencyKey so the reply cannot be posted twice.
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
textstringrequiredThe reply body. Must fit the conversation's maxReplyLength, or the request fails with inbox.replyTooLong.
idempotencyKeystringoptionalOptional client-supplied key. A retry that carries the same key will not send a second time, so it is safe to retry after a network timeout.
Public reply character limits
| Platform | Characters |
|---|---|
| TikTok | 150 |
| 2,200 | |
| 8,000 | |
| Threads | 500 |
Shown for context only. Always validate against the conversation's maxReplyLength, which is the value the API enforces.
Response
201 Created The created OUTBOUND item. deliveryStatus is SENT once the platform accepted it.
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.