Reply to a conversation
Changed onSends a reply in an existing conversation (DM, comment, or mention) on Instagram, Facebook, LinkedIn, TikTok (comments only), YouTube (comments only), X (DM-only), or Threads (replies and mentions; needs a Threads connection with the reply permission, else 401 reauth_required). You can only reply to conversations that already exist in your inbox. The API cannot start new conversations (Instagram requires the user to message first, and cold outreach violates Meta policy). Direct-message replies must be within the platform's messaging window (24 hours since the user's last message); replies outside the window are rejected. TikTok replies are text-only, capped at 150 characters (400 validation_error beyond that), and can take a few minutes to appear on TikTok while they pass spam review. Each workspace can send up to 1,000 replies per rolling 24 hours (429 reply_limit_reached beyond that). Contact robert@omnisocials.com if you need a higher limit. X DM replies debit 2 credits from the company balance before the send (auto-refunded if the send fails) and can return 402 insufficient_credits or 402 x_inbox_suspended. Requires the inbox:write scope (API keys) or the access_social_inbox permission (OAuth/MCP).
Request
- Base URLhttps://api.omnisocials.com/v1
- URLhttps://api.omnisocials.com/v1/inbox/conversations/{conversationId}/reply
- AuthHTTP bearer
Path parameters
Request body
Example request
{
"text": "It comes in S, M and L. Which size do you need?",
"attachment_url": "https://example.com/size-chart.jpg",
"message_id": "88231"
}Response
Reply sent
Example response
{
"data": {
"id": "88231",
"conversation_id": "instagram_comment_17912345678901234",
"platform": "instagram",
"type": "comment",
"text": "What size is this?",
"timestamp": "2026-10-21T09:00:00.000Z",
"attachment": {
"url": "https://example.com/photo.jpg"
},
"sender": {
"name": "Jamie Rivera",
"username": "jamierivera",
"profile_picture": "https://example.com/avatar.jpg"
},
"post": {
"id": "17912345678901234",
"caption": "Our autumn menu is here. #autumnmenu",
"thumbnail": "https://example.com/photo.jpg",
"url": "https://www.instagram.com/p/Cxyz123ABC/",
"media_type": "IMAGE"
}
},
"next": {
"conversation": {
"conversation_id": "instagram_comment_17912345678901234",
"type": "comment",
"participant": {
"name": "Jamie Rivera",
"username": "jamierivera",
"profile_picture": "https://example.com/avatar.jpg"
},
"unread_count": 1,
"last_message": {
"id": "88231",
"text": "What size is this?",
"timestamp": "2026-10-21T09:00:00.000Z"
},
"post": {
"id": "17912345678901234",
"caption": "Our autumn menu is here. #autumnmenu",
"thumbnail": "https://example.com/photo.jpg",
"url": "https://www.instagram.com/p/Cxyz123ABC/",
"media_type": "IMAGE"
}
},
"message": {
"id": "88231",
"conversation_id": "instagram_comment_17912345678901234",
"platform": "instagram",
"type": "comment",
"text": "What size is this?",
"timestamp": "2026-10-21T09:00:00.000Z",
"attachment": {
"url": "https://example.com/photo.jpg"
},
"sender": {
"name": "Jamie Rivera",
"username": "jamierivera",
"profile_picture": "https://example.com/avatar.jpg"
},
"post": {
"id": "17912345678901234",
"caption": "Our autumn menu is here. #autumnmenu",
"thumbnail": "https://example.com/photo.jpg",
"url": "https://www.instagram.com/p/Cxyz123ABC/",
"media_type": "IMAGE"
}
},
"messages": [
{
"id": "88231",
"conversation_id": "instagram_comment_17912345678901234",
"platform": "instagram",
"type": "comment",
"text": "What size is this?",
"timestamp": "2026-10-21T09:00:00.000Z",
"attachment": {
"url": "https://example.com/photo.jpg"
},
"sender": {
"name": "Jamie Rivera",
"username": "jamierivera",
"profile_picture": "https://example.com/avatar.jpg"
},
"post": {
"id": "17912345678901234",
"caption": "Our autumn menu is here. #autumnmenu",
"thumbnail": "https://example.com/photo.jpg",
"url": "https://www.instagram.com/p/Cxyz123ABC/",
"media_type": "IMAGE"
}
}
],
"reply_window": {
"open": true,
"closes_at": "2026-10-22T09:00:00.000Z"
}
},
"remaining": 4
}Changes
- info
added the optional property
/to the response with the status - info
added the optional property
//////////to the response with the status - info
added the optional property
///////to the response with the status
- info
- info
added the new optional request property
- info
added the optional property
/////to the response with the status
- info