All URIs are relative to https://zernio.com/api
| Method | HTTP request | Description |
|---|---|---|
| addMessageReaction | POST /v1/inbox/conversations/{conversationId}/messages/{messageId}/reactions | Add reaction |
| addMessageReactionWithHttpInfo | POST /v1/inbox/conversations/{conversationId}/messages/{messageId}/reactions | Add reaction |
| createInboxConversation | POST /v1/inbox/conversations | Create conversation |
| createInboxConversationWithHttpInfo | POST /v1/inbox/conversations | Create conversation |
| deleteInboxMessage | DELETE /v1/inbox/conversations/{conversationId}/messages/{messageId} | Delete message |
| deleteInboxMessageWithHttpInfo | DELETE /v1/inbox/conversations/{conversationId}/messages/{messageId} | Delete message |
| editInboxMessage | PATCH /v1/inbox/conversations/{conversationId}/messages/{messageId} | Edit message |
| editInboxMessageWithHttpInfo | PATCH /v1/inbox/conversations/{conversationId}/messages/{messageId} | Edit message |
| getInboxConversation | GET /v1/inbox/conversations/{conversationId} | Get conversation |
| getInboxConversationWithHttpInfo | GET /v1/inbox/conversations/{conversationId} | Get conversation |
| getInboxConversationMessages | GET /v1/inbox/conversations/{conversationId}/messages | List messages |
| getInboxConversationMessagesWithHttpInfo | GET /v1/inbox/conversations/{conversationId}/messages | List messages |
| listInboxConversations | GET /v1/inbox/conversations | List conversations |
| listInboxConversationsWithHttpInfo | GET /v1/inbox/conversations | List conversations |
| removeMessageReaction | DELETE /v1/inbox/conversations/{conversationId}/messages/{messageId}/reactions | Remove reaction |
| removeMessageReactionWithHttpInfo | DELETE /v1/inbox/conversations/{conversationId}/messages/{messageId}/reactions | Remove reaction |
| sendInboxMessage | POST /v1/inbox/conversations/{conversationId}/messages | Send message |
| sendInboxMessageWithHttpInfo | POST /v1/inbox/conversations/{conversationId}/messages | Send message |
| sendTypingIndicator | POST /v1/inbox/conversations/{conversationId}/typing | Send typing indicator |
| sendTypingIndicatorWithHttpInfo | POST /v1/inbox/conversations/{conversationId}/typing | Send typing indicator |
| updateInboxConversation | PUT /v1/inbox/conversations/{conversationId} | Update conversation status |
| updateInboxConversationWithHttpInfo | PUT /v1/inbox/conversations/{conversationId} | Update conversation status |
| uploadMediaDirect | POST /v1/media/upload-direct | Upload media file |
| uploadMediaDirectWithHttpInfo | POST /v1/media/upload-direct | Upload media file |
UpdateYoutubeDefaultPlaylist200Response addMessageReaction(conversationId, messageId, addMessageReactionRequest)
Add reaction
Add an emoji reaction to a message. Platform support: - Telegram: Supports a subset of Unicode emoji reactions - WhatsApp: Supports any standard emoji (one reaction per message per sender) - All others: Returns 400 (not supported)
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
String conversationId = "conversationId_example"; // String | The conversation ID
String messageId = "messageId_example"; // String | The platform message ID to react to
AddMessageReactionRequest addMessageReactionRequest = new AddMessageReactionRequest(); // AddMessageReactionRequest |
try {
UpdateYoutubeDefaultPlaylist200Response result = apiInstance.addMessageReaction(conversationId, messageId, addMessageReactionRequest);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#addMessageReaction");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| conversationId | String | The conversation ID | |
| messageId | String | The platform message ID to react to | |
| addMessageReactionRequest | AddMessageReactionRequest |
UpdateYoutubeDefaultPlaylist200Response
- Content-Type: application/json
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Reaction added | - |
| 400 | Platform does not support reactions or invalid request | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required | - |
| 404 | Account or conversation not found | - |
ApiResponse addMessageReaction addMessageReactionWithHttpInfo(conversationId, messageId, addMessageReactionRequest)
Add reaction
Add an emoji reaction to a message. Platform support: - Telegram: Supports a subset of Unicode emoji reactions - WhatsApp: Supports any standard emoji (one reaction per message per sender) - All others: Returns 400 (not supported)
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.ApiResponse;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
String conversationId = "conversationId_example"; // String | The conversation ID
String messageId = "messageId_example"; // String | The platform message ID to react to
AddMessageReactionRequest addMessageReactionRequest = new AddMessageReactionRequest(); // AddMessageReactionRequest |
try {
ApiResponse<UpdateYoutubeDefaultPlaylist200Response> response = apiInstance.addMessageReactionWithHttpInfo(conversationId, messageId, addMessageReactionRequest);
System.out.println("Status code: " + response.getStatusCode());
System.out.println("Response headers: " + response.getHeaders());
System.out.println("Response body: " + response.getData());
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#addMessageReaction");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| conversationId | String | The conversation ID | |
| messageId | String | The platform message ID to react to | |
| addMessageReactionRequest | AddMessageReactionRequest |
ApiResponse<UpdateYoutubeDefaultPlaylist200Response>
- Content-Type: application/json
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Reaction added | - |
| 400 | Platform does not support reactions or invalid request | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required | - |
| 404 | Account or conversation not found | - |
CreateInboxConversation201Response createInboxConversation(createInboxConversationRequest)
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).
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
CreateInboxConversationRequest createInboxConversationRequest = new CreateInboxConversationRequest(); // CreateInboxConversationRequest |
try {
CreateInboxConversation201Response result = apiInstance.createInboxConversation(createInboxConversationRequest);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#createInboxConversation");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| createInboxConversationRequest | CreateInboxConversationRequest |
CreateInboxConversation201Response
- Content-Type: application/json, multipart/form-data
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 201 | Conversation created successfully | - |
| 400 | Validation error or platform not supported | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required or profile limit reached | - |
| 404 | Account or recipient user not found | - |
| 422 | Recipient does not accept DMs from this account | - |
| 429 | X API rate limit exceeded | - |
ApiResponse createInboxConversation createInboxConversationWithHttpInfo(createInboxConversationRequest)
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).
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.ApiResponse;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
CreateInboxConversationRequest createInboxConversationRequest = new CreateInboxConversationRequest(); // CreateInboxConversationRequest |
try {
ApiResponse<CreateInboxConversation201Response> response = apiInstance.createInboxConversationWithHttpInfo(createInboxConversationRequest);
System.out.println("Status code: " + response.getStatusCode());
System.out.println("Response headers: " + response.getHeaders());
System.out.println("Response body: " + response.getData());
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#createInboxConversation");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| createInboxConversationRequest | CreateInboxConversationRequest |
ApiResponse<CreateInboxConversation201Response>
- Content-Type: application/json, multipart/form-data
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 201 | Conversation created successfully | - |
| 400 | Validation error or platform not supported | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required or profile limit reached | - |
| 404 | Account or recipient user not found | - |
| 422 | Recipient does not accept DMs from this account | - |
| 429 | X API rate limit exceeded | - |
UpdateYoutubeDefaultPlaylist200Response deleteInboxMessage(conversationId, messageId, accountId)
Delete message
Delete a message from a conversation. Platform support varies: - Telegram: Full delete (bot's own messages anytime, others if admin) - X/Twitter: Full delete (own DM events only) - Bluesky: Delete for self only (recipient still sees it) - Reddit: Delete from sender's view only - Facebook, Instagram, WhatsApp: Not supported (returns 400)
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
String conversationId = "conversationId_example"; // String | The conversation ID
String messageId = "messageId_example"; // String | The platform message ID to delete
String accountId = "accountId_example"; // String | Social account ID
try {
UpdateYoutubeDefaultPlaylist200Response result = apiInstance.deleteInboxMessage(conversationId, messageId, accountId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#deleteInboxMessage");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| conversationId | String | The conversation ID | |
| messageId | String | The platform message ID to delete | |
| accountId | String | Social account ID |
UpdateYoutubeDefaultPlaylist200Response
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Message deleted | - |
| 400 | Platform does not support deletion or invalid request | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required | - |
| 404 | Account or conversation not found | - |
ApiResponse deleteInboxMessage deleteInboxMessageWithHttpInfo(conversationId, messageId, accountId)
Delete message
Delete a message from a conversation. Platform support varies: - Telegram: Full delete (bot's own messages anytime, others if admin) - X/Twitter: Full delete (own DM events only) - Bluesky: Delete for self only (recipient still sees it) - Reddit: Delete from sender's view only - Facebook, Instagram, WhatsApp: Not supported (returns 400)
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.ApiResponse;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
String conversationId = "conversationId_example"; // String | The conversation ID
String messageId = "messageId_example"; // String | The platform message ID to delete
String accountId = "accountId_example"; // String | Social account ID
try {
ApiResponse<UpdateYoutubeDefaultPlaylist200Response> response = apiInstance.deleteInboxMessageWithHttpInfo(conversationId, messageId, accountId);
System.out.println("Status code: " + response.getStatusCode());
System.out.println("Response headers: " + response.getHeaders());
System.out.println("Response body: " + response.getData());
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#deleteInboxMessage");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| conversationId | String | The conversation ID | |
| messageId | String | The platform message ID to delete | |
| accountId | String | Social account ID |
ApiResponse<UpdateYoutubeDefaultPlaylist200Response>
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Message deleted | - |
| 400 | Platform does not support deletion or invalid request | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required | - |
| 404 | Account or conversation not found | - |
EditInboxMessage200Response editInboxMessage(conversationId, messageId, editInboxMessageRequest)
Edit message
Edit the text and/or reply markup of a previously sent Telegram message. Only supported for Telegram. Returns 400 for other platforms.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
String conversationId = "conversationId_example"; // String | The conversation ID
String messageId = "messageId_example"; // String | The Telegram message ID to edit
EditInboxMessageRequest editInboxMessageRequest = new EditInboxMessageRequest(); // EditInboxMessageRequest |
try {
EditInboxMessage200Response result = apiInstance.editInboxMessage(conversationId, messageId, editInboxMessageRequest);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#editInboxMessage");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| conversationId | String | The conversation ID | |
| messageId | String | The Telegram message ID to edit | |
| editInboxMessageRequest | EditInboxMessageRequest |
- Content-Type: application/json
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Message edited | - |
| 400 | Not supported or invalid request | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required | - |
ApiResponse editInboxMessage editInboxMessageWithHttpInfo(conversationId, messageId, editInboxMessageRequest)
Edit message
Edit the text and/or reply markup of a previously sent Telegram message. Only supported for Telegram. Returns 400 for other platforms.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.ApiResponse;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
String conversationId = "conversationId_example"; // String | The conversation ID
String messageId = "messageId_example"; // String | The Telegram message ID to edit
EditInboxMessageRequest editInboxMessageRequest = new EditInboxMessageRequest(); // EditInboxMessageRequest |
try {
ApiResponse<EditInboxMessage200Response> response = apiInstance.editInboxMessageWithHttpInfo(conversationId, messageId, editInboxMessageRequest);
System.out.println("Status code: " + response.getStatusCode());
System.out.println("Response headers: " + response.getHeaders());
System.out.println("Response body: " + response.getData());
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#editInboxMessage");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| conversationId | String | The conversation ID | |
| messageId | String | The Telegram message ID to edit | |
| editInboxMessageRequest | EditInboxMessageRequest |
ApiResponse<EditInboxMessage200Response>
- Content-Type: application/json
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Message edited | - |
| 400 | Not supported or invalid request | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required | - |
GetInboxConversation200Response getInboxConversation(conversationId, accountId)
Get conversation
Retrieve details and metadata for a specific conversation. Requires accountId query parameter.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
String conversationId = "conversationId_example"; // String | The conversation ID (id field from list conversations endpoint). This is the platform-specific conversation identifier, not an internal database ID.
String accountId = "accountId_example"; // String | The social account ID
try {
GetInboxConversation200Response result = apiInstance.getInboxConversation(conversationId, accountId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#getInboxConversation");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| conversationId | String | The conversation ID (id field from list conversations endpoint). This is the platform-specific conversation identifier, not an internal database ID. | |
| accountId | String | The social account ID |
GetInboxConversation200Response
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Conversation details | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required | - |
| 404 | Conversation not found | - |
ApiResponse getInboxConversation getInboxConversationWithHttpInfo(conversationId, accountId)
Get conversation
Retrieve details and metadata for a specific conversation. Requires accountId query parameter.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.ApiResponse;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
String conversationId = "conversationId_example"; // String | The conversation ID (id field from list conversations endpoint). This is the platform-specific conversation identifier, not an internal database ID.
String accountId = "accountId_example"; // String | The social account ID
try {
ApiResponse<GetInboxConversation200Response> response = apiInstance.getInboxConversationWithHttpInfo(conversationId, accountId);
System.out.println("Status code: " + response.getStatusCode());
System.out.println("Response headers: " + response.getHeaders());
System.out.println("Response body: " + response.getData());
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#getInboxConversation");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| conversationId | String | The conversation ID (id field from list conversations endpoint). This is the platform-specific conversation identifier, not an internal database ID. | |
| accountId | String | The social account ID |
ApiResponse<GetInboxConversation200Response>
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Conversation details | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required | - |
| 404 | Conversation not found | - |
GetInboxConversationMessages200Response getInboxConversationMessages(conversationId, accountId)
List messages
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 for more details.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
String conversationId = "conversationId_example"; // String | The conversation ID (id field from list conversations endpoint). This is the platform-specific conversation identifier, not an internal database ID.
String accountId = "accountId_example"; // String | Social account ID
try {
GetInboxConversationMessages200Response result = apiInstance.getInboxConversationMessages(conversationId, accountId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#getInboxConversationMessages");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| conversationId | String | The conversation ID (id field from list conversations endpoint). This is the platform-specific conversation identifier, not an internal database ID. | |
| accountId | String | Social account ID |
GetInboxConversationMessages200Response
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Messages in conversation | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required | - |
ApiResponse getInboxConversationMessages getInboxConversationMessagesWithHttpInfo(conversationId, accountId)
List messages
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 for more details.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.ApiResponse;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
String conversationId = "conversationId_example"; // String | The conversation ID (id field from list conversations endpoint). This is the platform-specific conversation identifier, not an internal database ID.
String accountId = "accountId_example"; // String | Social account ID
try {
ApiResponse<GetInboxConversationMessages200Response> response = apiInstance.getInboxConversationMessagesWithHttpInfo(conversationId, accountId);
System.out.println("Status code: " + response.getStatusCode());
System.out.println("Response headers: " + response.getHeaders());
System.out.println("Response body: " + response.getData());
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#getInboxConversationMessages");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| conversationId | String | The conversation ID (id field from list conversations endpoint). This is the platform-specific conversation identifier, not an internal database ID. | |
| accountId | String | Social account ID |
ApiResponse<GetInboxConversationMessages200Response>
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Messages in conversation | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required | - |
ListInboxConversations200Response listInboxConversations(profileId, platform, status, sortOrder, limit, cursor, accountId)
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, 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 for more details.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
String profileId = "profileId_example"; // String | Filter by profile ID
String platform = "facebook"; // String | Filter by platform
String status = "active"; // String | Filter by conversation status
String sortOrder = "asc"; // String | Sort order by updated time
Integer limit = 50; // Integer | Maximum number of conversations to return
String cursor = "cursor_example"; // String | Pagination cursor for next page
String accountId = "accountId_example"; // String | Filter by specific social account ID
try {
ListInboxConversations200Response result = apiInstance.listInboxConversations(profileId, platform, status, sortOrder, limit, cursor, accountId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#listInboxConversations");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| profileId | String | Filter by profile ID | [optional] |
| platform | String | Filter by platform | [optional] [enum: facebook, instagram, twitter, bluesky, reddit, telegram] |
| status | String | Filter by conversation status | [optional] [enum: active, archived] |
| sortOrder | String | Sort order by updated time | [optional] [default to desc] [enum: asc, desc] |
| limit | Integer | Maximum number of conversations to return | [optional] [default to 50] |
| cursor | String | Pagination cursor for next page | [optional] |
| accountId | String | Filter by specific social account ID | [optional] |
ListInboxConversations200Response
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Aggregated conversations | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required | - |
ApiResponse listInboxConversations listInboxConversationsWithHttpInfo(profileId, platform, status, sortOrder, limit, cursor, accountId)
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, 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 for more details.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.ApiResponse;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
String profileId = "profileId_example"; // String | Filter by profile ID
String platform = "facebook"; // String | Filter by platform
String status = "active"; // String | Filter by conversation status
String sortOrder = "asc"; // String | Sort order by updated time
Integer limit = 50; // Integer | Maximum number of conversations to return
String cursor = "cursor_example"; // String | Pagination cursor for next page
String accountId = "accountId_example"; // String | Filter by specific social account ID
try {
ApiResponse<ListInboxConversations200Response> response = apiInstance.listInboxConversationsWithHttpInfo(profileId, platform, status, sortOrder, limit, cursor, accountId);
System.out.println("Status code: " + response.getStatusCode());
System.out.println("Response headers: " + response.getHeaders());
System.out.println("Response body: " + response.getData());
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#listInboxConversations");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| profileId | String | Filter by profile ID | [optional] |
| platform | String | Filter by platform | [optional] [enum: facebook, instagram, twitter, bluesky, reddit, telegram] |
| status | String | Filter by conversation status | [optional] [enum: active, archived] |
| sortOrder | String | Sort order by updated time | [optional] [default to desc] [enum: asc, desc] |
| limit | Integer | Maximum number of conversations to return | [optional] [default to 50] |
| cursor | String | Pagination cursor for next page | [optional] |
| accountId | String | Filter by specific social account ID | [optional] |
ApiResponse<ListInboxConversations200Response>
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Aggregated conversations | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required | - |
UpdateYoutubeDefaultPlaylist200Response removeMessageReaction(conversationId, messageId, accountId)
Remove reaction
Remove a reaction from a message. Platform support: - Telegram: Send empty reaction array to clear - WhatsApp: Send empty emoji to remove - All others: Returns 400 (not supported)
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
String conversationId = "conversationId_example"; // String | The conversation ID
String messageId = "messageId_example"; // String | The platform message ID
String accountId = "accountId_example"; // String | Social account ID
try {
UpdateYoutubeDefaultPlaylist200Response result = apiInstance.removeMessageReaction(conversationId, messageId, accountId);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#removeMessageReaction");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| conversationId | String | The conversation ID | |
| messageId | String | The platform message ID | |
| accountId | String | Social account ID |
UpdateYoutubeDefaultPlaylist200Response
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Reaction removed | - |
| 400 | Platform does not support reactions or invalid request | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required | - |
| 404 | Account or conversation not found | - |
ApiResponse removeMessageReaction removeMessageReactionWithHttpInfo(conversationId, messageId, accountId)
Remove reaction
Remove a reaction from a message. Platform support: - Telegram: Send empty reaction array to clear - WhatsApp: Send empty emoji to remove - All others: Returns 400 (not supported)
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.ApiResponse;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
String conversationId = "conversationId_example"; // String | The conversation ID
String messageId = "messageId_example"; // String | The platform message ID
String accountId = "accountId_example"; // String | Social account ID
try {
ApiResponse<UpdateYoutubeDefaultPlaylist200Response> response = apiInstance.removeMessageReactionWithHttpInfo(conversationId, messageId, accountId);
System.out.println("Status code: " + response.getStatusCode());
System.out.println("Response headers: " + response.getHeaders());
System.out.println("Response body: " + response.getData());
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#removeMessageReaction");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| conversationId | String | The conversation ID | |
| messageId | String | The platform message ID | |
| accountId | String | Social account ID |
ApiResponse<UpdateYoutubeDefaultPlaylist200Response>
- Content-Type: Not defined
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Reaction removed | - |
| 400 | Platform does not support reactions or invalid request | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required | - |
| 404 | Account or conversation not found | - |
SendInboxMessage200Response sendInboxMessage(conversationId, sendInboxMessageRequest)
Send message
Send a message in a conversation. Supports text, attachments, quick replies, buttons, templates, and message tags. Attachment and interactive message support varies by platform. WhatsApp rich interactive messages (list, CTA URL, Flow) are available via the `interactive` field. Tap events are delivered through the `message.received` webhook with WhatsApp-specific `metadata` fields (`interactiveType`, `interactiveId`, `flowResponseJson`, `flowResponseData`).
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
String conversationId = "conversationId_example"; // String | The conversation ID (id field from list conversations endpoint). This is the platform-specific conversation identifier, not an internal database ID.
SendInboxMessageRequest sendInboxMessageRequest = new SendInboxMessageRequest(); // SendInboxMessageRequest |
try {
SendInboxMessage200Response result = apiInstance.sendInboxMessage(conversationId, sendInboxMessageRequest);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#sendInboxMessage");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| conversationId | String | The conversation ID (id field from list conversations endpoint). This is the platform-specific conversation identifier, not an internal database ID. | |
| sendInboxMessageRequest | SendInboxMessageRequest |
- Content-Type: application/json, multipart/form-data
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Message sent | - |
| 400 | Bad request (e.g., attachment not supported for platform, validation error) | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required | - |
ApiResponse sendInboxMessage sendInboxMessageWithHttpInfo(conversationId, sendInboxMessageRequest)
Send message
Send a message in a conversation. Supports text, attachments, quick replies, buttons, templates, and message tags. Attachment and interactive message support varies by platform. WhatsApp rich interactive messages (list, CTA URL, Flow) are available via the `interactive` field. Tap events are delivered through the `message.received` webhook with WhatsApp-specific `metadata` fields (`interactiveType`, `interactiveId`, `flowResponseJson`, `flowResponseData`).
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.ApiResponse;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
String conversationId = "conversationId_example"; // String | The conversation ID (id field from list conversations endpoint). This is the platform-specific conversation identifier, not an internal database ID.
SendInboxMessageRequest sendInboxMessageRequest = new SendInboxMessageRequest(); // SendInboxMessageRequest |
try {
ApiResponse<SendInboxMessage200Response> response = apiInstance.sendInboxMessageWithHttpInfo(conversationId, sendInboxMessageRequest);
System.out.println("Status code: " + response.getStatusCode());
System.out.println("Response headers: " + response.getHeaders());
System.out.println("Response body: " + response.getData());
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#sendInboxMessage");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| conversationId | String | The conversation ID (id field from list conversations endpoint). This is the platform-specific conversation identifier, not an internal database ID. | |
| sendInboxMessageRequest | SendInboxMessageRequest |
ApiResponse<SendInboxMessage200Response>
- Content-Type: application/json, multipart/form-data
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Message sent | - |
| 400 | Bad request (e.g., attachment not supported for platform, validation error) | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required | - |
UpdateYoutubeDefaultPlaylist200Response sendTypingIndicator(conversationId, sendTypingIndicatorRequest)
Send typing indicator
Show a typing indicator in a conversation. Platform support: - Facebook Messenger: Shows "Page is typing..." for 20 seconds - Telegram: Shows "Bot is typing..." for 5 seconds - All others: Returns 200 but no-op (platform doesn't support it) Typing indicators are best-effort. The endpoint always returns 200 even if the platform call fails.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
String conversationId = "conversationId_example"; // String | The conversation ID
SendTypingIndicatorRequest sendTypingIndicatorRequest = new SendTypingIndicatorRequest(); // SendTypingIndicatorRequest |
try {
UpdateYoutubeDefaultPlaylist200Response result = apiInstance.sendTypingIndicator(conversationId, sendTypingIndicatorRequest);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#sendTypingIndicator");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| conversationId | String | The conversation ID | |
| sendTypingIndicatorRequest | SendTypingIndicatorRequest |
UpdateYoutubeDefaultPlaylist200Response
- Content-Type: application/json
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Typing indicator sent (or no-op on unsupported platforms) | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required | - |
| 404 | Account or conversation not found | - |
ApiResponse sendTypingIndicator sendTypingIndicatorWithHttpInfo(conversationId, sendTypingIndicatorRequest)
Send typing indicator
Show a typing indicator in a conversation. Platform support: - Facebook Messenger: Shows "Page is typing..." for 20 seconds - Telegram: Shows "Bot is typing..." for 5 seconds - All others: Returns 200 but no-op (platform doesn't support it) Typing indicators are best-effort. The endpoint always returns 200 even if the platform call fails.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.ApiResponse;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
String conversationId = "conversationId_example"; // String | The conversation ID
SendTypingIndicatorRequest sendTypingIndicatorRequest = new SendTypingIndicatorRequest(); // SendTypingIndicatorRequest |
try {
ApiResponse<UpdateYoutubeDefaultPlaylist200Response> response = apiInstance.sendTypingIndicatorWithHttpInfo(conversationId, sendTypingIndicatorRequest);
System.out.println("Status code: " + response.getStatusCode());
System.out.println("Response headers: " + response.getHeaders());
System.out.println("Response body: " + response.getData());
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#sendTypingIndicator");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| conversationId | String | The conversation ID | |
| sendTypingIndicatorRequest | SendTypingIndicatorRequest |
ApiResponse<UpdateYoutubeDefaultPlaylist200Response>
- Content-Type: application/json
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Typing indicator sent (or no-op on unsupported platforms) | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required | - |
| 404 | Account or conversation not found | - |
UpdateInboxConversation200Response updateInboxConversation(conversationId, updateInboxConversationRequest)
Update conversation status
Archive or activate a conversation. Requires accountId in request body.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
String conversationId = "conversationId_example"; // String | The conversation ID (id field from list conversations endpoint). This is the platform-specific conversation identifier, not an internal database ID.
UpdateInboxConversationRequest updateInboxConversationRequest = new UpdateInboxConversationRequest(); // UpdateInboxConversationRequest |
try {
UpdateInboxConversation200Response result = apiInstance.updateInboxConversation(conversationId, updateInboxConversationRequest);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#updateInboxConversation");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| conversationId | String | The conversation ID (id field from list conversations endpoint). This is the platform-specific conversation identifier, not an internal database ID. | |
| updateInboxConversationRequest | UpdateInboxConversationRequest |
UpdateInboxConversation200Response
- Content-Type: application/json
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Conversation updated | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required | - |
| 404 | Conversation not found (WhatsApp only; other platforms upsert) | - |
ApiResponse updateInboxConversation updateInboxConversationWithHttpInfo(conversationId, updateInboxConversationRequest)
Update conversation status
Archive or activate a conversation. Requires accountId in request body.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.ApiResponse;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
String conversationId = "conversationId_example"; // String | The conversation ID (id field from list conversations endpoint). This is the platform-specific conversation identifier, not an internal database ID.
UpdateInboxConversationRequest updateInboxConversationRequest = new UpdateInboxConversationRequest(); // UpdateInboxConversationRequest |
try {
ApiResponse<UpdateInboxConversation200Response> response = apiInstance.updateInboxConversationWithHttpInfo(conversationId, updateInboxConversationRequest);
System.out.println("Status code: " + response.getStatusCode());
System.out.println("Response headers: " + response.getHeaders());
System.out.println("Response body: " + response.getData());
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#updateInboxConversation");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| conversationId | String | The conversation ID (id field from list conversations endpoint). This is the platform-specific conversation identifier, not an internal database ID. | |
| updateInboxConversationRequest | UpdateInboxConversationRequest |
ApiResponse<UpdateInboxConversation200Response>
- Content-Type: application/json
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | Conversation updated | - |
| 401 | Unauthorized | - |
| 403 | Inbox addon required | - |
| 404 | Conversation not found (WhatsApp only; other platforms upsert) | - |
UploadMediaDirect200Response uploadMediaDirect(_file, contentType)
Upload media file
Upload a media file using API key authentication and get back a publicly accessible URL. The URL can be used as attachmentUrl when sending inbox messages. Files are stored in temporary storage and auto-delete after 7 days. Maximum file size is 25MB. Unlike /v1/media/upload (which uses upload tokens for end-user flows), this endpoint uses standard Bearer token authentication for programmatic use.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
File _file = new File("/path/to/file"); // File | The file to upload (max 25MB)
String contentType = "contentType_example"; // String | Override MIME type (e.g. \\\"image/jpeg\\\"). Auto-detected from file if not provided.
try {
UploadMediaDirect200Response result = apiInstance.uploadMediaDirect(_file, contentType);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#uploadMediaDirect");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| _file | File | The file to upload (max 25MB) | |
| contentType | String | Override MIME type (e.g. \"image/jpeg\"). Auto-detected from file if not provided. | [optional] |
- Content-Type: multipart/form-data
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | File uploaded successfully | - |
| 400 | No file provided or file too large | - |
| 401 | Unauthorized | - |
ApiResponse uploadMediaDirect uploadMediaDirectWithHttpInfo(_file, contentType)
Upload media file
Upload a media file using API key authentication and get back a publicly accessible URL. The URL can be used as attachmentUrl when sending inbox messages. Files are stored in temporary storage and auto-delete after 7 days. Maximum file size is 25MB. Unlike /v1/media/upload (which uses upload tokens for end-user flows), this endpoint uses standard Bearer token authentication for programmatic use.
// Import classes:
import dev.zernio.ApiClient;
import dev.zernio.ApiException;
import dev.zernio.ApiResponse;
import dev.zernio.Configuration;
import dev.zernio.auth.*;
import dev.zernio.models.*;
import dev.zernio.api.MessagesApi;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://zernio.com/api");
// Configure HTTP bearer authorization: bearerAuth
HttpBearerAuth bearerAuth = (HttpBearerAuth) defaultClient.getAuthentication("bearerAuth");
bearerAuth.setBearerToken("BEARER TOKEN");
MessagesApi apiInstance = new MessagesApi(defaultClient);
File _file = new File("/path/to/file"); // File | The file to upload (max 25MB)
String contentType = "contentType_example"; // String | Override MIME type (e.g. \\\"image/jpeg\\\"). Auto-detected from file if not provided.
try {
ApiResponse<UploadMediaDirect200Response> response = apiInstance.uploadMediaDirectWithHttpInfo(_file, contentType);
System.out.println("Status code: " + response.getStatusCode());
System.out.println("Response headers: " + response.getHeaders());
System.out.println("Response body: " + response.getData());
} catch (ApiException e) {
System.err.println("Exception when calling MessagesApi#uploadMediaDirect");
System.err.println("Status code: " + e.getCode());
System.err.println("Response headers: " + e.getResponseHeaders());
System.err.println("Reason: " + e.getResponseBody());
e.printStackTrace();
}
}
}| Name | Type | Description | Notes |
|---|---|---|---|
| _file | File | The file to upload (max 25MB) | |
| contentType | String | Override MIME type (e.g. \"image/jpeg\"). Auto-detected from file if not provided. | [optional] |
ApiResponse<UploadMediaDirect200Response>
- Content-Type: multipart/form-data
- Accept: application/json
| Status code | Description | Response headers |
|---|---|---|
| 200 | File uploaded successfully | - |
| 400 | No file provided or file too large | - |
| 401 | Unauthorized | - |