Create conversation
Initiate a new direct message conversation with a specified user. If a conversation already exists with the recipient, the message is added to the existing thread. **Currently supported platforms:** Twitter/X only. Other platforms will return `PLATFORM_NOT_SUPPORTED`. **DM eligibility:** Before sending, the endpoint checks if the recipient accepts DMs from your account (via the `receives_your_dm` field). If not, a 422 error with code `DM_NOT_ALLOWED` is returned. You can skip this check with `skipDmCheck: true` if you have already verified eligibility. **X API tier requirement:** DM write endpoints require X API Pro tier ($5,000/month) or Enterprise access. This applies to BYOK (Bring Your Own Key) users who provide their own X API credentials. **Rate limits:** 200 requests per 15 minutes, 1,000 per 24 hours per user, 15,000 per 24 hours per app (shared across all DM endpoints).
API key authentication - use your Zernio API key as a Bearer token
In: header
The social account ID to send from
Twitter numeric user ID of the recipient. Provide either this or participantUsername.
Twitter username (with or without @) of the recipient. Resolved to a user ID via lookup. Provide either this or participantId.
Text content of the message. At least one of message or attachment is required.
Skip the receives_your_dm eligibility check before sending. Use if you have already verified the recipient accepts DMs.
falseResponse Body
application/json
application/json
application/json
application/json
curl -X POST "https://zernio.com/api/v1/inbox/conversations" \ -H "Content-Type: application/json" \ -d '{ "accountId": "string" }'{
"success": true,
"data": {
"messageId": "string",
"conversationId": "string",
"participantId": "string",
"participantName": "string",
"participantUsername": "string"
}
}{
"error": "string",
"code": "PLATFORM_NOT_SUPPORTED"
}{
"error": "Unauthorized"
}{
"error": "string",
"code": "DM_NOT_ALLOWED"
}List conversations GET
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, Twitter/X, Bluesky, Reddit, Telegram. **Twitter/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 Twitter/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](https://help.x.com/en/using-x/about-chat) for more details.
List messages GET
Fetch messages for a specific conversation. Requires accountId query parameter. **Twitter/X limitation:** X's encrypted "X Chat" messages are not accessible via the API. Conversations where the other participant uses encrypted X Chat may only show your outgoing messages. See the [list conversations endpoint](#/Messages/listInboxConversations) for more details.