List conversations
Changed onFetch 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, WhatsApp, iMessage and SMS.
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.
Request
- Base URL: https://zernio.com/api
- URL: https://zernio.com/api/v1/inbox/conversations
- Auth: HTTP bearer
Query parameters
Filter by profile ID
Filter by platform
Filter by conversation status
requests lists Facebook and Instagram Message Requests (threads from people the account has not accepted) live from Meta, each item with folder: requests. Meta has no accept call: replying moves a thread to the inbox, which is what POST /v1/inbox/conversations/{conversationId}/accept does. When Meta will not list the folder for the one account asked (accountId), the call answers 400 PLATFORM_LIMITATION; across several accounts the refusal is reported per account in meta.failedAccounts. Instagram accounts connected with Instagram Login answer PLATFORM_LIMITATION (Meta does not expose the folder on that login); Facebook and Instagram via Facebook Login are served. One page of up to limit threads; pagination.hasMore is true when threads past limit were cut (narrow with accountId), pagination.nextCursor is always null and a cursor answers 400.
Sort order by updated time
Maximum number of conversations to return; values above 100 are served as 100.
Pagination cursor for next page
Filter by specific account ID
Response
Aggregated conversations
Changes
- info
added the new enum value
smsto thequeryrequest parameterplatform
- info
- info
added the new optional
queryrequest parameterfolder - info
added the non-success response with the status
- info
added the optional property
//to the response with the status
- info