Zernio
Zernio
API Reference

Messages

Conversations

List conversationsGETSearch conversationsGETCreate conversationPOSTGet conversationGETUpdate conversation statusPUTMark a conversation as readPOSTHand a conversation to or from Meta Business AgentPOST

Messages

List messagesGETSend messagePOSTEdit messagePATCHDelete messageDELETEUpload media filePOSTResolve message attachmentGET

Reactions & Typing

Add reactionPOSTRemove reactionDELETESend typing indicatorPOST
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
Messages

List conversations

Fetch conversations (DMs) from all connected messaging accounts in a single API call. Supports filtering by profile and platform. Results are aggregated and deduplicated.

Supported platforms: Facebook, Instagram, X, Bluesky, Reddit, Telegram.

X limitation. X has replaced traditional DMs with encrypted "X Chat" for many accounts. Messages sent or received through encrypted X Chat are not accessible via X's API (the /2/dm_events endpoint only returns legacy unencrypted DMs). This means some X conversations may show only outgoing messages or appear empty. This is an X platform limitation that affects all third-party applications. See X's docs on encrypted messaging for more details.

Instagram and Facebook pre-connect history. When one of these accounts is connected, Zernio replays the DM history the account already holds on Meta, so conversations that began before the account was connected appear here. Up to 500 conversations per account are replayed.

  • The replay runs in the background and can finish after a listing you have already taken, and replayed conversations keep their original lastMessageAt, so they sort into date order rather than appearing at the top. If you mirror this endpoint into your own store, re-run the sweep rather than relying on a single pass at connect time.
  • Replayed history emits no webhooks and is stored as already read, so it never affects unread counts.
  • Threads that Meta refuses to serve are skipped, and an account whose Instagram "connected tools" message access is turned off is not replayed at all.

GET
/v1/inbox/conversations

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.

In: header

Query Parameters

profileId?string

Filter by profile ID

platform?string

Filter by platform

Value in

  • "facebook"
  • "instagram"
  • "twitter"
  • "bluesky"
  • "reddit"
  • "telegram"
  • "whatsapp"
status?string

Filter by conversation status

Value in

  • "active"
  • "archived"
sortOrder?string

Sort order by updated time

Default"desc"

Value in

  • "asc"
  • "desc"
limit?integer

Maximum number of conversations to return

Range1 <= value <= 100
Default50
cursor?string

Pagination cursor for next page

accountId?string

Filter by specific account ID

Response Body

application/json

application/json

{  "data": [    {      "id": "string",      "platform": "string",      "accountId": "string",      "accountUsername": "string",      "participantId": "string",      "participantName": "string",      "participantPicture": "string",      "participantVerifiedType": "blue",      "lastMessage": "string",      "updatedTime": "2019-08-24T14:15:22Z",      "status": "active",      "unreadCount": 0,      "threadControl": "app",      "url": "string",      "instagramProfile": {        "isFollower": true,        "isFollowing": true,        "followerCount": 0,        "isVerified": true,        "fetchedAt": "2019-08-24T14:15:22Z"      },      "metadata": {        "ctwa_clid": "string",        "ctwa_source_id": "string",        "ctwa_source_type": "string",        "ctwa_source_url": "string",        "ctwa_headline": "string",        "ctwa_captured_at": "2019-08-24T14:15:22Z",        "meta_ad_id": "string",        "meta_ad_source": "string",        "meta_ad_type": "string",        "meta_ad_ref": "string",        "meta_ad_title": "string",        "meta_ad_photo_url": "string",        "meta_ad_video_url": "string",        "meta_ad_post_id": "string",        "meta_ad_product_id": "string",        "meta_ad_flow_id": "string",        "meta_ad_captured_at": "2019-08-24T14:15:22Z"      }    }  ],  "pagination": {    "hasMore": true,    "nextCursor": "string"  },  "meta": {    "accountsQueried": 0,    "accountsFailed": 0,    "failedAccounts": [      {        "accountId": "string",        "accountUsername": "string",        "platform": "string",        "error": "string",        "code": "string",        "retryAfter": 0      }    ],    "lastUpdated": "2019-08-24T14:15:22Z",    "accountsSkipped": [      {        "accountId": "string",        "platform": "string"      }    ]  }}
Was this page helpful?

Check subreddit existence

Check if a subreddit exists and return basic info (title, subscriber count, NSFW status, post types allowed). When accountId is provided, uses authenticated Reddit OAuth API with automatic token refresh (recommended). Falls back to Reddit's public JSON API, which may be unreliable from server IPs. Returns exists: false for private, banned, or nonexistent subreddits.

Search conversations

Search your conversations two ways at once, and get back the matching conversations, most-recent match first: - Message text: matches words inside message bodies. Case-insensitive and accent-insensitive, exact tokens only (no substrings, no stemming). Each hit carries up to 3 most-recent matching messages. With direction=outgoing you can collect examples of how you write to customers, for example to teach an AI agent your tone of voice. - Contact identity: matches the participant's name, username, or phone number as a case-insensitive substring. These hits have matchCount 0 and an empty matches array. A conversation that matches both ways is returned once, carrying its message matches. Only platforms whose messages are stored by Zernio are searchable: WhatsApp, SMS, Telegram, Facebook, Instagram, X and Reddit. Bluesky conversations are fetched live from the platform and cannot be searched; those accounts are listed in meta.accountsSkipped.