Inbox

List conversations

Changed on

Returns one entry per conversation (the latest message in each), across Instagram and Facebook DMs, comments, and mentions, LinkedIn company-page comments and mentions (LinkedIn has no DMs via API), TikTok video comments (comments only; requires the TikTok comments authorization on the channel), YouTube video comments (comments only; each channel is checked once per day, YouTube has no comment webhooks), X DMs for workspaces that opted in to X DMs in the dashboard (X is DM-only; no history from before opt-in), and Threads replies on your posts plus mentions (requires a Threads connection with the reply-reading permission). Sorted by newest activity first. Cursor-paginated: follow pagination.next_cursor until it is null. Requires the inbox:read scope (API keys) or the access_social_inbox permission (OAuth/MCP).

get/inbox/conversations

Request

  • Base URL
    https://api.omnisocials.com/v1
  • URL
    https://api.omnisocials.com/v1/inbox/conversations
  • Auth
    HTTP bearer

Query parameters

limitinteger

Max conversations per page (1-100, default 25).

cursorstring
Example:MjAyNi0xMC0yMVQwOTowMDowMC4wMDBafDg4MjMx

Opaque pagination cursor from a previous response.

platform'instagram' | 'facebook' | 'linkedin' | 'tiktok' | 'youtube' | 'x' | 'threads'

Filter to a single platform.

type'dm' | 'comment' | 'mention'

Filter to a single conversation type.

unreadboolean
Example:true

When true, only conversations with unread incoming messages.

unansweredboolean
Example:true

When true, only conversations that still need an answer: the customer's latest DM has no reply after it (Instagram/Facebook DMs past the 24-hour messaging window included; they cannot be answered through the API but the customer is still waiting), or a comment/mention has not been replied to and is not hidden. Replies typed in the native apps count as answers (they are mirrored into the inbox). Read state is ignored here; use GET /inbox/next for a work queue.

Response

A page of conversations

Example response

{
  "data": [
    {
      "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"
      }
    }
  ],
  "pagination": {
    "next_cursor": "MjAyNi0xMC0yMVQwOTowMDowMC4wMDBafDg4MjMx",
    "has_more": true,
    "limit": 25
  }
}

Changes

    • info

      added the new optional query request parameter unanswered

    • info

      added the optional property /// to the response with the status

    • info

      added the optional property /// to the response with the status