diff --git a/nodes/WAHA/WAHA.node.ts b/nodes/WAHA/WAHA.node.ts index 7563a20..faee5bb 100644 --- a/nodes/WAHA/WAHA.node.ts +++ b/nodes/WAHA/WAHA.node.ts @@ -3,15 +3,17 @@ import { VersionedNodeType } from 'n8n-workflow'; import { WAHAv202409 } from './v202409/WAHAv202409'; import {BASE_DESCRIPTION} from "./base/node"; import {WAHAv202502} from "./v202502/WAHAv202502"; +import {WAHAv202602} from "./v202602/WAHAv202602"; export class WAHA extends VersionedNodeType { constructor() { const baseDescription: INodeTypeBaseDescription = { ...BASE_DESCRIPTION, - defaultVersion: 202502, + defaultVersion: 202602, }; const nodeVersions: IVersionedNodeType['nodeVersions'] = { + 202602: new WAHAv202602(), 202502: new WAHAv202502(), 202409: new WAHAv202409(), }; diff --git a/nodes/WAHA/WAHATrigger.node.ts b/nodes/WAHA/WAHATrigger.node.ts index 91446bd..66a6f7a 100644 --- a/nodes/WAHA/WAHATrigger.node.ts +++ b/nodes/WAHA/WAHATrigger.node.ts @@ -3,15 +3,17 @@ import { VersionedNodeType } from 'n8n-workflow'; import {BASE_TRIGGER_DESCRIPTION} from "./base/trigger"; import {WAHATriggerV202409} from "./v202409/WAHATriggerV202409"; import {WAHATriggerV202502} from "./v202502/WAHATriggerV202502"; +import {WAHATriggerV202602} from "./v202602/WAHATriggerV202602"; export class WAHATrigger extends VersionedNodeType { constructor() { const baseDescription: INodeTypeBaseDescription = { ...BASE_TRIGGER_DESCRIPTION, - defaultVersion: 202502, + defaultVersion: 202602, }; const nodeVersions: IVersionedNodeType['nodeVersions'] = { + 202602: new WAHATriggerV202602(), 202502: new WAHATriggerV202502(), 202409: new WAHATriggerV202409(), }; diff --git a/nodes/WAHA/base/trigger.ts b/nodes/WAHA/base/trigger.ts index 4568b6b..9552352 100644 --- a/nodes/WAHA/base/trigger.ts +++ b/nodes/WAHA/base/trigger.ts @@ -89,3 +89,29 @@ export function makeWebhookForEvents(events: string[]) { return webhook; } + +export function makeWebhookForSelectedEvents() { + async function webhook(this: IWebhookFunctions): Promise { + const bodyData = this.getBodyData(); + const eventType = bodyData.event as string | undefined; + const listenEvents = this.getNodeParameter('listenEvents') as string[]; + + if (eventType === undefined || !listenEvents.includes(eventType)) { + return {}; + } + + const eventIndex: number = listenEvents.indexOf(eventType); + const req = this.getRequestObject(); + + const data = this.helpers.returnJsonArray(req.body as IDataObject); + const empty: INodeExecutionData[] = []; + const workflowData = listenEvents.map((_) => empty); + workflowData[eventIndex] = data; + + return { + workflowData: workflowData, + }; + } + + return webhook; +} diff --git a/nodes/WAHA/v202602/WAHATriggerV202602.test.ts b/nodes/WAHA/v202602/WAHATriggerV202602.test.ts new file mode 100644 index 0000000..a541cfc --- /dev/null +++ b/nodes/WAHA/v202602/WAHATriggerV202602.test.ts @@ -0,0 +1,7 @@ +import { configuredOutputs } from './utils'; +import { WAHATriggerV202602 } from './WAHATriggerV202602'; + +test('WAHATriggerV202602.outputs', () => { + const node = new WAHATriggerV202602(); + expect(node.description.outputs).toEqual(`={{(${configuredOutputs})($parameter)}}`); +}); diff --git a/nodes/WAHA/v202602/WAHATriggerV202602.ts b/nodes/WAHA/v202602/WAHATriggerV202602.ts new file mode 100644 index 0000000..e76fe13 --- /dev/null +++ b/nodes/WAHA/v202602/WAHATriggerV202602.ts @@ -0,0 +1,37 @@ +import { + INodeType, + INodeTypeDescription, +} from 'n8n-workflow'; + +import { + BASE_TRIGGER_DESCRIPTION, + CONFIGURE_WEBHOOK_NOTE, + makeWebhookForSelectedEvents, + TRIGGER_DESCRIPTION, +} from '../base/trigger'; +import { configuredOutputs, events } from './utils'; + +const defaultEvent = 'message' + + +export class WAHATriggerV202602 implements INodeType { + description: INodeTypeDescription = { + ...BASE_TRIGGER_DESCRIPTION, + ...TRIGGER_DESCRIPTION, + version: 202602, + outputs: `={{(${configuredOutputs})($parameter)}}`, + properties: [CONFIGURE_WEBHOOK_NOTE, { + displayName: 'Events', + name: 'listenEvents', + type: 'multiOptions', + options: [ + ...events.map(event => ({name: event, value: event})), + ], + required: true, + default: [ + defaultEvent + ], + }], + }; + webhook = makeWebhookForSelectedEvents() +} diff --git a/nodes/WAHA/v202602/WAHAv202602.test.ts b/nodes/WAHA/v202602/WAHAv202602.test.ts new file mode 100644 index 0000000..b77e650 --- /dev/null +++ b/nodes/WAHA/v202602/WAHAv202602.test.ts @@ -0,0 +1,13793 @@ +import { WAHAv202602 } from './WAHAv202602'; + +test('WAHAv202602.description.properties', () => { + const node = new WAHAv202602(); + const expected = [ + { + "displayName": "Resource", + "name": "resource", + "type": "options", + "noDataExpression": true, + "options": [ + { + "name": "πŸ–₯️ Sessions", + "value": "Sessions", + "description": "Control WhatsApp sessions (accounts)" + }, + { + "name": "πŸ“± Pairing", + "value": "Pairing", + "description": "Pair a session with WhatsApp on your phone." + }, + { + "name": "πŸ†” Profile", + "value": "Profile", + "description": "Your profile information" + }, + { + "name": "πŸ“€ Chatting", + "value": "Chatting", + "description": "Chatting methods" + }, + { + "name": "βœ… Presence", + "value": "Presence", + "description": "Presence information" + }, + { + "name": "πŸ“’ Channels", + "value": "Channels", + "description": "Channels (newsletters) methods" + }, + { + "name": "🟒 Status", + "value": "Status", + "description": "Status (aka stories) methods" + }, + { + "name": "πŸ’¬ Chats", + "value": "Chats", + "description": "Chats methods" + }, + { + "name": "πŸ”‘ Api Keys", + "value": "Api Keys", + "description": "API Keys management" + }, + { + "name": "πŸ‘€ Contacts", + "value": "Contacts", + "description": "Contacts methods.
\n Use phone number (without +) or phone number and `@c.us` at the end as `contactId`.
\n 'E.g: `12312312310` OR `12312312310@c.us`
" + }, + { + "name": "πŸ‘₯ Groups", + "value": "Groups", + "description": "Groups methods.
" + }, + { + "name": "πŸ“ž Calls", + "value": "Calls", + "description": "Call handling methods" + }, + { + "name": "πŸ“… Events", + "value": "Events", + "description": "Event Message" + }, + { + "name": "🏷️ Labels", + "value": "Labels", + "description": "Labels - available only for WhatsApp Business accounts" + }, + { + "name": "πŸ–ΌοΈ Media", + "value": "Media", + "description": "Media methods" + }, + { + "name": "🧩 Apps", + "value": "Apps", + "description": "Applications (built-in integrations)" + }, + { + "name": "πŸ” Observability", + "value": "Observability", + "description": "Other methods" + }, + { + "name": "πŸ—„οΈ Storage", + "value": "Storage", + "description": "Storage methods" + } + ], + "default": "" + }, + { + "displayName": "Operation", + "name": "operation", + "type": "options", + "noDataExpression": true, + "displayOptions": { + "show": { + "resource": [ + "Pairing" + ] + } + }, + "options": [ + { + "name": "Get QR", + "value": "Get QR", + "action": "Get QR code for pairing WhatsApp API.", + "description": "Get QR code for pairing WhatsApp API.", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/auth/qr" + } + } + }, + { + "name": "Request Code", + "value": "Request Code", + "action": "Request authentication code.", + "description": "Request authentication code.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/auth/request-code" + } + } + }, + { + "name": "Screenshot", + "value": "Screenshot", + "action": "Get a screenshot of the current WhatsApp session (**WEBJS** only)", + "description": "Get a screenshot of the current WhatsApp session (**WEBJS** only)", + "routing": { + "request": { + "method": "GET", + "url": "=/api/screenshot" + } + } + } + ], + "default": "" + }, + { + "displayName": "Operation", + "name": "operation", + "type": "options", + "noDataExpression": true, + "displayOptions": { + "show": { + "resource": [ + "Api Keys" + ] + } + }, + "options": [ + { + "name": "Create", + "value": "Create", + "action": "Create a new API key", + "description": "Create a new API key", + "routing": { + "request": { + "method": "POST", + "url": "=/api/keys" + } + } + }, + { + "name": "List", + "value": "List", + "action": "Get all API keys", + "description": "Get all API keys", + "routing": { + "request": { + "method": "GET", + "url": "=/api/keys" + } + } + }, + { + "name": "Update", + "value": "Update", + "action": "Update an API key", + "description": "Update an API key", + "routing": { + "request": { + "method": "PUT", + "url": "=/api/keys/{{$parameter[\"id\"]}}" + } + } + }, + { + "name": "Delete", + "value": "Delete", + "action": "Delete an API key", + "description": "Delete an API key", + "routing": { + "request": { + "method": "DELETE", + "url": "=/api/keys/{{$parameter[\"id\"]}}" + } + } + } + ], + "default": "" + }, + { + "displayName": "Operation", + "name": "operation", + "type": "options", + "noDataExpression": true, + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ] + } + }, + "options": [ + { + "name": "List", + "value": "List", + "action": "List all sessions", + "description": "List all sessions", + "routing": { + "request": { + "method": "GET", + "url": "=/api/sessions" + } + } + }, + { + "name": "Create", + "value": "Create", + "action": "Create a session", + "description": "Create session a new session (and start it at the same time if required).", + "routing": { + "request": { + "method": "POST", + "url": "=/api/sessions" + } + } + }, + { + "name": "Get", + "value": "Get", + "action": "Get session information", + "description": "Get session information", + "routing": { + "request": { + "method": "GET", + "url": "=/api/sessions/{{$parameter[\"session\"]}}" + } + } + }, + { + "name": "Update", + "value": "Update", + "action": "Update a session", + "description": "Update a session", + "routing": { + "request": { + "method": "PUT", + "url": "=/api/sessions/{{$parameter[\"session\"]}}" + } + } + }, + { + "name": "Delete", + "value": "Delete", + "action": "Delete the session", + "description": "Delete the session with the given name. Stop and logout as well. Idempotent operation.", + "routing": { + "request": { + "method": "DELETE", + "url": "=/api/sessions/{{$parameter[\"session\"]}}" + } + } + }, + { + "name": "Get Me", + "value": "Get Me", + "action": "Get information about the authenticated account", + "description": "Get information about the authenticated account", + "routing": { + "request": { + "method": "GET", + "url": "=/api/sessions/{{$parameter[\"session\"]}}/me" + } + } + }, + { + "name": "Start", + "value": "Start", + "action": "Start the session", + "description": "Start the session with the given name. The session must exist. Idempotent operation.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/sessions/{{$parameter[\"session\"]}}/start" + } + } + }, + { + "name": "Stop", + "value": "Stop", + "action": "Stop the session", + "description": "Stop the session with the given name. Idempotent operation.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/sessions/{{$parameter[\"session\"]}}/stop" + } + } + }, + { + "name": "Logout", + "value": "Logout", + "action": "Logout from the session", + "description": "Logout the session, restart a session if it was not STOPPED", + "routing": { + "request": { + "method": "POST", + "url": "=/api/sessions/{{$parameter[\"session\"]}}/logout" + } + } + }, + { + "name": "Restart", + "value": "Restart", + "action": "Restart the session", + "description": "Restart the session with the given name.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/sessions/{{$parameter[\"session\"]}}/restart" + } + } + } + ], + "default": "" + }, + { + "displayName": "Operation", + "name": "operation", + "type": "options", + "noDataExpression": true, + "displayOptions": { + "show": { + "resource": [ + "Profile" + ] + } + }, + "options": [ + { + "name": "Get My Profile", + "value": "Get My Profile", + "action": "Get my profile", + "description": "Get my profile", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/profile" + } + } + }, + { + "name": "Set Profile Name", + "value": "Set Profile Name", + "action": "Set my profile name", + "description": "Set my profile name", + "routing": { + "request": { + "method": "PUT", + "url": "=/api/{{$parameter[\"session\"]}}/profile/name" + } + } + }, + { + "name": "Set Profile Status", + "value": "Set Profile Status", + "action": "Set profile status (About)", + "description": "Set profile status (About)", + "routing": { + "request": { + "method": "PUT", + "url": "=/api/{{$parameter[\"session\"]}}/profile/status" + } + } + }, + { + "name": "Set Profile Picture", + "value": "Set Profile Picture", + "action": "Set profile picture", + "description": "Set profile picture", + "routing": { + "request": { + "method": "PUT", + "url": "=/api/{{$parameter[\"session\"]}}/profile/picture" + } + } + }, + { + "name": "Delete Profile Picture", + "value": "Delete Profile Picture", + "action": "Delete profile picture", + "description": "Delete profile picture", + "routing": { + "request": { + "method": "DELETE", + "url": "=/api/{{$parameter[\"session\"]}}/profile/picture" + } + } + } + ], + "default": "" + }, + { + "displayName": "Operation", + "name": "operation", + "type": "options", + "noDataExpression": true, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ] + } + }, + "options": [ + { + "name": "Send Text", + "value": "Send Text", + "action": "Send a text message", + "description": "Send a text message", + "routing": { + "request": { + "method": "POST", + "url": "=/api/sendText" + } + } + }, + { + "name": "Send Image", + "value": "Send Image", + "action": "Send an image", + "description": "Either from an URL or base64 data - look at the request schemas for details.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/sendImage" + } + } + }, + { + "name": "Send File", + "value": "Send File", + "action": "Send a file", + "description": "Either from an URL or base64 data - look at the request schemas for details.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/sendFile" + } + } + }, + { + "name": "Send Voice", + "value": "Send Voice", + "action": "Send an voice message", + "description": "Either from an URL or base64 data - look at the request schemas for details.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/sendVoice" + } + } + }, + { + "name": "Send Video", + "value": "Send Video", + "action": "Send a video", + "description": "Either from an URL or base64 data - look at the request schemas for details.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/sendVideo" + } + } + }, + { + "name": "Send Link Custom Preview", + "value": "Send Link Custom Preview", + "action": "Send a text message with a CUSTOM link preview.", + "description": "You can use regular /api/sendText if you wanna send auto-generated link preview.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/send/link-custom-preview" + } + } + }, + { + "name": "Send List", + "value": "Send List", + "action": "Send a list message (interactive)", + "description": "Send a List message with sections and rows", + "routing": { + "request": { + "method": "POST", + "url": "=/api/sendList" + } + } + }, + { + "name": "Forward Message", + "value": "Forward Message", + "action": "Forward Message", + "description": "", + "routing": { + "request": { + "method": "POST", + "url": "=/api/forwardMessage" + } + } + }, + { + "name": "Send Seen", + "value": "Send Seen", + "action": "Send Seen", + "description": "", + "routing": { + "request": { + "method": "POST", + "url": "=/api/sendSeen" + } + } + }, + { + "name": "Start Typing", + "value": "Start Typing", + "action": "Start Typing", + "description": "", + "routing": { + "request": { + "method": "POST", + "url": "=/api/startTyping" + } + } + }, + { + "name": "Stop Typing", + "value": "Stop Typing", + "action": "Stop Typing", + "description": "", + "routing": { + "request": { + "method": "POST", + "url": "=/api/stopTyping" + } + } + }, + { + "name": "Set Reaction", + "value": "Set Reaction", + "action": "React to a message with an emoji", + "description": "React to a message with an emoji", + "routing": { + "request": { + "method": "PUT", + "url": "=/api/reaction" + } + } + }, + { + "name": "Set Star", + "value": "Set Star", + "action": "Star or unstar a message", + "description": "Star or unstar a message", + "routing": { + "request": { + "method": "PUT", + "url": "=/api/star" + } + } + }, + { + "name": "Send Poll", + "value": "Send Poll", + "action": "Send a poll with options", + "description": "You can use it as buttons or list replacement", + "routing": { + "request": { + "method": "POST", + "url": "=/api/sendPoll" + } + } + }, + { + "name": "Send Poll Vote", + "value": "Send Poll Vote", + "action": "Vote on a poll", + "description": "Cast vote(s) on an existing poll message", + "routing": { + "request": { + "method": "POST", + "url": "=/api/sendPollVote" + } + } + }, + { + "name": "Send Location", + "value": "Send Location", + "action": "Send Location", + "description": "", + "routing": { + "request": { + "method": "POST", + "url": "=/api/sendLocation" + } + } + }, + { + "name": "Send Contact Vcard", + "value": "Send Contact Vcard", + "action": "Send Contact Vcard", + "description": "", + "routing": { + "request": { + "method": "POST", + "url": "=/api/sendContactVcard" + } + } + }, + { + "name": "Send Buttons Reply", + "value": "Send Buttons Reply", + "action": "Reply on a button message", + "description": "Reply on a button message", + "routing": { + "request": { + "method": "POST", + "url": "=/api/send/buttons/reply" + } + } + } + ], + "default": "" + }, + { + "displayName": "Operation", + "name": "operation", + "type": "options", + "noDataExpression": true, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ] + } + }, + "options": [ + { + "name": "Get Chats", + "value": "Get Chats", + "action": "Get chats", + "description": "Get chats", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/chats" + } + } + }, + { + "name": "Get Chats Overview", + "value": "Get Chats Overview", + "action": "Get chats overview. Includes all necessary things to build UI \"your chats overview\" page - chat id, name, picture, last message. Sorting by last message timestamp", + "description": "Get chats overview. Includes all necessary things to build UI \"your chats overview\" page - chat id, name, picture, last message. Sorting by last message timestamp", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/chats/overview" + } + } + }, + { + "name": "Post Chats Overview", + "value": "Post Chats Overview", + "action": "Get chats overview. Use POST if you have too many \"ids\" params - GET can limit it", + "description": "Get chats overview. Use POST if you have too many \"ids\" params - GET can limit it", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/chats/overview" + } + } + }, + { + "name": "Delete Chat", + "value": "Delete Chat", + "action": "Deletes the chat", + "description": "Deletes the chat", + "routing": { + "request": { + "method": "DELETE", + "url": "=/api/{{$parameter[\"session\"]}}/chats/{{$parameter[\"chatId\"]}}" + } + } + }, + { + "name": "Get Chat Picture", + "value": "Get Chat Picture", + "action": "Gets chat picture", + "description": "Gets chat picture", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/chats/{{$parameter[\"chatId\"]}}/picture" + } + } + }, + { + "name": "Get Chat Messages", + "value": "Get Chat Messages", + "action": "Gets messages in the chat", + "description": "Gets messages in the chat", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/chats/{{$parameter[\"chatId\"]}}/messages" + } + } + }, + { + "name": "Clear Messages", + "value": "Clear Messages", + "action": "Clears all messages from the chat", + "description": "Clears all messages from the chat", + "routing": { + "request": { + "method": "DELETE", + "url": "=/api/{{$parameter[\"session\"]}}/chats/{{$parameter[\"chatId\"]}}/messages" + } + } + }, + { + "name": "Read Chat Messages", + "value": "Read Chat Messages", + "action": "Read unread messages in the chat", + "description": "Read unread messages in the chat", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/chats/{{$parameter[\"chatId\"]}}/messages/read" + } + } + }, + { + "name": "Get Chat Message", + "value": "Get Chat Message", + "action": "Gets message by id", + "description": "Gets message by id", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/chats/{{$parameter[\"chatId\"]}}/messages/{{$parameter[\"messageId\"]}}" + } + } + }, + { + "name": "Delete Message", + "value": "Delete Message", + "action": "Deletes a message from the chat", + "description": "Deletes a message from the chat", + "routing": { + "request": { + "method": "DELETE", + "url": "=/api/{{$parameter[\"session\"]}}/chats/{{$parameter[\"chatId\"]}}/messages/{{$parameter[\"messageId\"]}}" + } + } + }, + { + "name": "Edit Message", + "value": "Edit Message", + "action": "Edits a message in the chat", + "description": "Edits a message in the chat", + "routing": { + "request": { + "method": "PUT", + "url": "=/api/{{$parameter[\"session\"]}}/chats/{{$parameter[\"chatId\"]}}/messages/{{$parameter[\"messageId\"]}}" + } + } + }, + { + "name": "Pin Message", + "value": "Pin Message", + "action": "Pins a message in the chat", + "description": "Pins a message in the chat", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/chats/{{$parameter[\"chatId\"]}}/messages/{{$parameter[\"messageId\"]}}/pin" + } + } + }, + { + "name": "Unpin Message", + "value": "Unpin Message", + "action": "Unpins a message in the chat", + "description": "Unpins a message in the chat", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/chats/{{$parameter[\"chatId\"]}}/messages/{{$parameter[\"messageId\"]}}/unpin" + } + } + }, + { + "name": "Archive Chat", + "value": "Archive Chat", + "action": "Archive the chat", + "description": "Archive the chat", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/chats/{{$parameter[\"chatId\"]}}/archive" + } + } + }, + { + "name": "Unarchive Chat", + "value": "Unarchive Chat", + "action": "Unarchive the chat", + "description": "Unarchive the chat", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/chats/{{$parameter[\"chatId\"]}}/unarchive" + } + } + }, + { + "name": "Unread Chat", + "value": "Unread Chat", + "action": "Unread the chat", + "description": "Unread the chat", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/chats/{{$parameter[\"chatId\"]}}/unread" + } + } + } + ], + "default": "" + }, + { + "displayName": "Operation", + "name": "operation", + "type": "options", + "noDataExpression": true, + "displayOptions": { + "show": { + "resource": [ + "Calls" + ] + } + }, + "options": [ + { + "name": "Reject Call", + "value": "Reject Call", + "action": "Reject incoming call", + "description": "Reject incoming call", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/calls/reject" + } + } + } + ], + "default": "" + }, + { + "displayName": "Operation", + "name": "operation", + "type": "options", + "noDataExpression": true, + "displayOptions": { + "show": { + "resource": [ + "Channels" + ] + } + }, + "options": [ + { + "name": "List", + "value": "List", + "action": "Get list of know channels", + "description": "Get list of know channels", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/channels" + } + } + }, + { + "name": "Create", + "value": "Create", + "action": "Create a new channel.", + "description": "Create a new channel.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/channels" + } + } + }, + { + "name": "Delete", + "value": "Delete", + "action": "Delete the channel.", + "description": "Delete the channel.", + "routing": { + "request": { + "method": "DELETE", + "url": "=/api/{{$parameter[\"session\"]}}/channels/{{$parameter[\"id\"]}}" + } + } + }, + { + "name": "Get", + "value": "Get", + "action": "Get the channel info", + "description": "You can use either id (123@newsletter) OR invite code (https://www.whatsapp.com/channel/123)", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/channels/{{$parameter[\"id\"]}}" + } + } + }, + { + "name": "Preview Channel Messages", + "value": "Preview Channel Messages", + "action": "Preview channel messages", + "description": "You can use either invite code (https://www.whatsapp.com/channel/123) or (123)ORChannel ID (123@newsletter).", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/channels/{{$parameter[\"id\"]}}/messages/preview" + } + } + }, + { + "name": "Follow", + "value": "Follow", + "action": "Follow the channel.", + "description": "Follow the channel.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/channels/{{$parameter[\"id\"]}}/follow" + } + } + }, + { + "name": "Unfollow", + "value": "Unfollow", + "action": "Unfollow the channel.", + "description": "Unfollow the channel.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/channels/{{$parameter[\"id\"]}}/unfollow" + } + } + }, + { + "name": "Mute", + "value": "Mute", + "action": "Mute the channel.", + "description": "Mute the channel.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/channels/{{$parameter[\"id\"]}}/mute" + } + } + }, + { + "name": "Unmute", + "value": "Unmute", + "action": "Unmute the channel.", + "description": "Unmute the channel.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/channels/{{$parameter[\"id\"]}}/unmute" + } + } + }, + { + "name": "Search By View", + "value": "Search By View", + "action": "Search for channels (by view)", + "description": "Search for channels (by view)", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/channels/search/by-view" + } + } + }, + { + "name": "Search By Text", + "value": "Search By Text", + "action": "Search for channels (by text)", + "description": "Search for channels (by text)", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/channels/search/by-text" + } + } + }, + { + "name": "Get Search Views", + "value": "Get Search Views", + "action": "Get list of views for channel search", + "description": "Get list of views for channel search", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/channels/search/views" + } + } + }, + { + "name": "Get Search Countries", + "value": "Get Search Countries", + "action": "Get list of countries for channel search", + "description": "Get list of countries for channel search", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/channels/search/countries" + } + } + }, + { + "name": "Get Search Categories", + "value": "Get Search Categories", + "action": "Get list of categories for channel search", + "description": "Get list of categories for channel search", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/channels/search/categories" + } + } + } + ], + "default": "" + }, + { + "displayName": "Operation", + "name": "operation", + "type": "options", + "noDataExpression": true, + "displayOptions": { + "show": { + "resource": [ + "Status" + ] + } + }, + "options": [ + { + "name": "Send Text Status", + "value": "Send Text Status", + "action": "Send text status", + "description": "Send text status", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/status/text" + } + } + }, + { + "name": "Send Image Status", + "value": "Send Image Status", + "action": "Send image status", + "description": "Send image status", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/status/image" + } + } + }, + { + "name": "Send Voice Status", + "value": "Send Voice Status", + "action": "Send voice status", + "description": "Send voice status", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/status/voice" + } + } + }, + { + "name": "Send Video Status", + "value": "Send Video Status", + "action": "Send video status", + "description": "Send video status", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/status/video" + } + } + }, + { + "name": "Delete Status", + "value": "Delete Status", + "action": "DELETE sent status", + "description": "DELETE sent status", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/status/delete" + } + } + }, + { + "name": "Get New Message Id", + "value": "Get New Message Id", + "action": "Generate message ID you can use to batch contacts", + "description": "Generate message ID you can use to batch contacts", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/status/new-message-id" + } + } + } + ], + "default": "" + }, + { + "displayName": "Operation", + "name": "operation", + "type": "options", + "noDataExpression": true, + "displayOptions": { + "show": { + "resource": [ + "Labels" + ] + } + }, + "options": [ + { + "name": "Get All", + "value": "Get All", + "action": "Get all labels", + "description": "Get all labels", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/labels" + } + } + }, + { + "name": "Create", + "value": "Create", + "action": "Create a new label", + "description": "Create a new label", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/labels" + } + } + }, + { + "name": "Update", + "value": "Update", + "action": "Update a label", + "description": "Update a label", + "routing": { + "request": { + "method": "PUT", + "url": "=/api/{{$parameter[\"session\"]}}/labels/{{$parameter[\"labelId\"]}}" + } + } + }, + { + "name": "Delete", + "value": "Delete", + "action": "Delete a label", + "description": "Delete a label", + "routing": { + "request": { + "method": "DELETE", + "url": "=/api/{{$parameter[\"session\"]}}/labels/{{$parameter[\"labelId\"]}}" + } + } + }, + { + "name": "Get Chat Labels", + "value": "Get Chat Labels", + "action": "Get labels for the chat", + "description": "Get labels for the chat", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/labels/chats/{{$parameter[\"chatId\"]}}" + } + } + }, + { + "name": "Put Chat Labels", + "value": "Put Chat Labels", + "action": "Save labels for the chat", + "description": "Save labels for the chat", + "routing": { + "request": { + "method": "PUT", + "url": "=/api/{{$parameter[\"session\"]}}/labels/chats/{{$parameter[\"chatId\"]}}" + } + } + }, + { + "name": "Get Chats By Label", + "value": "Get Chats By Label", + "action": "Get chats by label", + "description": "Get chats by label", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/labels/{{$parameter[\"labelId\"]}}/chats" + } + } + } + ], + "default": "" + }, + { + "displayName": "Operation", + "name": "operation", + "type": "options", + "noDataExpression": true, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ] + } + }, + "options": [ + { + "name": "Get All", + "value": "Get All", + "action": "Get all contacts", + "description": "Get all contacts", + "routing": { + "request": { + "method": "GET", + "url": "=/api/contacts/all" + } + } + }, + { + "name": "Get", + "value": "Get", + "action": "Get contact basic info", + "description": "The method always return result, even if the phone number is not registered in WhatsApp. For that - use /contacts/check-exists endpoint below.", + "routing": { + "request": { + "method": "GET", + "url": "=/api/contacts" + } + } + }, + { + "name": "Check Exists", + "value": "Check Exists", + "action": "Check phone number is registered in WhatsApp.", + "description": "Check phone number is registered in WhatsApp.", + "routing": { + "request": { + "method": "GET", + "url": "=/api/contacts/check-exists" + } + } + }, + { + "name": "Get About", + "value": "Get About", + "action": "Gets the Contact's \"about\" info", + "description": "Returns null if you do not have permission to read their status.", + "routing": { + "request": { + "method": "GET", + "url": "=/api/contacts/about" + } + } + }, + { + "name": "Get Profile Picture", + "value": "Get Profile Picture", + "action": "Get contact's profile picture URL", + "description": "If privacy settings do not allow to get the picture, the method will return null.", + "routing": { + "request": { + "method": "GET", + "url": "=/api/contacts/profile-picture" + } + } + }, + { + "name": "Block", + "value": "Block", + "action": "Block contact", + "description": "Block contact", + "routing": { + "request": { + "method": "POST", + "url": "=/api/contacts/block" + } + } + }, + { + "name": "Unblock", + "value": "Unblock", + "action": "Unblock contact", + "description": "Unblock contact", + "routing": { + "request": { + "method": "POST", + "url": "=/api/contacts/unblock" + } + } + }, + { + "name": "Put", + "value": "Put", + "action": "Create or update contact", + "description": "Create or update contact on the phone address book. May not work if you have installed many WhatsApp apps on the same phone", + "routing": { + "request": { + "method": "PUT", + "url": "=/api/{{$parameter[\"session\"]}}/contacts/{{$parameter[\"chatId\"]}}" + } + } + }, + { + "name": "Get Lids Count", + "value": "Get Lids Count", + "action": "Get the number of known lids", + "description": "Get the number of known lids", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/lids/count" + } + } + }, + { + "name": "Find PN By Lid", + "value": "Find PN By Lid", + "action": "Get phone number by lid", + "description": "Get phone number by lid", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/lids/{{$parameter[\"lid\"]}}" + } + } + }, + { + "name": "Find LID By Phone Number", + "value": "Find LID By Phone Number", + "action": "Get lid by phone number (chat id)", + "description": "Get lid by phone number (chat id)", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/lids/pn/{{$parameter[\"phoneNumber\"]}}" + } + } + } + ], + "default": "" + }, + { + "displayName": "Operation", + "name": "operation", + "type": "options", + "noDataExpression": true, + "displayOptions": { + "show": { + "resource": [ + "Groups" + ] + } + }, + "options": [ + { + "name": "Create Group", + "value": "Create Group", + "action": "Create a new group.", + "description": "Create a new group.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/groups" + } + } + }, + { + "name": "Get Groups", + "value": "Get Groups", + "action": "Get all groups.", + "description": "Get all groups.", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/groups" + } + } + }, + { + "name": "Join Info Group", + "value": "Join Info Group", + "action": "Get info about the group before joining.", + "description": "Get info about the group before joining.", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/groups/join-info" + } + } + }, + { + "name": "Join Group", + "value": "Join Group", + "action": "Join group via code", + "description": "Join group via code", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/groups/join" + } + } + }, + { + "name": "Get Groups Count", + "value": "Get Groups Count", + "action": "Get the number of groups.", + "description": "Get the number of groups.", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/groups/count" + } + } + }, + { + "name": "Refresh Groups", + "value": "Refresh Groups", + "action": "Refresh groups from the server.", + "description": "Refresh groups from the server.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/groups/refresh" + } + } + }, + { + "name": "Get Group", + "value": "Get Group", + "action": "Get the group.", + "description": "Get the group.", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/groups/{{$parameter[\"id\"]}}" + } + } + }, + { + "name": "Delete Group", + "value": "Delete Group", + "action": "Delete the group.", + "description": "Delete the group.", + "routing": { + "request": { + "method": "DELETE", + "url": "=/api/{{$parameter[\"session\"]}}/groups/{{$parameter[\"id\"]}}" + } + } + }, + { + "name": "Leave Group", + "value": "Leave Group", + "action": "Leave the group.", + "description": "Leave the group.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/groups/{{$parameter[\"id\"]}}/leave" + } + } + }, + { + "name": "Get Chat Picture", + "value": "Get Chat Picture", + "action": "Get group picture", + "description": "Get group picture", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/groups/{{$parameter[\"id\"]}}/picture" + } + } + }, + { + "name": "Set Picture", + "value": "Set Picture", + "action": "Set group picture", + "description": "Set group picture", + "routing": { + "request": { + "method": "PUT", + "url": "=/api/{{$parameter[\"session\"]}}/groups/{{$parameter[\"id\"]}}/picture" + } + } + }, + { + "name": "Delete Picture", + "value": "Delete Picture", + "action": "Delete group picture", + "description": "Delete group picture", + "routing": { + "request": { + "method": "DELETE", + "url": "=/api/{{$parameter[\"session\"]}}/groups/{{$parameter[\"id\"]}}/picture" + } + } + }, + { + "name": "Set Description", + "value": "Set Description", + "action": "Updates the group description.", + "description": "Returns \"true\" if the subject was properly updated. This can return \"false\" if the user does not have the necessary permissions.", + "routing": { + "request": { + "method": "PUT", + "url": "=/api/{{$parameter[\"session\"]}}/groups/{{$parameter[\"id\"]}}/description" + } + } + }, + { + "name": "Set Subject", + "value": "Set Subject", + "action": "Updates the group subject", + "description": "Returns \"true\" if the subject was properly updated. This can return \"false\" if the user does not have the necessary permissions.", + "routing": { + "request": { + "method": "PUT", + "url": "=/api/{{$parameter[\"session\"]}}/groups/{{$parameter[\"id\"]}}/subject" + } + } + }, + { + "name": "Set Info Admin Only", + "value": "Set Info Admin Only", + "action": "Updates the group \"info admin only\" settings.", + "description": "You can allow only admins to edit group info (title, description, photo).", + "routing": { + "request": { + "method": "PUT", + "url": "=/api/{{$parameter[\"session\"]}}/groups/{{$parameter[\"id\"]}}/settings/security/info-admin-only" + } + } + }, + { + "name": "Get Info Admin Only", + "value": "Get Info Admin Only", + "action": "Get the group's 'info admin only' settings.", + "description": "You can allow only admins to edit group info (title, description, photo).", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/groups/{{$parameter[\"id\"]}}/settings/security/info-admin-only" + } + } + }, + { + "name": "Set Messages Admin Only", + "value": "Set Messages Admin Only", + "action": "Update settings - who can send messages", + "description": "Updates the group settings to only allow admins to send messages.", + "routing": { + "request": { + "method": "PUT", + "url": "=/api/{{$parameter[\"session\"]}}/groups/{{$parameter[\"id\"]}}/settings/security/messages-admin-only" + } + } + }, + { + "name": "Get Messages Admin Only", + "value": "Get Messages Admin Only", + "action": "Get settings - who can send messages", + "description": "The group settings to only allow admins to send messages.", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/groups/{{$parameter[\"id\"]}}/settings/security/messages-admin-only" + } + } + }, + { + "name": "Get Invite Code", + "value": "Get Invite Code", + "action": "Gets the invite code for the group.", + "description": "Gets the invite code for the group.", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/groups/{{$parameter[\"id\"]}}/invite-code" + } + } + }, + { + "name": "Revoke Invite Code", + "value": "Revoke Invite Code", + "action": "Invalidates the current group invite code and generates a new one.", + "description": "Invalidates the current group invite code and generates a new one.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/groups/{{$parameter[\"id\"]}}/invite-code/revoke" + } + } + }, + { + "name": "Get Participants", + "value": "Get Participants", + "action": "Get participants", + "description": "Get participants", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/groups/{{$parameter[\"id\"]}}/participants" + } + } + }, + { + "name": "Get Group Participants", + "value": "Get Group Participants", + "action": "Get group participants.", + "description": "Get group participants.", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/groups/{{$parameter[\"id\"]}}/participants/v2" + } + } + }, + { + "name": "Add Participants", + "value": "Add Participants", + "action": "Add participants", + "description": "Add participants", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/groups/{{$parameter[\"id\"]}}/participants/add" + } + } + }, + { + "name": "Remove Participants", + "value": "Remove Participants", + "action": "Remove participants", + "description": "Remove participants", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/groups/{{$parameter[\"id\"]}}/participants/remove" + } + } + }, + { + "name": "Promote To Admin", + "value": "Promote To Admin", + "action": "Promote participants to admin users.", + "description": "Promote participants to admin users.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/groups/{{$parameter[\"id\"]}}/admin/promote" + } + } + }, + { + "name": "Demote To Admin", + "value": "Demote To Admin", + "action": "Demotes participants to regular users.", + "description": "Demotes participants to regular users.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/groups/{{$parameter[\"id\"]}}/admin/demote" + } + } + } + ], + "default": "" + }, + { + "displayName": "Operation", + "name": "operation", + "type": "options", + "noDataExpression": true, + "displayOptions": { + "show": { + "resource": [ + "Presence" + ] + } + }, + "options": [ + { + "name": "Set Presence", + "value": "Set Presence", + "action": "Set session presence", + "description": "Set session presence", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/presence" + } + } + }, + { + "name": "Get Presence All", + "value": "Get Presence All", + "action": "Get all subscribed presence information.", + "description": "Get all subscribed presence information.", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/presence" + } + } + }, + { + "name": "Get Presence", + "value": "Get Presence", + "action": "Get the presence for the chat id. If it hasn't been subscribed - it also subscribes to it.", + "description": "Get the presence for the chat id. If it hasn't been subscribed - it also subscribes to it.", + "routing": { + "request": { + "method": "GET", + "url": "=/api/{{$parameter[\"session\"]}}/presence/{{$parameter[\"chatId\"]}}" + } + } + }, + { + "name": "Subscribe", + "value": "Subscribe", + "action": "Subscribe to presence events for the chat.", + "description": "Subscribe to presence events for the chat.", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/presence/{{$parameter[\"chatId\"]}}/subscribe" + } + } + } + ], + "default": "" + }, + { + "displayName": "Operation", + "name": "operation", + "type": "options", + "noDataExpression": true, + "displayOptions": { + "show": { + "resource": [ + "Events" + ] + } + }, + "options": [ + { + "name": "Send Event", + "value": "Send Event", + "action": "Send an event message", + "description": "Send an event message", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/events" + } + } + } + ], + "default": "" + }, + { + "displayName": "Operation", + "name": "operation", + "type": "options", + "noDataExpression": true, + "displayOptions": { + "show": { + "resource": [ + "Observability" + ] + } + }, + "options": [ + { + "name": "Ping", + "value": "Ping", + "action": "Ping the server", + "description": "Check if the server is alive and responding to requests.", + "routing": { + "request": { + "method": "GET", + "url": "=/ping" + } + } + }, + { + "name": "Check", + "value": "Check", + "action": "Check the health of the server", + "description": "Perform all health checks and return the server's health status.", + "routing": { + "request": { + "method": "GET", + "url": "=/health" + } + } + }, + { + "name": "Get", + "value": "Get", + "action": "Get the version of the server", + "description": "Get the version of the server", + "routing": { + "request": { + "method": "GET", + "url": "=/api/server/version" + } + } + }, + { + "name": "Environment", + "value": "Environment", + "action": "Get the server environment", + "description": "Get the server environment", + "routing": { + "request": { + "method": "GET", + "url": "=/api/server/environment" + } + } + }, + { + "name": "Status", + "value": "Status", + "action": "Get the server status", + "description": "Get the server status", + "routing": { + "request": { + "method": "GET", + "url": "=/api/server/status" + } + } + }, + { + "name": "Stop", + "value": "Stop", + "action": "Stop (and restart) the server", + "description": "If you're using docker, after calling this endpoint Docker will start a new container, so you can use this endpoint to restart the server", + "routing": { + "request": { + "method": "POST", + "url": "=/api/server/stop" + } + } + }, + { + "name": "Cpu Profile", + "value": "Cpu Profile", + "action": "Collect and return a CPU profile for the current nodejs process", + "description": "Uses the Node.js inspector profiler to capture a .cpuprofile", + "routing": { + "request": { + "method": "GET", + "url": "=/api/server/debug/cpu" + } + } + }, + { + "name": "Heapsnapshot", + "value": "Heapsnapshot", + "action": "Return a heapsnapshot for the current nodejs process", + "description": "Return a heapsnapshot of the server's memory", + "routing": { + "request": { + "method": "GET", + "url": "=/api/server/debug/heapsnapshot" + } + } + }, + { + "name": "Browser Trace", + "value": "Browser Trace", + "action": "Collect and get a trace.json for Chrome DevTools ", + "description": "Uses https://pptr.dev/api/puppeteer.tracing", + "routing": { + "request": { + "method": "GET", + "url": "=/api/server/debug/browser/trace/{{$parameter[\"session\"]}}" + } + } + } + ], + "default": "" + }, + { + "displayName": "Operation", + "name": "operation", + "type": "options", + "noDataExpression": true, + "displayOptions": { + "show": { + "resource": [ + "Media" + ] + } + }, + "options": [ + { + "name": "Convert Voice", + "value": "Convert Voice", + "action": "Convert voice to WhatsApp format (opus)", + "description": "Convert voice to WhatsApp format (opus)", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/media/convert/voice" + } + } + }, + { + "name": "Convert Video", + "value": "Convert Video", + "action": "Convert video to WhatsApp format (mp4)", + "description": "Convert video to WhatsApp format (mp4)", + "routing": { + "request": { + "method": "POST", + "url": "=/api/{{$parameter[\"session\"]}}/media/convert/video" + } + } + } + ], + "default": "" + }, + { + "displayName": "Operation", + "name": "operation", + "type": "options", + "noDataExpression": true, + "displayOptions": { + "show": { + "resource": [ + "Apps" + ] + } + }, + "options": [ + { + "name": "List", + "value": "List", + "action": "List all apps for a session", + "description": "List all apps for a session", + "routing": { + "request": { + "method": "GET", + "url": "=/api/apps" + } + } + }, + { + "name": "Create", + "value": "Create", + "action": "Create a new app", + "description": "Create a new app", + "routing": { + "request": { + "method": "POST", + "url": "=/api/apps" + } + } + }, + { + "name": "Get", + "value": "Get", + "action": "Get app by ID", + "description": "Get app by ID", + "routing": { + "request": { + "method": "GET", + "url": "=/api/apps/{{$parameter[\"id\"]}}" + } + } + }, + { + "name": "Update", + "value": "Update", + "action": "Update an existing app", + "description": "Update an existing app", + "routing": { + "request": { + "method": "PUT", + "url": "=/api/apps/{{$parameter[\"id\"]}}" + } + } + }, + { + "name": "Delete", + "value": "Delete", + "action": "Delete an app", + "description": "Delete an app", + "routing": { + "request": { + "method": "DELETE", + "url": "=/api/apps/{{$parameter[\"id\"]}}" + } + } + }, + { + "name": "Get Languages", + "value": "Get Languages", + "action": "Get available languages for Chatwoot app", + "description": "Get available languages for Chatwoot app", + "routing": { + "request": { + "method": "GET", + "url": "=/api/apps/chatwoot/locales" + } + } + } + ], + "default": "" + }, + { + "displayName": "GET /api/{session}/auth/qr", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Pairing" + ], + "operation": [ + "Get QR" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Pairing" + ], + "operation": [ + "Get QR" + ] + } + } + }, + { + "displayName": "Format", + "name": "format", + "required": true, + "default": "image", + "type": "options", + "options": [ + { + "name": "Image", + "value": "image" + }, + { + "name": "Raw", + "value": "raw" + } + ], + "routing": { + "send": { + "type": "query", + "property": "format", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Pairing" + ], + "operation": [ + "Get QR" + ] + } + } + }, + { + "displayName": "POST /api/{session}/auth/request-code", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Pairing" + ], + "operation": [ + "Request Code" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Pairing" + ], + "operation": [ + "Request Code" + ] + } + } + }, + { + "required": true, + "displayName": "Phone Number", + "name": "phoneNumber", + "type": "string", + "default": "12132132130", + "description": "Mobile phone number in international format", + "routing": { + "send": { + "property": "phoneNumber", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Pairing" + ], + "operation": [ + "Request Code" + ] + } + } + }, + { + "displayName": "Method", + "name": "method", + "type": "string", + "default": null, + "description": "How would you like to receive the one time code for registration? |sms|voice. Leave empty for Web pairing.", + "routing": { + "send": { + "property": "method", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Pairing" + ], + "operation": [ + "Request Code" + ] + } + } + }, + { + "displayName": "POST /api/keys", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Api Keys" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Api Keys" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "required": true, + "displayName": "Is Admin", + "name": "isAdmin", + "type": "boolean", + "default": false, + "routing": { + "send": { + "property": "isAdmin", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Api Keys" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "required": true, + "displayName": "Is Active", + "name": "isActive", + "type": "boolean", + "default": true, + "routing": { + "send": { + "property": "isActive", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Api Keys" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "displayName": "GET /api/keys", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Api Keys" + ], + "operation": [ + "List" + ] + } + } + }, + { + "displayName": "PUT /api/keys/{id}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Api Keys" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Api Keys" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "default": "", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Api Keys" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "required": true, + "displayName": "Is Admin", + "name": "isAdmin", + "type": "boolean", + "default": false, + "routing": { + "send": { + "property": "isAdmin", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Api Keys" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "required": true, + "displayName": "Is Active", + "name": "isActive", + "type": "boolean", + "default": true, + "routing": { + "send": { + "property": "isActive", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Api Keys" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "displayName": "DELETE /api/keys/{id}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Api Keys" + ], + "operation": [ + "Delete" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "default": "", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Api Keys" + ], + "operation": [ + "Delete" + ] + } + } + }, + { + "displayName": "GET /api/sessions", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "List" + ] + } + } + }, + { + "displayName": "Expand", + "name": "expand", + "description": "Expand additional session details.", + "default": "[\n null\n]", + "type": "json", + "routing": { + "send": { + "type": "query", + "property": "expand", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "List" + ] + } + } + }, + { + "displayName": "All", + "name": "all", + "description": "Return all sessions, including those that are in the STOPPED state.", + "default": false, + "type": "boolean", + "routing": { + "send": { + "type": "query", + "property": "all", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "List" + ] + } + } + }, + { + "displayName": "POST /api/sessions", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "displayName": "Name", + "name": "name", + "type": "string", + "default": "default", + "description": "Session name (id)", + "routing": { + "send": { + "property": "name", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "displayName": "Apps", + "name": "apps", + "type": "json", + "default": "[\n {\n \"enabled\": true\n }\n]", + "description": "Apps to be synchronized for this session.", + "routing": { + "send": { + "property": "apps", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "displayName": "Start", + "name": "start", + "type": "boolean", + "default": true, + "description": "Start session after creation", + "routing": { + "send": { + "property": "start", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "displayName": "Config", + "name": "config", + "type": "json", + "default": "{\n \"metadata\": {\n \"user.id\": \"123\",\n \"user.email\": \"email@example.com\"\n },\n \"proxy\": {\n \"server\": \"localhost:3128\",\n \"username\": null,\n \"password\": null\n },\n \"debug\": false,\n \"ignore\": {},\n \"client\": {},\n \"noweb\": {\n \"markOnline\": true,\n \"store\": {\n \"enabled\": true,\n \"fullSync\": false\n }\n },\n \"gows\": {\n \"storage\": {\n \"messages\": true,\n \"groups\": true,\n \"chats\": true,\n \"labels\": true\n }\n },\n \"webjs\": {\n \"tagsEventsOn\": false\n },\n \"webhooks\": [\n {\n \"url\": \"https://webhook.site/11111111-1111-1111-1111-11111111\",\n \"events\": [\n \"message\",\n \"session.status\"\n ],\n \"hmac\": {\n \"key\": \"your-secret-key\"\n },\n \"retries\": {\n \"delaySeconds\": 2,\n \"attempts\": 15,\n \"policy\": \"linear\"\n },\n \"customHeaders\": null\n }\n ]\n}", + "routing": { + "send": { + "property": "config", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "displayName": "GET /api/sessions/{session}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Get" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Get" + ] + } + } + }, + { + "displayName": "Expand", + "name": "expand", + "description": "Expand additional session details.", + "default": "[\n null\n]", + "type": "json", + "routing": { + "send": { + "type": "query", + "property": "expand", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Get" + ] + } + } + }, + { + "displayName": "PUT /api/sessions/{session}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "displayName": "Apps", + "name": "apps", + "type": "json", + "default": "[\n {\n \"enabled\": true\n }\n]", + "description": "Apps to be synchronized for this session.", + "routing": { + "send": { + "property": "apps", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "displayName": "Config", + "name": "config", + "type": "json", + "default": "{\n \"metadata\": {\n \"user.id\": \"123\",\n \"user.email\": \"email@example.com\"\n },\n \"proxy\": {\n \"server\": \"localhost:3128\",\n \"username\": null,\n \"password\": null\n },\n \"debug\": false,\n \"ignore\": {},\n \"client\": {},\n \"noweb\": {\n \"markOnline\": true,\n \"store\": {\n \"enabled\": true,\n \"fullSync\": false\n }\n },\n \"gows\": {\n \"storage\": {\n \"messages\": true,\n \"groups\": true,\n \"chats\": true,\n \"labels\": true\n }\n },\n \"webjs\": {\n \"tagsEventsOn\": false\n },\n \"webhooks\": [\n {\n \"url\": \"https://webhook.site/11111111-1111-1111-1111-11111111\",\n \"events\": [\n \"message\",\n \"session.status\"\n ],\n \"hmac\": {\n \"key\": \"your-secret-key\"\n },\n \"retries\": {\n \"delaySeconds\": 2,\n \"attempts\": 15,\n \"policy\": \"linear\"\n },\n \"customHeaders\": null\n }\n ]\n}", + "routing": { + "send": { + "property": "config", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "displayName": "DELETE /api/sessions/{session}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Delete" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Delete" + ] + } + } + }, + { + "displayName": "GET /api/sessions/{session}/me", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Get Me" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Get Me" + ] + } + } + }, + { + "displayName": "POST /api/sessions/{session}/start", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Start" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Start" + ] + } + } + }, + { + "displayName": "POST /api/sessions/{session}/stop", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Stop" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Stop" + ] + } + } + }, + { + "displayName": "POST /api/sessions/{session}/logout", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Logout" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Logout" + ] + } + } + }, + { + "displayName": "POST /api/sessions/{session}/restart", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Restart" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Sessions" + ], + "operation": [ + "Restart" + ] + } + } + }, + { + "displayName": "GET /api/{session}/profile", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Profile" + ], + "operation": [ + "Get My Profile" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Profile" + ], + "operation": [ + "Get My Profile" + ] + } + } + }, + { + "displayName": "PUT /api/{session}/profile/name", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Profile" + ], + "operation": [ + "Set Profile Name" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Profile" + ], + "operation": [ + "Set Profile Name" + ] + } + } + }, + { + "required": true, + "displayName": "Name", + "name": "name", + "type": "string", + "default": "My New Name", + "routing": { + "send": { + "property": "name", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Profile" + ], + "operation": [ + "Set Profile Name" + ] + } + } + }, + { + "displayName": "PUT /api/{session}/profile/status", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Profile" + ], + "operation": [ + "Set Profile Status" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Profile" + ], + "operation": [ + "Set Profile Status" + ] + } + } + }, + { + "required": true, + "displayName": "Status", + "name": "status", + "type": "string", + "default": "πŸŽ‰ Hey there! I am using WhatsApp πŸŽ‰", + "routing": { + "send": { + "property": "status", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Profile" + ], + "operation": [ + "Set Profile Status" + ] + } + } + }, + { + "displayName": "PUT /api/{session}/profile/picture", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Profile" + ], + "operation": [ + "Set Profile Picture" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Profile" + ], + "operation": [ + "Set Profile Picture" + ] + } + } + }, + { + "required": true, + "displayName": "File", + "name": "file", + "type": "json", + "default": "{\n \"mimetype\": \"image/jpeg\",\n \"filename\": \"filename.jpg\",\n \"url\": \"https://github.com/devlikeapro/waha/raw/core/examples/waha.jpg\"\n}", + "routing": { + "send": { + "property": "file", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Profile" + ], + "operation": [ + "Set Profile Picture" + ] + } + } + }, + { + "displayName": "DELETE /api/{session}/profile/picture", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Profile" + ], + "operation": [ + "Delete Profile Picture" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Profile" + ], + "operation": [ + "Delete Profile Picture" + ] + } + } + }, + { + "displayName": "POST /api/sendText", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Text" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Text" + ] + } + } + }, + { + "required": true, + "displayName": "Chat Id", + "name": "chatId", + "type": "string", + "default": "={{ $json.payload.from }}", + "routing": { + "send": { + "property": "chatId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Text" + ] + } + } + }, + { + "displayName": "Reply To", + "name": "reply_to", + "type": "string", + "default": "", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "routing": { + "send": { + "property": "reply_to", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Text" + ] + } + } + }, + { + "required": true, + "displayName": "Text", + "name": "text", + "type": "string", + "default": "Hi there!", + "routing": { + "send": { + "property": "text", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Text" + ] + } + } + }, + { + "displayName": "Link Preview", + "name": "linkPreview", + "type": "boolean", + "default": true, + "routing": { + "send": { + "property": "linkPreview", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Text" + ] + } + } + }, + { + "displayName": "Link Preview High Quality", + "name": "linkPreviewHighQuality", + "type": "boolean", + "default": false, + "routing": { + "send": { + "property": "linkPreviewHighQuality", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Text" + ] + } + } + }, + { + "displayName": "POST /api/sendImage", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Image" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Image" + ] + } + } + }, + { + "required": true, + "displayName": "Chat Id", + "name": "chatId", + "type": "string", + "default": "={{ $json.payload.from }}", + "routing": { + "send": { + "property": "chatId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Image" + ] + } + } + }, + { + "required": true, + "displayName": "File", + "name": "file", + "type": "json", + "default": "{\n \"mimetype\": \"image/jpeg\",\n \"filename\": \"filename.jpg\",\n \"url\": \"https://github.com/devlikeapro/waha/raw/core/examples/waha.jpg\"\n}", + "routing": { + "send": { + "property": "file", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Image" + ] + } + } + }, + { + "displayName": "Reply To", + "name": "reply_to", + "type": "string", + "default": "", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "routing": { + "send": { + "property": "reply_to", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Image" + ] + } + } + }, + { + "displayName": "Caption", + "name": "caption", + "type": "string", + "default": "", + "routing": { + "send": { + "property": "caption", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Image" + ] + } + } + }, + { + "displayName": "POST /api/sendFile", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send File" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send File" + ] + } + } + }, + { + "required": true, + "displayName": "Chat Id", + "name": "chatId", + "type": "string", + "default": "={{ $json.payload.from }}", + "routing": { + "send": { + "property": "chatId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send File" + ] + } + } + }, + { + "required": true, + "displayName": "File", + "name": "file", + "type": "json", + "default": "{\n \"mimetype\": \"image/jpeg\",\n \"filename\": \"filename.jpg\",\n \"url\": \"https://github.com/devlikeapro/waha/raw/core/examples/waha.jpg\"\n}", + "routing": { + "send": { + "property": "file", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send File" + ] + } + } + }, + { + "displayName": "Reply To", + "name": "reply_to", + "type": "string", + "default": "", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "routing": { + "send": { + "property": "reply_to", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send File" + ] + } + } + }, + { + "displayName": "Caption", + "name": "caption", + "type": "string", + "default": "", + "routing": { + "send": { + "property": "caption", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send File" + ] + } + } + }, + { + "displayName": "POST /api/sendVoice", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Voice" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Voice" + ] + } + } + }, + { + "required": true, + "displayName": "Chat Id", + "name": "chatId", + "type": "string", + "default": "={{ $json.payload.from }}", + "routing": { + "send": { + "property": "chatId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Voice" + ] + } + } + }, + { + "required": true, + "displayName": "File", + "name": "file", + "type": "json", + "default": "{\n \"mimetype\": \"audio/ogg; codecs=opus\",\n \"url\": \"https://github.com/devlikeapro/waha/raw/core/examples/dev.likeapro.opus\"\n}", + "routing": { + "send": { + "property": "file", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Voice" + ] + } + } + }, + { + "displayName": "Reply To", + "name": "reply_to", + "type": "string", + "default": "", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "routing": { + "send": { + "property": "reply_to", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Voice" + ] + } + } + }, + { + "required": true, + "displayName": "Convert", + "name": "convert", + "type": "boolean", + "default": true, + "description": "Convert the input file to the required format using ffmpeg before sending", + "routing": { + "send": { + "property": "convert", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Voice" + ] + } + } + }, + { + "displayName": "POST /api/sendVideo", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Video" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Video" + ] + } + } + }, + { + "required": true, + "displayName": "Chat Id", + "name": "chatId", + "type": "string", + "default": "={{ $json.payload.from }}", + "routing": { + "send": { + "property": "chatId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Video" + ] + } + } + }, + { + "required": true, + "displayName": "File", + "name": "file", + "type": "json", + "default": "{\n \"mimetype\": \"video/mp4\",\n \"filename\": \"video.mp4\",\n \"url\": \"https://github.com/devlikeapro/waha/raw/core/examples/video.mp4\"\n}", + "routing": { + "send": { + "property": "file", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Video" + ] + } + } + }, + { + "displayName": "Reply To", + "name": "reply_to", + "type": "string", + "default": "", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "routing": { + "send": { + "property": "reply_to", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Video" + ] + } + } + }, + { + "displayName": "As Note", + "name": "asNote", + "type": "boolean", + "default": false, + "description": "Send as video note (aka instant or round video).", + "routing": { + "send": { + "property": "asNote", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Video" + ] + } + } + }, + { + "required": true, + "displayName": "Convert", + "name": "convert", + "type": "boolean", + "default": true, + "description": "Convert the input file to the required format using ffmpeg before sending", + "routing": { + "send": { + "property": "convert", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Video" + ] + } + } + }, + { + "displayName": "Caption", + "name": "caption", + "type": "string", + "default": "Just watch at this!", + "routing": { + "send": { + "property": "caption", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Video" + ] + } + } + }, + { + "displayName": "POST /api/send/link-custom-preview", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Link Custom Preview" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Link Custom Preview" + ] + } + } + }, + { + "required": true, + "displayName": "Chat Id", + "name": "chatId", + "type": "string", + "default": "={{ $json.payload.from }}", + "routing": { + "send": { + "property": "chatId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Link Custom Preview" + ] + } + } + }, + { + "required": true, + "displayName": "Text", + "name": "text", + "type": "string", + "default": "Check this out! https://github.com/", + "description": "The text to send. MUST include the URL provided in preview.url", + "routing": { + "send": { + "property": "text", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Link Custom Preview" + ] + } + } + }, + { + "displayName": "Reply To", + "name": "reply_to", + "type": "string", + "default": "", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "routing": { + "send": { + "property": "reply_to", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Link Custom Preview" + ] + } + } + }, + { + "displayName": "Link Preview High Quality", + "name": "linkPreviewHighQuality", + "type": "boolean", + "default": true, + "routing": { + "send": { + "property": "linkPreviewHighQuality", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Link Custom Preview" + ] + } + } + }, + { + "required": true, + "displayName": "Preview", + "name": "preview", + "type": "json", + "default": "{\n \"image\": {\n \"url\": \"https://github.com/devlikeapro/waha/raw/core/examples/waha.jpg\"\n },\n \"url\": \"https://github.com/\",\n \"title\": \"Your Title\",\n \"description\": \"Check this out, amazing!\"\n}", + "routing": { + "send": { + "property": "preview", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Link Custom Preview" + ] + } + } + }, + { + "displayName": "POST /api/sendList", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send List" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send List" + ] + } + } + }, + { + "required": true, + "displayName": "Chat Id", + "name": "chatId", + "type": "string", + "default": "={{ $json.payload.from }}", + "routing": { + "send": { + "property": "chatId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send List" + ] + } + } + }, + { + "required": true, + "displayName": "Message", + "name": "message", + "type": "json", + "default": "{\n \"title\": \"Example List\",\n \"description\": \"Choose one of the options\",\n \"footer\": \"Footer note\",\n \"button\": \"Select\",\n \"sections\": [\n {\n \"title\": \"Section 1\",\n \"rows\": [\n {\n \"title\": \"Option 1\",\n \"rowId\": \"option1\",\n \"description\": \"Description 1\"\n },\n {\n \"title\": \"Option 2\",\n \"rowId\": \"option2\",\n \"description\": \"Description 2\"\n }\n ]\n }\n ]\n}", + "routing": { + "send": { + "property": "message", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send List" + ] + } + } + }, + { + "displayName": "Reply To", + "name": "reply_to", + "type": "string", + "default": "", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "routing": { + "send": { + "property": "reply_to", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send List" + ] + } + } + }, + { + "displayName": "POST /api/forwardMessage", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Forward Message" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Forward Message" + ] + } + } + }, + { + "required": true, + "displayName": "Chat Id", + "name": "chatId", + "type": "string", + "default": "={{ $json.payload.from }}", + "routing": { + "send": { + "property": "chatId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Forward Message" + ] + } + } + }, + { + "required": true, + "displayName": "Message Id", + "name": "messageId", + "type": "string", + "default": "={{ $json.payload.id }}", + "routing": { + "send": { + "property": "messageId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Forward Message" + ] + } + } + }, + { + "displayName": "POST /api/sendSeen", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Seen" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Seen" + ] + } + } + }, + { + "required": true, + "displayName": "Chat Id", + "name": "chatId", + "type": "string", + "default": "={{ $json.payload.from }}", + "routing": { + "send": { + "property": "chatId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Seen" + ] + } + } + }, + { + "displayName": "Message Id", + "name": "messageId", + "type": "string", + "default": "={{ $json.payload.id }}", + "routing": { + "send": { + "property": "messageId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Seen" + ] + } + } + }, + { + "displayName": "Message Ids", + "name": "messageIds", + "type": "json", + "default": "[\n \"false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA\"\n]", + "routing": { + "send": { + "property": "messageIds", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Seen" + ] + } + } + }, + { + "displayName": "Participant", + "name": "participant", + "type": "string", + "default": "11111111111@c.us", + "description": "NOWEB engine only - the ID of the user that sent the message (undefined for individual chats)", + "routing": { + "send": { + "property": "participant", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Seen" + ] + } + } + }, + { + "displayName": "POST /api/startTyping", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Start Typing" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Start Typing" + ] + } + } + }, + { + "required": true, + "displayName": "Chat Id", + "name": "chatId", + "type": "string", + "default": "={{ $json.payload.from }}", + "routing": { + "send": { + "property": "chatId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Start Typing" + ] + } + } + }, + { + "displayName": "POST /api/stopTyping", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Stop Typing" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Stop Typing" + ] + } + } + }, + { + "required": true, + "displayName": "Chat Id", + "name": "chatId", + "type": "string", + "default": "={{ $json.payload.from }}", + "routing": { + "send": { + "property": "chatId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Stop Typing" + ] + } + } + }, + { + "displayName": "PUT /api/reaction", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Set Reaction" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Set Reaction" + ] + } + } + }, + { + "required": true, + "displayName": "Message Id", + "name": "messageId", + "type": "string", + "default": "={{ $json.payload.id }}", + "routing": { + "send": { + "property": "messageId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Set Reaction" + ] + } + } + }, + { + "required": true, + "displayName": "Reaction", + "name": "reaction", + "type": "string", + "default": "πŸ‘", + "description": "Emoji to react with. Send an empty string to remove the reaction", + "routing": { + "send": { + "property": "reaction", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Set Reaction" + ] + } + } + }, + { + "displayName": "PUT /api/star", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Set Star" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Set Star" + ] + } + } + }, + { + "required": true, + "displayName": "Message Id", + "name": "messageId", + "type": "string", + "default": "={{ $json.payload.id }}", + "routing": { + "send": { + "property": "messageId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Set Star" + ] + } + } + }, + { + "required": true, + "displayName": "Chat Id", + "name": "chatId", + "type": "string", + "default": "={{ $json.payload.from }}", + "routing": { + "send": { + "property": "chatId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Set Star" + ] + } + } + }, + { + "required": true, + "displayName": "Star", + "name": "star", + "type": "boolean", + "default": true, + "routing": { + "send": { + "property": "star", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Set Star" + ] + } + } + }, + { + "displayName": "POST /api/sendPoll", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Poll" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Poll" + ] + } + } + }, + { + "required": true, + "displayName": "Chat Id", + "name": "chatId", + "type": "string", + "default": "={{ $json.payload.from }}", + "routing": { + "send": { + "property": "chatId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Poll" + ] + } + } + }, + { + "displayName": "Reply To", + "name": "reply_to", + "type": "string", + "default": "", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "routing": { + "send": { + "property": "reply_to", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Poll" + ] + } + } + }, + { + "required": true, + "displayName": "Poll", + "name": "poll", + "type": "json", + "default": "{\n \"name\": \"How are you?\",\n \"options\": [\n \"Awesome!\",\n \"Good!\",\n \"Not bad!\"\n ],\n \"multipleAnswers\": false\n}", + "routing": { + "send": { + "property": "poll", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Poll" + ] + } + } + }, + { + "displayName": "POST /api/sendPollVote", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Poll Vote" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Poll Vote" + ] + } + } + }, + { + "required": true, + "displayName": "Chat Id", + "name": "chatId", + "type": "string", + "default": "={{ $json.payload.from }}", + "routing": { + "send": { + "property": "chatId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Poll Vote" + ] + } + } + }, + { + "required": true, + "displayName": "Poll Message Id", + "name": "pollMessageId", + "type": "string", + "default": "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "description": "The ID of the poll message. Format: {fromMe}_{chatID}_{messageId}[_{participant}] or just ID for GOWS", + "routing": { + "send": { + "property": "pollMessageId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Poll Vote" + ] + } + } + }, + { + "displayName": "Poll Server Id", + "name": "pollServerId", + "type": "number", + "default": null, + "description": "Only for Channels - server message id (if known); if omitted, API may look it up in the storage", + "routing": { + "send": { + "property": "pollServerId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Poll Vote" + ] + } + } + }, + { + "required": true, + "displayName": "Votes", + "name": "votes", + "type": "json", + "default": "[\n \"Awesome!\"\n]", + "routing": { + "send": { + "property": "votes", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Poll Vote" + ] + } + } + }, + { + "displayName": "POST /api/sendLocation", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Location" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Location" + ] + } + } + }, + { + "required": true, + "displayName": "Chat Id", + "name": "chatId", + "type": "string", + "default": "={{ $json.payload.from }}", + "routing": { + "send": { + "property": "chatId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Location" + ] + } + } + }, + { + "required": true, + "displayName": "Latitude", + "name": "latitude", + "type": "number", + "default": 38.8937255, + "routing": { + "send": { + "property": "latitude", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Location" + ] + } + } + }, + { + "required": true, + "displayName": "Longitude", + "name": "longitude", + "type": "number", + "default": -77.0969763, + "routing": { + "send": { + "property": "longitude", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Location" + ] + } + } + }, + { + "required": true, + "displayName": "Title", + "name": "title", + "type": "string", + "default": "Our office", + "routing": { + "send": { + "property": "title", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Location" + ] + } + } + }, + { + "displayName": "Reply To", + "name": "reply_to", + "type": "string", + "default": "", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "routing": { + "send": { + "property": "reply_to", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Location" + ] + } + } + }, + { + "displayName": "POST /api/sendContactVcard", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Contact Vcard" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Contact Vcard" + ] + } + } + }, + { + "required": true, + "displayName": "Chat Id", + "name": "chatId", + "type": "string", + "default": "={{ $json.payload.from }}", + "routing": { + "send": { + "property": "chatId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Contact Vcard" + ] + } + } + }, + { + "required": true, + "displayName": "Contacts", + "name": "contacts", + "type": "json", + "default": "[\n {\n \"vcard\": \"BEGIN:VCARD\\nVERSION:3.0\\nFN:Jane Doe\\nORG:Company Name;\\nTEL;type=CELL;type=VOICE;waid=911111111111:+91 11111 11111\\nEND:VCARD\"\n }\n]", + "routing": { + "send": { + "property": "contacts", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Contact Vcard" + ] + } + } + }, + { + "displayName": "Reply To", + "name": "reply_to", + "type": "string", + "default": "", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "routing": { + "send": { + "property": "reply_to", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Contact Vcard" + ] + } + } + }, + { + "displayName": "POST /api/send/buttons/reply", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Buttons Reply" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Buttons Reply" + ] + } + } + }, + { + "required": true, + "displayName": "Chat Id", + "name": "chatId", + "type": "string", + "default": "={{ $json.payload.from }}", + "routing": { + "send": { + "property": "chatId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Buttons Reply" + ] + } + } + }, + { + "displayName": "Reply To", + "name": "replyTo", + "type": "string", + "default": null, + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "routing": { + "send": { + "property": "replyTo", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Buttons Reply" + ] + } + } + }, + { + "required": true, + "displayName": "Selected Display Text", + "name": "selectedDisplayText", + "type": "string", + "default": "", + "routing": { + "send": { + "property": "selectedDisplayText", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Buttons Reply" + ] + } + } + }, + { + "required": true, + "displayName": "Selected Button ID", + "name": "selectedButtonID", + "type": "string", + "default": "", + "routing": { + "send": { + "property": "selectedButtonID", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chatting" + ], + "operation": [ + "Send Buttons Reply" + ] + } + } + }, + { + "displayName": "GET /api/{session}/chats", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chats" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chats" + ] + } + } + }, + { + "displayName": "Sort By", + "name": "sortBy", + "description": "Sort by field", + "default": "conversationTimestamp", + "type": "options", + "options": [ + { + "name": "Conversation Timestamp", + "value": "conversationTimestamp" + }, + { + "name": "Id", + "value": "id" + }, + { + "name": "Name", + "value": "name" + } + ], + "routing": { + "send": { + "type": "query", + "property": "sortBy", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chats" + ] + } + } + }, + { + "displayName": "Sort Order", + "name": "sortOrder", + "description": "Sort order - descending (Z => A, New first) or ascending (A => Z, Old first)", + "default": "desc", + "type": "options", + "options": [ + { + "name": "Desc", + "value": "desc" + }, + { + "name": "Asc", + "value": "asc" + } + ], + "routing": { + "send": { + "type": "query", + "property": "sortOrder", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chats" + ] + } + } + }, + { + "displayName": "Limit", + "name": "limit", + "default": 0, + "type": "number", + "routing": { + "send": { + "type": "query", + "property": "limit", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chats" + ] + } + } + }, + { + "displayName": "Offset", + "name": "offset", + "default": 0, + "type": "number", + "routing": { + "send": { + "type": "query", + "property": "offset", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chats" + ] + } + } + }, + { + "displayName": "GET /api/{session}/chats/overview", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chats Overview" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chats Overview" + ] + } + } + }, + { + "displayName": "Limit", + "name": "limit", + "default": 20, + "type": "number", + "routing": { + "send": { + "type": "query", + "property": "limit", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chats Overview" + ] + } + } + }, + { + "displayName": "Offset", + "name": "offset", + "default": 0, + "type": "number", + "routing": { + "send": { + "type": "query", + "property": "offset", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chats Overview" + ] + } + } + }, + { + "displayName": "Ids", + "name": "ids", + "description": "Filter by chat ids", + "default": "[\n \"111111111@c.us\"\n]", + "type": "json", + "routing": { + "send": { + "type": "query", + "property": "ids", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chats Overview" + ] + } + } + }, + { + "displayName": "POST /api/{session}/chats/overview", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Post Chats Overview" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Post Chats Overview" + ] + } + } + }, + { + "required": true, + "displayName": "Pagination", + "name": "pagination", + "type": "json", + "default": "{\n \"limit\": 20\n}", + "routing": { + "send": { + "property": "pagination", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Post Chats Overview" + ] + } + } + }, + { + "required": true, + "displayName": "Filter", + "name": "filter", + "type": "json", + "default": "{\n \"ids\": [\n \"111111111@c.us\"\n ]\n}", + "routing": { + "send": { + "property": "filter", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Post Chats Overview" + ] + } + } + }, + { + "displayName": "DELETE /api/{session}/chats/{chatId}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Delete Chat" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Delete Chat" + ] + } + } + }, + { + "displayName": "Chat Id", + "name": "chatId", + "required": true, + "description": "Chat ID", + "default": "={{ $json.payload.from }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Delete Chat" + ] + } + } + }, + { + "displayName": "GET /api/{session}/chats/{chatId}/picture", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Picture" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Picture" + ] + } + } + }, + { + "displayName": "Chat Id", + "name": "chatId", + "required": true, + "default": "={{ $json.payload.from }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Picture" + ] + } + } + }, + { + "displayName": "Refresh", + "name": "refresh", + "description": "Refresh the picture from the server (24h cache by default). Do not refresh if not needed, you can get rate limit error", + "default": false, + "type": "boolean", + "routing": { + "send": { + "type": "query", + "property": "refresh", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Picture" + ] + } + } + }, + { + "displayName": "GET /api/{session}/chats/{chatId}/messages", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Messages" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Messages" + ] + } + } + }, + { + "displayName": "Sort By", + "name": "sortBy", + "description": "Sort by field", + "default": "timestamp", + "type": "options", + "options": [ + { + "name": "Timestamp", + "value": "timestamp" + }, + { + "name": "Message Timestamp", + "value": "messageTimestamp" + } + ], + "routing": { + "send": { + "type": "query", + "property": "sortBy", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Messages" + ] + } + } + }, + { + "displayName": "Sort Order", + "name": "sortOrder", + "description": "Sort order - descending (Z => A, New first) or ascending (A => Z, Old first)", + "default": "desc", + "type": "options", + "options": [ + { + "name": "Desc", + "value": "desc" + }, + { + "name": "Asc", + "value": "asc" + } + ], + "routing": { + "send": { + "type": "query", + "property": "sortOrder", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Messages" + ] + } + } + }, + { + "displayName": "Download Media", + "name": "downloadMedia", + "description": "Download media for messages", + "default": false, + "type": "boolean", + "routing": { + "send": { + "type": "query", + "property": "downloadMedia", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Messages" + ] + } + } + }, + { + "displayName": "Limit", + "name": "limit", + "required": true, + "default": 10, + "type": "number", + "routing": { + "send": { + "type": "query", + "property": "limit", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Messages" + ] + } + } + }, + { + "displayName": "Offset", + "name": "offset", + "default": 0, + "type": "number", + "routing": { + "send": { + "type": "query", + "property": "offset", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Messages" + ] + } + } + }, + { + "displayName": "Filter Timestamp Lte", + "name": "filter-timestamp-lte", + "description": "Filter messages before this timestamp (inclusive)", + "default": 0, + "type": "number", + "routing": { + "send": { + "type": "query", + "property": "filter.timestamp.lte", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Messages" + ] + } + } + }, + { + "displayName": "Filter Timestamp Gte", + "name": "filter-timestamp-gte", + "description": "Filter messages after this timestamp (inclusive)", + "default": 0, + "type": "number", + "routing": { + "send": { + "type": "query", + "property": "filter.timestamp.gte", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Messages" + ] + } + } + }, + { + "displayName": "Filter From Me", + "name": "filter-fromMe", + "description": "From me filter (by default shows all messages)", + "default": true, + "type": "boolean", + "routing": { + "send": { + "type": "query", + "property": "filter.fromMe", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Messages" + ] + } + } + }, + { + "displayName": "Filter Ack", + "name": "filter-ack", + "description": "Filter messages by acknowledgment status", + "default": "ERROR", + "type": "options", + "options": [ + { + "name": "ERROR", + "value": "ERROR" + }, + { + "name": "PENDING", + "value": "PENDING" + }, + { + "name": "SERVER", + "value": "SERVER" + }, + { + "name": "DEVICE", + "value": "DEVICE" + }, + { + "name": "READ", + "value": "READ" + }, + { + "name": "PLAYED", + "value": "PLAYED" + } + ], + "routing": { + "send": { + "type": "query", + "property": "filter.ack", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Messages" + ] + } + } + }, + { + "displayName": "Chat Id", + "name": "chatId", + "required": true, + "description": "Chat ID", + "default": "={{ $json.payload.from }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Messages" + ] + } + } + }, + { + "displayName": "DELETE /api/{session}/chats/{chatId}/messages", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Clear Messages" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Clear Messages" + ] + } + } + }, + { + "displayName": "Chat Id", + "name": "chatId", + "required": true, + "description": "Chat ID", + "default": "={{ $json.payload.from }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Clear Messages" + ] + } + } + }, + { + "displayName": "POST /api/{session}/chats/{chatId}/messages/read", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Read Chat Messages" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Read Chat Messages" + ] + } + } + }, + { + "displayName": "Messages", + "name": "messages", + "description": "How much messages to read (latest first)", + "default": 30, + "type": "number", + "routing": { + "send": { + "type": "query", + "property": "messages", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Read Chat Messages" + ] + } + } + }, + { + "displayName": "Days", + "name": "days", + "description": "How much days to read (latest first)", + "default": 7, + "type": "number", + "routing": { + "send": { + "type": "query", + "property": "days", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Read Chat Messages" + ] + } + } + }, + { + "displayName": "Chat Id", + "name": "chatId", + "required": true, + "description": "Chat ID", + "default": "={{ $json.payload.from }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Read Chat Messages" + ] + } + } + }, + { + "displayName": "GET /api/{session}/chats/{chatId}/messages/{messageId}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Message" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Message" + ] + } + } + }, + { + "displayName": "Download Media", + "name": "downloadMedia", + "description": "Download media for messages", + "default": true, + "type": "boolean", + "routing": { + "send": { + "type": "query", + "property": "downloadMedia", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Message" + ] + } + } + }, + { + "displayName": "Chat Id", + "name": "chatId", + "required": true, + "description": "Chat ID", + "default": "={{ $json.payload.from }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Message" + ] + } + } + }, + { + "displayName": "Message Id", + "name": "messageId", + "required": true, + "default": "={{ $json.payload.id }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Get Chat Message" + ] + } + } + }, + { + "displayName": "DELETE /api/{session}/chats/{chatId}/messages/{messageId}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Delete Message" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Delete Message" + ] + } + } + }, + { + "displayName": "Chat Id", + "name": "chatId", + "required": true, + "description": "Chat ID", + "default": "={{ $json.payload.from }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Delete Message" + ] + } + } + }, + { + "displayName": "Message Id", + "name": "messageId", + "required": true, + "description": "Message ID in format {fromMe}_{chat}_{message_id}[_{participant}]", + "default": "={{ $json.payload.id }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Delete Message" + ] + } + } + }, + { + "displayName": "PUT /api/{session}/chats/{chatId}/messages/{messageId}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Edit Message" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Edit Message" + ] + } + } + }, + { + "displayName": "Chat Id", + "name": "chatId", + "required": true, + "description": "Chat ID", + "default": "={{ $json.payload.from }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Edit Message" + ] + } + } + }, + { + "displayName": "Message Id", + "name": "messageId", + "required": true, + "description": "Message ID in format {fromMe}_{chat}_{message_id}[_{participant}]", + "default": "={{ $json.payload.id }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Edit Message" + ] + } + } + }, + { + "required": true, + "displayName": "Text", + "name": "text", + "type": "string", + "default": "Hello, world!", + "routing": { + "send": { + "property": "text", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Edit Message" + ] + } + } + }, + { + "displayName": "Link Preview", + "name": "linkPreview", + "type": "boolean", + "default": true, + "routing": { + "send": { + "property": "linkPreview", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Edit Message" + ] + } + } + }, + { + "displayName": "Link Preview High Quality", + "name": "linkPreviewHighQuality", + "type": "boolean", + "default": false, + "routing": { + "send": { + "property": "linkPreviewHighQuality", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Edit Message" + ] + } + } + }, + { + "displayName": "POST /api/{session}/chats/{chatId}/messages/{messageId}/pin", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Pin Message" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Pin Message" + ] + } + } + }, + { + "displayName": "Chat Id", + "name": "chatId", + "required": true, + "description": "Chat ID", + "default": "={{ $json.payload.from }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Pin Message" + ] + } + } + }, + { + "displayName": "Message Id", + "name": "messageId", + "required": true, + "default": "={{ $json.payload.id }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Pin Message" + ] + } + } + }, + { + "required": true, + "displayName": "Duration", + "name": "duration", + "type": "number", + "default": 86400, + "description": "Duration in seconds. 24 hours (86400), 7 days (604800), 30 days (2592000)", + "routing": { + "send": { + "property": "duration", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Pin Message" + ] + } + } + }, + { + "displayName": "POST /api/{session}/chats/{chatId}/messages/{messageId}/unpin", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Unpin Message" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Unpin Message" + ] + } + } + }, + { + "displayName": "Chat Id", + "name": "chatId", + "required": true, + "description": "Chat ID", + "default": "={{ $json.payload.from }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Unpin Message" + ] + } + } + }, + { + "displayName": "Message Id", + "name": "messageId", + "required": true, + "default": "={{ $json.payload.id }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Unpin Message" + ] + } + } + }, + { + "displayName": "POST /api/{session}/chats/{chatId}/archive", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Archive Chat" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Archive Chat" + ] + } + } + }, + { + "displayName": "Chat Id", + "name": "chatId", + "required": true, + "description": "Chat ID", + "default": "={{ $json.payload.from }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Archive Chat" + ] + } + } + }, + { + "displayName": "POST /api/{session}/chats/{chatId}/unarchive", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Unarchive Chat" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Unarchive Chat" + ] + } + } + }, + { + "displayName": "Chat Id", + "name": "chatId", + "required": true, + "description": "Chat ID", + "default": "={{ $json.payload.from }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Unarchive Chat" + ] + } + } + }, + { + "displayName": "POST /api/{session}/chats/{chatId}/unread", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Unread Chat" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Unread Chat" + ] + } + } + }, + { + "displayName": "Chat Id", + "name": "chatId", + "required": true, + "description": "Chat ID", + "default": "={{ $json.payload.from }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Chats" + ], + "operation": [ + "Unread Chat" + ] + } + } + }, + { + "displayName": "POST /api/{session}/calls/reject", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Calls" + ], + "operation": [ + "Reject Call" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Calls" + ], + "operation": [ + "Reject Call" + ] + } + } + }, + { + "required": true, + "displayName": "From", + "name": "from", + "type": "string", + "default": "11111111111@c.us", + "routing": { + "send": { + "property": "from", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Calls" + ], + "operation": [ + "Reject Call" + ] + } + } + }, + { + "required": true, + "displayName": "Id", + "name": "id", + "type": "string", + "default": "ABCDEFGABCDEFGABCDEFGABCDEFG", + "description": "Call ID", + "routing": { + "send": { + "property": "id", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Calls" + ], + "operation": [ + "Reject Call" + ] + } + } + }, + { + "displayName": "GET /api/{session}/channels", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "List" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "List" + ] + } + } + }, + { + "displayName": "Role", + "name": "role", + "default": "OWNER", + "type": "options", + "options": [ + { + "name": "OWNER", + "value": "OWNER" + }, + { + "name": "ADMIN", + "value": "ADMIN" + }, + { + "name": "SUBSCRIBER", + "value": "SUBSCRIBER" + } + ], + "routing": { + "send": { + "type": "query", + "property": "role", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "List" + ] + } + } + }, + { + "displayName": "POST /api/{session}/channels", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "required": true, + "displayName": "Name", + "name": "name", + "type": "string", + "default": "Channel Name", + "routing": { + "send": { + "property": "name", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "displayName": "Description", + "name": "description", + "type": "string", + "default": "Channel Description", + "routing": { + "send": { + "property": "description", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "displayName": "Picture", + "name": "picture", + "type": "json", + "default": "{\n \"mimetype\": \"image/jpeg\",\n \"filename\": \"filename.jpg\",\n \"url\": \"https://github.com/devlikeapro/waha/raw/core/examples/waha.jpg\"\n}", + "routing": { + "send": { + "property": "picture", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "displayName": "DELETE /api/{session}/channels/{id}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Delete" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Delete" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "WhatsApp Channel ID", + "default": "123123123@newsletter", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Delete" + ] + } + } + }, + { + "displayName": "GET /api/{session}/channels/{id}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Get" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Get" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "WhatsApp Channel ID or invite code from invite link https://www.whatsapp.com/channel/11111", + "default": "123123123@newsletter", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Get" + ] + } + } + }, + { + "displayName": "GET /api/{session}/channels/{id}/messages/preview", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Preview Channel Messages" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Preview Channel Messages" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Channel id or invite code", + "default": "0029Va4K0PZ5a245NkngBA2M", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Preview Channel Messages" + ] + } + } + }, + { + "displayName": "Download Media", + "name": "downloadMedia", + "required": true, + "default": false, + "type": "boolean", + "routing": { + "send": { + "type": "query", + "property": "downloadMedia", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Preview Channel Messages" + ] + } + } + }, + { + "displayName": "Limit", + "name": "limit", + "required": true, + "default": 10, + "type": "number", + "routing": { + "send": { + "type": "query", + "property": "limit", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Preview Channel Messages" + ] + } + } + }, + { + "displayName": "POST /api/{session}/channels/{id}/follow", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Follow" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Follow" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "WhatsApp Channel ID", + "default": "123123123@newsletter", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Follow" + ] + } + } + }, + { + "displayName": "POST /api/{session}/channels/{id}/unfollow", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Unfollow" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Unfollow" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "WhatsApp Channel ID", + "default": "123123123@newsletter", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Unfollow" + ] + } + } + }, + { + "displayName": "POST /api/{session}/channels/{id}/mute", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Mute" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Mute" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "WhatsApp Channel ID", + "default": "123123123@newsletter", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Mute" + ] + } + } + }, + { + "displayName": "POST /api/{session}/channels/{id}/unmute", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Unmute" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Unmute" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "WhatsApp Channel ID", + "default": "123123123@newsletter", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Unmute" + ] + } + } + }, + { + "displayName": "POST /api/{session}/channels/search/by-view", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Search By View" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Search By View" + ] + } + } + }, + { + "required": true, + "displayName": "View", + "name": "view", + "type": "string", + "default": "RECOMMENDED", + "routing": { + "send": { + "property": "view", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Search By View" + ] + } + } + }, + { + "required": true, + "displayName": "Countries", + "name": "countries", + "type": "json", + "default": "[\n \"US\"\n]", + "routing": { + "send": { + "property": "countries", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Search By View" + ] + } + } + }, + { + "required": true, + "displayName": "Categories", + "name": "categories", + "type": "json", + "default": "[]", + "routing": { + "send": { + "property": "categories", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Search By View" + ] + } + } + }, + { + "required": true, + "displayName": "Limit", + "name": "limit", + "type": "number", + "default": 50, + "routing": { + "send": { + "property": "limit", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Search By View" + ] + } + } + }, + { + "required": true, + "displayName": "Start Cursor", + "name": "startCursor", + "type": "string", + "default": "", + "routing": { + "send": { + "property": "startCursor", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Search By View" + ] + } + } + }, + { + "displayName": "POST /api/{session}/channels/search/by-text", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Search By Text" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Search By Text" + ] + } + } + }, + { + "required": true, + "displayName": "Text", + "name": "text", + "type": "string", + "default": "Donald Trump", + "routing": { + "send": { + "property": "text", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Search By Text" + ] + } + } + }, + { + "required": true, + "displayName": "Categories", + "name": "categories", + "type": "json", + "default": "[]", + "routing": { + "send": { + "property": "categories", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Search By Text" + ] + } + } + }, + { + "required": true, + "displayName": "Limit", + "name": "limit", + "type": "number", + "default": 50, + "routing": { + "send": { + "property": "limit", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Search By Text" + ] + } + } + }, + { + "required": true, + "displayName": "Start Cursor", + "name": "startCursor", + "type": "string", + "default": "", + "routing": { + "send": { + "property": "startCursor", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Search By Text" + ] + } + } + }, + { + "displayName": "GET /api/{session}/channels/search/views", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Get Search Views" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Get Search Views" + ] + } + } + }, + { + "displayName": "GET /api/{session}/channels/search/countries", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Get Search Countries" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Get Search Countries" + ] + } + } + }, + { + "displayName": "GET /api/{session}/channels/search/categories", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Get Search Categories" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Channels" + ], + "operation": [ + "Get Search Categories" + ] + } + } + }, + { + "displayName": "POST /api/{session}/status/text", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Text Status" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Text Status" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "type": "string", + "default": "BBBBBBBBBBBBBBBBB", + "description": "Pre-generated status message id", + "routing": { + "send": { + "property": "id", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Text Status" + ] + } + } + }, + { + "displayName": "Contacts", + "name": "contacts", + "type": "json", + "default": "null", + "description": "Contact list to send the status to.", + "routing": { + "send": { + "property": "contacts", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Text Status" + ] + } + } + }, + { + "required": true, + "displayName": "Text", + "name": "text", + "type": "string", + "default": "Have a look! https://github.com/", + "routing": { + "send": { + "property": "text", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Text Status" + ] + } + } + }, + { + "required": true, + "displayName": "Background Color", + "name": "backgroundColor", + "type": "string", + "default": "#38b42f", + "routing": { + "send": { + "property": "backgroundColor", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Text Status" + ] + } + } + }, + { + "required": true, + "displayName": "Font", + "name": "font", + "type": "number", + "default": 0, + "routing": { + "send": { + "property": "font", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Text Status" + ] + } + } + }, + { + "displayName": "Link Preview", + "name": "linkPreview", + "type": "boolean", + "default": true, + "routing": { + "send": { + "property": "linkPreview", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Text Status" + ] + } + } + }, + { + "displayName": "Link Preview High Quality", + "name": "linkPreviewHighQuality", + "type": "boolean", + "default": false, + "routing": { + "send": { + "property": "linkPreviewHighQuality", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Text Status" + ] + } + } + }, + { + "displayName": "POST /api/{session}/status/image", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Image Status" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Image Status" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "type": "string", + "default": "BBBBBBBBBBBBBBBBB", + "description": "Pre-generated status message id", + "routing": { + "send": { + "property": "id", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Image Status" + ] + } + } + }, + { + "displayName": "Contacts", + "name": "contacts", + "type": "json", + "default": "null", + "description": "Contact list to send the status to.", + "routing": { + "send": { + "property": "contacts", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Image Status" + ] + } + } + }, + { + "required": true, + "displayName": "File", + "name": "file", + "type": "json", + "default": "{\n \"mimetype\": \"image/jpeg\",\n \"filename\": \"filename.jpg\",\n \"url\": \"https://github.com/devlikeapro/waha/raw/core/examples/waha.jpg\"\n}", + "routing": { + "send": { + "property": "file", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Image Status" + ] + } + } + }, + { + "displayName": "Caption", + "name": "caption", + "type": "string", + "default": "", + "routing": { + "send": { + "property": "caption", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Image Status" + ] + } + } + }, + { + "displayName": "POST /api/{session}/status/voice", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Voice Status" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Voice Status" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "type": "string", + "default": "BBBBBBBBBBBBBBBBB", + "description": "Pre-generated status message id", + "routing": { + "send": { + "property": "id", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Voice Status" + ] + } + } + }, + { + "displayName": "Contacts", + "name": "contacts", + "type": "json", + "default": "null", + "description": "Contact list to send the status to.", + "routing": { + "send": { + "property": "contacts", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Voice Status" + ] + } + } + }, + { + "required": true, + "displayName": "File", + "name": "file", + "type": "json", + "default": "{\n \"mimetype\": \"audio/ogg; codecs=opus\",\n \"url\": \"https://github.com/devlikeapro/waha/raw/core/examples/dev.likeapro.opus\"\n}", + "routing": { + "send": { + "property": "file", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Voice Status" + ] + } + } + }, + { + "required": true, + "displayName": "Convert", + "name": "convert", + "type": "boolean", + "default": true, + "description": "Convert the input file to the required format using ffmpeg before sending", + "routing": { + "send": { + "property": "convert", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Voice Status" + ] + } + } + }, + { + "required": true, + "displayName": "Background Color", + "name": "backgroundColor", + "type": "string", + "default": "#38b42f", + "routing": { + "send": { + "property": "backgroundColor", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Voice Status" + ] + } + } + }, + { + "displayName": "POST /api/{session}/status/video", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Video Status" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Video Status" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "type": "string", + "default": "BBBBBBBBBBBBBBBBB", + "description": "Pre-generated status message id", + "routing": { + "send": { + "property": "id", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Video Status" + ] + } + } + }, + { + "displayName": "Contacts", + "name": "contacts", + "type": "json", + "default": "null", + "description": "Contact list to send the status to.", + "routing": { + "send": { + "property": "contacts", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Video Status" + ] + } + } + }, + { + "required": true, + "displayName": "File", + "name": "file", + "type": "json", + "default": "{\n \"mimetype\": \"video/mp4\",\n \"filename\": \"video.mp4\",\n \"url\": \"https://github.com/devlikeapro/waha/raw/core/examples/video.mp4\"\n}", + "routing": { + "send": { + "property": "file", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Video Status" + ] + } + } + }, + { + "required": true, + "displayName": "Convert", + "name": "convert", + "type": "boolean", + "default": true, + "description": "Convert the input file to the required format using ffmpeg before sending", + "routing": { + "send": { + "property": "convert", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Video Status" + ] + } + } + }, + { + "displayName": "Caption", + "name": "caption", + "type": "string", + "default": "", + "routing": { + "send": { + "property": "caption", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Send Video Status" + ] + } + } + }, + { + "displayName": "POST /api/{session}/status/delete", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Delete Status" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Delete Status" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "type": "string", + "default": "AAAAAAAAAAAAAAAAA", + "description": "Status message id to delete", + "routing": { + "send": { + "property": "id", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Delete Status" + ] + } + } + }, + { + "displayName": "Contacts", + "name": "contacts", + "type": "json", + "default": "null", + "description": "Contact list to send the status to.", + "routing": { + "send": { + "property": "contacts", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Delete Status" + ] + } + } + }, + { + "displayName": "GET /api/{session}/status/new-message-id", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Get New Message Id" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Status" + ], + "operation": [ + "Get New Message Id" + ] + } + } + }, + { + "displayName": "GET /api/{session}/labels", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Get All" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Get All" + ] + } + } + }, + { + "displayName": "POST /api/{session}/labels", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "required": true, + "displayName": "Name", + "name": "name", + "type": "string", + "default": "Lead", + "description": "Label name", + "routing": { + "send": { + "property": "name", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "displayName": "Color Hex", + "name": "colorHex", + "type": "string", + "default": "#ff9485", + "description": "Color in hex", + "routing": { + "send": { + "property": "colorHex", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "displayName": "Color", + "name": "color", + "type": "number", + "default": null, + "description": "Color number, not hex", + "routing": { + "send": { + "property": "color", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "displayName": "PUT /api/{session}/labels/{labelId}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "displayName": "Label Id", + "name": "labelId", + "required": true, + "default": "", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "required": true, + "displayName": "Name", + "name": "name", + "type": "string", + "default": "Lead", + "description": "Label name", + "routing": { + "send": { + "property": "name", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "displayName": "Color Hex", + "name": "colorHex", + "type": "string", + "default": "#ff9485", + "description": "Color in hex", + "routing": { + "send": { + "property": "colorHex", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "displayName": "Color", + "name": "color", + "type": "number", + "default": null, + "description": "Color number, not hex", + "routing": { + "send": { + "property": "color", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "displayName": "DELETE /api/{session}/labels/{labelId}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Delete" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Delete" + ] + } + } + }, + { + "displayName": "Label Id", + "name": "labelId", + "required": true, + "default": "", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Delete" + ] + } + } + }, + { + "displayName": "GET /api/{session}/labels/chats/{chatId}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Get Chat Labels" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Get Chat Labels" + ] + } + } + }, + { + "displayName": "Chat Id", + "name": "chatId", + "required": true, + "description": "Chat ID", + "default": "={{ $json.payload.from }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Get Chat Labels" + ] + } + } + }, + { + "displayName": "PUT /api/{session}/labels/chats/{chatId}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Put Chat Labels" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Put Chat Labels" + ] + } + } + }, + { + "displayName": "Chat Id", + "name": "chatId", + "required": true, + "description": "Chat ID", + "default": "={{ $json.payload.from }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Put Chat Labels" + ] + } + } + }, + { + "required": true, + "displayName": "Labels", + "name": "labels", + "type": "json", + "default": "[\n {\n \"id\": \"1\"\n }\n]", + "routing": { + "send": { + "property": "labels", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Put Chat Labels" + ] + } + } + }, + { + "displayName": "GET /api/{session}/labels/{labelId}/chats", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Get Chats By Label" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Get Chats By Label" + ] + } + } + }, + { + "displayName": "Label Id", + "name": "labelId", + "required": true, + "default": "", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Labels" + ], + "operation": [ + "Get Chats By Label" + ] + } + } + }, + { + "displayName": "GET /api/contacts/all", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Get All" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "default": "={{ $json.session }}", + "type": "string", + "routing": { + "send": { + "type": "query", + "property": "session", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Get All" + ] + } + } + }, + { + "displayName": "Sort By", + "name": "sortBy", + "description": "Sort by field", + "default": "id", + "type": "options", + "options": [ + { + "name": "Id", + "value": "id" + }, + { + "name": "Name", + "value": "name" + } + ], + "routing": { + "send": { + "type": "query", + "property": "sortBy", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Get All" + ] + } + } + }, + { + "displayName": "Sort Order", + "name": "sortOrder", + "description": "Sort order - descending (Z => A, New first) or ascending (A => Z, Old first)", + "default": "desc", + "type": "options", + "options": [ + { + "name": "Desc", + "value": "desc" + }, + { + "name": "Asc", + "value": "asc" + } + ], + "routing": { + "send": { + "type": "query", + "property": "sortOrder", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Get All" + ] + } + } + }, + { + "displayName": "Limit", + "name": "limit", + "default": 0, + "type": "number", + "routing": { + "send": { + "type": "query", + "property": "limit", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Get All" + ] + } + } + }, + { + "displayName": "Offset", + "name": "offset", + "default": 0, + "type": "number", + "routing": { + "send": { + "type": "query", + "property": "offset", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Get All" + ] + } + } + }, + { + "displayName": "GET /api/contacts", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Get" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "default": "={{ $json.session }}", + "type": "string", + "routing": { + "send": { + "type": "query", + "property": "session", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Get" + ] + } + } + }, + { + "displayName": "Contact Id", + "name": "contactId", + "required": true, + "default": "11111111111@c.us", + "type": "string", + "routing": { + "send": { + "type": "query", + "property": "contactId", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Get" + ] + } + } + }, + { + "displayName": "GET /api/contacts/check-exists", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Check Exists" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "default": "={{ $json.session }}", + "type": "string", + "routing": { + "send": { + "type": "query", + "property": "session", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Check Exists" + ] + } + } + }, + { + "displayName": "Phone", + "name": "phone", + "required": true, + "description": "The phone number to check", + "default": "1213213213", + "type": "string", + "routing": { + "send": { + "type": "query", + "property": "phone", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Check Exists" + ] + } + } + }, + { + "displayName": "GET /api/contacts/about", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Get About" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "default": "={{ $json.session }}", + "type": "string", + "routing": { + "send": { + "type": "query", + "property": "session", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Get About" + ] + } + } + }, + { + "displayName": "Contact Id", + "name": "contactId", + "required": true, + "default": "11111111111@c.us", + "type": "string", + "routing": { + "send": { + "type": "query", + "property": "contactId", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Get About" + ] + } + } + }, + { + "displayName": "GET /api/contacts/profile-picture", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Get Profile Picture" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "default": "={{ $json.session }}", + "type": "string", + "routing": { + "send": { + "type": "query", + "property": "session", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Get Profile Picture" + ] + } + } + }, + { + "displayName": "Contact Id", + "name": "contactId", + "required": true, + "default": "11111111111@c.us", + "type": "string", + "routing": { + "send": { + "type": "query", + "property": "contactId", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Get Profile Picture" + ] + } + } + }, + { + "displayName": "Refresh", + "name": "refresh", + "description": "Refresh the picture from the server (24h cache by default). Do not refresh if not needed, you can get rate limit error", + "default": false, + "type": "boolean", + "routing": { + "send": { + "type": "query", + "property": "refresh", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Get Profile Picture" + ] + } + } + }, + { + "displayName": "POST /api/contacts/block", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Block" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Block" + ] + } + } + }, + { + "required": true, + "displayName": "Contact Id", + "name": "contactId", + "type": "string", + "default": "11111111111@c.us", + "routing": { + "send": { + "property": "contactId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Block" + ] + } + } + }, + { + "displayName": "POST /api/contacts/unblock", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Unblock" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Unblock" + ] + } + } + }, + { + "required": true, + "displayName": "Contact Id", + "name": "contactId", + "type": "string", + "default": "11111111111@c.us", + "routing": { + "send": { + "property": "contactId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Unblock" + ] + } + } + }, + { + "displayName": "PUT /api/{session}/contacts/{chatId}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Put" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Put" + ] + } + } + }, + { + "displayName": "Chat Id", + "name": "chatId", + "required": true, + "description": "Chat ID", + "default": "={{ $json.payload.from }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Put" + ] + } + } + }, + { + "required": true, + "displayName": "First Name", + "name": "firstName", + "type": "string", + "default": "John", + "description": "Contact First Name", + "routing": { + "send": { + "property": "firstName", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Put" + ] + } + } + }, + { + "required": true, + "displayName": "Last Name", + "name": "lastName", + "type": "string", + "default": "Doe", + "description": "Contact Last Name", + "routing": { + "send": { + "property": "lastName", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Put" + ] + } + } + }, + { + "displayName": "GET /api/{session}/lids/count", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Get Lids Count" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Get Lids Count" + ] + } + } + }, + { + "displayName": "GET /api/{session}/lids/{lid}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Find PN By Lid" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Find PN By Lid" + ] + } + } + }, + { + "displayName": "Lid", + "name": "lid", + "required": true, + "default": "", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Find PN By Lid" + ] + } + } + }, + { + "displayName": "GET /api/{session}/lids/pn/{phoneNumber}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Find LID By Phone Number" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Find LID By Phone Number" + ] + } + } + }, + { + "displayName": "Phone Number", + "name": "phoneNumber", + "required": true, + "default": "", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Contacts" + ], + "operation": [ + "Find LID By Phone Number" + ] + } + } + }, + { + "displayName": "POST /api/{session}/groups", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Create Group" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Create Group" + ] + } + } + }, + { + "required": true, + "displayName": "Name", + "name": "name", + "type": "string", + "default": "", + "routing": { + "send": { + "property": "name", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Create Group" + ] + } + } + }, + { + "required": true, + "displayName": "Participants", + "name": "participants", + "type": "json", + "default": "[\n {\n \"id\": \"123456789@c.us\"\n }\n]", + "routing": { + "send": { + "property": "participants", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Create Group" + ] + } + } + }, + { + "displayName": "GET /api/{session}/groups", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Groups" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Groups" + ] + } + } + }, + { + "displayName": "Sort By", + "name": "sortBy", + "description": "Sort by field", + "default": "id", + "type": "options", + "options": [ + { + "name": "Id", + "value": "id" + }, + { + "name": "Subject", + "value": "subject" + } + ], + "routing": { + "send": { + "type": "query", + "property": "sortBy", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Groups" + ] + } + } + }, + { + "displayName": "Sort Order", + "name": "sortOrder", + "description": "Sort order - descending (Z => A, New first) or ascending (A => Z, Old first)", + "default": "desc", + "type": "options", + "options": [ + { + "name": "Desc", + "value": "desc" + }, + { + "name": "Asc", + "value": "asc" + } + ], + "routing": { + "send": { + "type": "query", + "property": "sortOrder", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Groups" + ] + } + } + }, + { + "displayName": "Limit", + "name": "limit", + "default": 0, + "type": "number", + "routing": { + "send": { + "type": "query", + "property": "limit", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Groups" + ] + } + } + }, + { + "displayName": "Offset", + "name": "offset", + "default": 0, + "type": "number", + "routing": { + "send": { + "type": "query", + "property": "offset", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Groups" + ] + } + } + }, + { + "displayName": "Exclude", + "name": "exclude", + "description": "Exclude fields", + "default": "[\n null\n]", + "type": "json", + "routing": { + "send": { + "type": "query", + "property": "exclude", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Groups" + ] + } + } + }, + { + "displayName": "GET /api/{session}/groups/join-info", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Join Info Group" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Join Info Group" + ] + } + } + }, + { + "displayName": "Code", + "name": "code", + "required": true, + "description": "Group code (123) or url (https://chat.whatsapp.com/123)", + "default": "https://chat.whatsapp.com/1234567890abcdef", + "type": "string", + "routing": { + "send": { + "type": "query", + "property": "code", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Join Info Group" + ] + } + } + }, + { + "displayName": "POST /api/{session}/groups/join", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Join Group" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Join Group" + ] + } + } + }, + { + "required": true, + "displayName": "Code", + "name": "code", + "type": "string", + "default": "https://chat.whatsapp.com/1234567890abcdef", + "description": "Group code (123) or url (https://chat.whatsapp.com/123)", + "routing": { + "send": { + "property": "code", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Join Group" + ] + } + } + }, + { + "displayName": "GET /api/{session}/groups/count", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Groups Count" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Groups Count" + ] + } + } + }, + { + "displayName": "POST /api/{session}/groups/refresh", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Refresh Groups" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Refresh Groups" + ] + } + } + }, + { + "displayName": "GET /api/{session}/groups/{id}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Group" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Group" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Group ID", + "default": "123123123@g.us", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Group" + ] + } + } + }, + { + "displayName": "DELETE /api/{session}/groups/{id}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Delete Group" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Delete Group" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Group ID", + "default": "123123123@g.us", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Delete Group" + ] + } + } + }, + { + "displayName": "POST /api/{session}/groups/{id}/leave", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Leave Group" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Leave Group" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Group ID", + "default": "123123123@g.us", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Leave Group" + ] + } + } + }, + { + "displayName": "GET /api/{session}/groups/{id}/picture", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Chat Picture" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Chat Picture" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Group ID", + "default": "123123123@g.us", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Chat Picture" + ] + } + } + }, + { + "displayName": "Refresh", + "name": "refresh", + "description": "Refresh the picture from the server (24h cache by default). Do not refresh if not needed, you can get rate limit error", + "default": false, + "type": "boolean", + "routing": { + "send": { + "type": "query", + "property": "refresh", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Chat Picture" + ] + } + } + }, + { + "displayName": "PUT /api/{session}/groups/{id}/picture", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Set Picture" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Set Picture" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Group ID", + "default": "123123123@g.us", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Set Picture" + ] + } + } + }, + { + "required": true, + "displayName": "File", + "name": "file", + "type": "json", + "default": "{\n \"mimetype\": \"image/jpeg\",\n \"filename\": \"filename.jpg\",\n \"url\": \"https://github.com/devlikeapro/waha/raw/core/examples/waha.jpg\"\n}", + "routing": { + "send": { + "property": "file", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Set Picture" + ] + } + } + }, + { + "displayName": "DELETE /api/{session}/groups/{id}/picture", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Delete Picture" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Delete Picture" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Group ID", + "default": "123123123@g.us", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Delete Picture" + ] + } + } + }, + { + "displayName": "PUT /api/{session}/groups/{id}/description", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Set Description" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Set Description" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Group ID", + "default": "123123123@g.us", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Set Description" + ] + } + } + }, + { + "required": true, + "displayName": "Description", + "name": "description", + "type": "string", + "default": "", + "routing": { + "send": { + "property": "description", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Set Description" + ] + } + } + }, + { + "displayName": "PUT /api/{session}/groups/{id}/subject", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Set Subject" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Set Subject" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Group ID", + "default": "123123123@g.us", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Set Subject" + ] + } + } + }, + { + "required": true, + "displayName": "Subject", + "name": "subject", + "type": "string", + "default": "", + "routing": { + "send": { + "property": "subject", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Set Subject" + ] + } + } + }, + { + "displayName": "PUT /api/{session}/groups/{id}/settings/security/info-admin-only", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Set Info Admin Only" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Set Info Admin Only" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Group ID", + "default": "123123123@g.us", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Set Info Admin Only" + ] + } + } + }, + { + "required": true, + "displayName": "Admins Only", + "name": "adminsOnly", + "type": "boolean", + "default": true, + "routing": { + "send": { + "property": "adminsOnly", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Set Info Admin Only" + ] + } + } + }, + { + "displayName": "GET /api/{session}/groups/{id}/settings/security/info-admin-only", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Info Admin Only" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Info Admin Only" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Group ID", + "default": "123123123@g.us", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Info Admin Only" + ] + } + } + }, + { + "displayName": "PUT /api/{session}/groups/{id}/settings/security/messages-admin-only", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Set Messages Admin Only" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Set Messages Admin Only" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Group ID", + "default": "123123123@g.us", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Set Messages Admin Only" + ] + } + } + }, + { + "required": true, + "displayName": "Admins Only", + "name": "adminsOnly", + "type": "boolean", + "default": true, + "routing": { + "send": { + "property": "adminsOnly", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Set Messages Admin Only" + ] + } + } + }, + { + "displayName": "GET /api/{session}/groups/{id}/settings/security/messages-admin-only", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Messages Admin Only" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Messages Admin Only" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Group ID", + "default": "123123123@g.us", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Messages Admin Only" + ] + } + } + }, + { + "displayName": "GET /api/{session}/groups/{id}/invite-code", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Invite Code" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Invite Code" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Group ID", + "default": "123123123@g.us", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Invite Code" + ] + } + } + }, + { + "displayName": "POST /api/{session}/groups/{id}/invite-code/revoke", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Revoke Invite Code" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Revoke Invite Code" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Group ID", + "default": "123123123@g.us", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Revoke Invite Code" + ] + } + } + }, + { + "displayName": "GET /api/{session}/groups/{id}/participants", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Participants" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Participants" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Group ID", + "default": "123123123@g.us", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Participants" + ] + } + } + }, + { + "displayName": "GET /api/{session}/groups/{id}/participants/v2", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Group Participants" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Group Participants" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Group ID", + "default": "123123123@g.us", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Get Group Participants" + ] + } + } + }, + { + "displayName": "POST /api/{session}/groups/{id}/participants/add", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Add Participants" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Add Participants" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Group ID", + "default": "123123123@g.us", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Add Participants" + ] + } + } + }, + { + "required": true, + "displayName": "Participants", + "name": "participants", + "type": "json", + "default": "[\n {\n \"id\": \"123456789@c.us\"\n }\n]", + "routing": { + "send": { + "property": "participants", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Add Participants" + ] + } + } + }, + { + "displayName": "POST /api/{session}/groups/{id}/participants/remove", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Remove Participants" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Remove Participants" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Group ID", + "default": "123123123@g.us", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Remove Participants" + ] + } + } + }, + { + "required": true, + "displayName": "Participants", + "name": "participants", + "type": "json", + "default": "[\n {\n \"id\": \"123456789@c.us\"\n }\n]", + "routing": { + "send": { + "property": "participants", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Remove Participants" + ] + } + } + }, + { + "displayName": "POST /api/{session}/groups/{id}/admin/promote", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Promote To Admin" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Promote To Admin" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Group ID", + "default": "123123123@g.us", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Promote To Admin" + ] + } + } + }, + { + "required": true, + "displayName": "Participants", + "name": "participants", + "type": "json", + "default": "[\n {\n \"id\": \"123456789@c.us\"\n }\n]", + "routing": { + "send": { + "property": "participants", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Promote To Admin" + ] + } + } + }, + { + "displayName": "POST /api/{session}/groups/{id}/admin/demote", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Demote To Admin" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Demote To Admin" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "description": "Group ID", + "default": "123123123@g.us", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Demote To Admin" + ] + } + } + }, + { + "required": true, + "displayName": "Participants", + "name": "participants", + "type": "json", + "default": "[\n {\n \"id\": \"123456789@c.us\"\n }\n]", + "routing": { + "send": { + "property": "participants", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Groups" + ], + "operation": [ + "Demote To Admin" + ] + } + } + }, + { + "displayName": "POST /api/{session}/presence", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Presence" + ], + "operation": [ + "Set Presence" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Presence" + ], + "operation": [ + "Set Presence" + ] + } + } + }, + { + "required": true, + "displayName": "Chat Id", + "name": "chatId", + "type": "string", + "default": "={{ $json.payload.from }}", + "description": "Chat ID - either group id or contact id", + "routing": { + "send": { + "property": "chatId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Presence" + ], + "operation": [ + "Set Presence" + ] + } + } + }, + { + "required": true, + "displayName": "Presence", + "name": "presence", + "type": "options", + "default": "offline", + "options": [ + { + "name": "Offline", + "value": "offline" + }, + { + "name": "Online", + "value": "online" + }, + { + "name": "Typing", + "value": "typing" + }, + { + "name": "Recording", + "value": "recording" + }, + { + "name": "Paused", + "value": "paused" + } + ], + "routing": { + "send": { + "property": "presence", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Presence" + ], + "operation": [ + "Set Presence" + ] + } + } + }, + { + "displayName": "GET /api/{session}/presence", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Presence" + ], + "operation": [ + "Get Presence All" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Presence" + ], + "operation": [ + "Get Presence All" + ] + } + } + }, + { + "displayName": "GET /api/{session}/presence/{chatId}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Presence" + ], + "operation": [ + "Get Presence" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Presence" + ], + "operation": [ + "Get Presence" + ] + } + } + }, + { + "displayName": "Chat Id", + "name": "chatId", + "required": true, + "description": "Chat ID", + "default": "={{ $json.payload.from }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Presence" + ], + "operation": [ + "Get Presence" + ] + } + } + }, + { + "displayName": "POST /api/{session}/presence/{chatId}/subscribe", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Presence" + ], + "operation": [ + "Subscribe" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Presence" + ], + "operation": [ + "Subscribe" + ] + } + } + }, + { + "displayName": "Chat Id", + "name": "chatId", + "required": true, + "description": "Chat ID", + "default": "={{ $json.payload.from }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Presence" + ], + "operation": [ + "Subscribe" + ] + } + } + }, + { + "displayName": "GET /api/screenshot", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Pairing" + ], + "operation": [ + "Screenshot" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "default": "={{ $json.session }}", + "type": "string", + "routing": { + "send": { + "type": "query", + "property": "session", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Pairing" + ], + "operation": [ + "Screenshot" + ] + } + } + }, + { + "displayName": "POST /api/{session}/events", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Events" + ], + "operation": [ + "Send Event" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Events" + ], + "operation": [ + "Send Event" + ] + } + } + }, + { + "required": true, + "displayName": "Chat Id", + "name": "chatId", + "type": "string", + "default": "={{ $json.payload.from }}", + "routing": { + "send": { + "property": "chatId", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Events" + ], + "operation": [ + "Send Event" + ] + } + } + }, + { + "displayName": "Reply To", + "name": "reply_to", + "type": "string", + "default": "", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "routing": { + "send": { + "property": "reply_to", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Events" + ], + "operation": [ + "Send Event" + ] + } + } + }, + { + "required": true, + "displayName": "Event", + "name": "event", + "type": "json", + "default": "{\n \"name\": \"John's Nail Appointment πŸ’…\",\n \"description\": \"It's time for your nail care session! 🌟\\\\n\\\\nYou'll be getting a *classic gel manicure* – clean, polished, and long-lasting. πŸ’–\\\\n\\\\nπŸ“ *Location:* Luxe Nail Studio\\\\nWe're on the *2nd floor of the Plaza Mall*, next to the flower shop. Look for the *pink neon sign*!\\\\n\\\\nFeel free to arrive *5–10 mins early* so we can get started on time 😊\",\n \"startTime\": 2063137000,\n \"endTime\": null,\n \"location\": {\n \"name\": \"Luxe Nail Studio πŸ’…\"\n },\n \"extraGuestsAllowed\": false\n}", + "routing": { + "send": { + "property": "event", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Events" + ], + "operation": [ + "Send Event" + ] + } + } + }, + { + "displayName": "GET /ping", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Observability" + ], + "operation": [ + "Ping" + ] + } + } + }, + { + "displayName": "GET /health", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Observability" + ], + "operation": [ + "Check" + ] + } + } + }, + { + "displayName": "GET /api/server/version", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Observability" + ], + "operation": [ + "Get" + ] + } + } + }, + { + "displayName": "GET /api/server/environment", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Observability" + ], + "operation": [ + "Environment" + ] + } + } + }, + { + "displayName": "All", + "name": "all", + "description": "Include all environment variables", + "default": false, + "type": "boolean", + "routing": { + "send": { + "type": "query", + "property": "all", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Observability" + ], + "operation": [ + "Environment" + ] + } + } + }, + { + "displayName": "GET /api/server/status", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Observability" + ], + "operation": [ + "Status" + ] + } + } + }, + { + "displayName": "POST /api/server/stop", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Observability" + ], + "operation": [ + "Stop" + ] + } + } + }, + { + "displayName": "Force", + "name": "force", + "type": "boolean", + "default": false, + "description": "By default, it gracefully stops the server, but you can force it to terminate immediately.", + "routing": { + "send": { + "property": "force", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Observability" + ], + "operation": [ + "Stop" + ] + } + } + }, + { + "displayName": "GET /api/server/debug/cpu", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Observability" + ], + "operation": [ + "Cpu Profile" + ] + } + } + }, + { + "displayName": "Seconds", + "name": "seconds", + "description": "How many seconds to sample CPU", + "default": 30, + "type": "number", + "routing": { + "send": { + "type": "query", + "property": "seconds", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Observability" + ], + "operation": [ + "Cpu Profile" + ] + } + } + }, + { + "displayName": "GET /api/server/debug/heapsnapshot", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Observability" + ], + "operation": [ + "Heapsnapshot" + ] + } + } + }, + { + "displayName": "GET /api/server/debug/browser/trace/{session}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Observability" + ], + "operation": [ + "Browser Trace" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Observability" + ], + "operation": [ + "Browser Trace" + ] + } + } + }, + { + "displayName": "Seconds", + "name": "seconds", + "required": true, + "description": "How many seconds to trace", + "default": 30, + "type": "number", + "routing": { + "send": { + "type": "query", + "property": "seconds", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Observability" + ], + "operation": [ + "Browser Trace" + ] + } + } + }, + { + "displayName": "Categories", + "name": "categories", + "required": true, + "description": "Categories to trace (all by default)", + "default": "[\n \"*\"\n]", + "type": "json", + "routing": { + "send": { + "type": "query", + "property": "categories", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Observability" + ], + "operation": [ + "Browser Trace" + ] + } + } + }, + { + "displayName": "POST /api/{session}/media/convert/voice", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Media" + ], + "operation": [ + "Convert Voice" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Media" + ], + "operation": [ + "Convert Voice" + ] + } + } + }, + { + "displayName": "Url", + "name": "url", + "type": "string", + "default": "https://github.com/devlikeapro/waha/raw/core/examples/voice.mp3", + "description": "The URL for the voice file", + "routing": { + "send": { + "property": "url", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Media" + ], + "operation": [ + "Convert Voice" + ] + } + } + }, + { + "displayName": "Data", + "name": "data", + "type": "string", + "default": null, + "description": "Base64 content of the file", + "routing": { + "send": { + "property": "data", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Media" + ], + "operation": [ + "Convert Voice" + ] + } + } + }, + { + "displayName": "POST /api/{session}/media/convert/video", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Media" + ], + "operation": [ + "Convert Video" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name", + "default": "={{ $json.session }}", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Media" + ], + "operation": [ + "Convert Video" + ] + } + } + }, + { + "displayName": "Url", + "name": "url", + "type": "string", + "default": "https://github.com/devlikeapro/waha/raw/core/examples/video.mp4", + "description": "The URL for the video file", + "routing": { + "send": { + "property": "url", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Media" + ], + "operation": [ + "Convert Video" + ] + } + } + }, + { + "displayName": "Data", + "name": "data", + "type": "string", + "default": null, + "description": "Base64 content of the file", + "routing": { + "send": { + "property": "data", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Media" + ], + "operation": [ + "Convert Video" + ] + } + } + }, + { + "displayName": "GET /api/apps", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Apps" + ], + "operation": [ + "List" + ] + } + } + }, + { + "displayName": "Session", + "name": "session", + "required": true, + "description": "Session name to list apps for", + "default": "={{ $json.session }}", + "type": "string", + "routing": { + "send": { + "type": "query", + "property": "session", + "value": "={{ $value }}", + "propertyInDotNotation": false + } + }, + "displayOptions": { + "show": { + "resource": [ + "Apps" + ], + "operation": [ + "List" + ] + } + } + }, + { + "displayName": "POST /api/apps", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Apps" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Apps" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "displayName": "Enabled", + "name": "enabled", + "type": "boolean", + "default": true, + "description": "Enable or disable this app without deleting it. If omitted, treated as enabled (true).", + "routing": { + "send": { + "property": "enabled", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Apps" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "required": true, + "displayName": "Id", + "name": "id", + "type": "string", + "default": "", + "routing": { + "send": { + "property": "id", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Apps" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "required": true, + "displayName": "App", + "name": "app", + "type": "options", + "default": "chatwoot", + "options": [ + { + "name": "Chatwoot", + "value": "chatwoot" + }, + { + "name": "Calls", + "value": "calls" + } + ], + "routing": { + "send": { + "property": "app", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Apps" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "required": true, + "displayName": "Config", + "name": "config", + "type": "json", + "default": "{}", + "routing": { + "send": { + "property": "config", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Apps" + ], + "operation": [ + "Create" + ] + } + } + }, + { + "displayName": "GET /api/apps/{id}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Apps" + ], + "operation": [ + "Get" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "default": "", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Apps" + ], + "operation": [ + "Get" + ] + } + } + }, + { + "displayName": "PUT /api/apps/{id}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Apps" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "required": true, + "displayName": "Session", + "name": "session", + "type": "string", + "default": "={{ $json.session }}", + "routing": { + "send": { + "property": "session", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Apps" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "default": "", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Apps" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "displayName": "Enabled", + "name": "enabled", + "type": "boolean", + "default": true, + "description": "Enable or disable this app without deleting it. If omitted, treated as enabled (true).", + "routing": { + "send": { + "property": "enabled", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Apps" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "required": true, + "displayName": "Id", + "name": "id", + "type": "string", + "default": "", + "routing": { + "send": { + "property": "id", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Apps" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "required": true, + "displayName": "App", + "name": "app", + "type": "options", + "default": "chatwoot", + "options": [ + { + "name": "Chatwoot", + "value": "chatwoot" + }, + { + "name": "Calls", + "value": "calls" + } + ], + "routing": { + "send": { + "property": "app", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ $value }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Apps" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "required": true, + "displayName": "Config", + "name": "config", + "type": "json", + "default": "{}", + "routing": { + "send": { + "property": "config", + "propertyInDotNotation": false, + "type": "body", + "value": "={{ JSON.parse($value) }}" + } + }, + "displayOptions": { + "show": { + "resource": [ + "Apps" + ], + "operation": [ + "Update" + ] + } + } + }, + { + "displayName": "DELETE /api/apps/{id}", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Apps" + ], + "operation": [ + "Delete" + ] + } + } + }, + { + "displayName": "Id", + "name": "id", + "required": true, + "default": "", + "type": "string", + "displayOptions": { + "show": { + "resource": [ + "Apps" + ], + "operation": [ + "Delete" + ] + } + } + }, + { + "displayName": "GET /api/apps/chatwoot/locales", + "name": "operation", + "type": "notice", + "typeOptions": { + "theme": "info" + }, + "default": "", + "displayOptions": { + "show": { + "resource": [ + "Apps" + ], + "operation": [ + "Get Languages" + ] + } + } + } +]; + expect(node.description.properties).toEqual(expected); +}); diff --git a/nodes/WAHA/v202602/WAHAv202602.ts b/nodes/WAHA/v202602/WAHAv202602.ts new file mode 100644 index 0000000..caef553 --- /dev/null +++ b/nodes/WAHA/v202602/WAHAv202602.ts @@ -0,0 +1,70 @@ +import { INodeType, INodeTypeDescription } from 'n8n-workflow'; +import * as doc from './openapi.json'; +import { BASE_DESCRIPTION, NODE_DESCRIPTION } from '../base/node'; +import { WAHAOperationsCollector } from '../openapi/WAHAOperationsCollector'; +import { + N8NPropertiesBuilder, + N8NPropertiesBuilderConfig, + Override, +} from '@devlikeapro/n8n-openapi-node'; +import {WAHAOperationParser} from "../openapi/WAHAOperationParser"; +import {WAHAResourceParser} from "../openapi/WAHAResourceParser"; + +const customDefaults: Override[] = [ + { + find: { + name: 'session', + required: true, + type: 'string', + }, + replace: { + default: '={{ $json.session }}', + }, + }, + { + find: { + name: 'chatId', + required: true, + type: 'string', + }, + replace: { + default: '={{ $json.payload.from }}', + }, + }, + { + find: { + name: 'messageId', + type: 'string', + }, + replace: { + default: '={{ $json.payload.id }}', + }, + }, + { + find: { + name: 'reply_to', + type: 'string', + }, + replace: { + default: '', + }, + }, +]; + +const config: N8NPropertiesBuilderConfig = { + OperationsCollector: WAHAOperationsCollector as any, + operation: new WAHAOperationParser(), + resource: new WAHAResourceParser(), +}; +const parser = new N8NPropertiesBuilder(doc, config); +const properties = parser.build(customDefaults); + +export class WAHAv202602 implements INodeType { + description: INodeTypeDescription = { + ...BASE_DESCRIPTION, + ...NODE_DESCRIPTION, + version: 202602, + // @ts-ignore + properties: properties, + }; +} diff --git a/nodes/WAHA/v202602/openapi.json b/nodes/WAHA/v202602/openapi.json new file mode 100644 index 0000000..57a4048 --- /dev/null +++ b/nodes/WAHA/v202602/openapi.json @@ -0,0 +1,14745 @@ +{ + "openapi": "3.1.0", + "paths": { + "/api/{session}/auth/qr": { + "get": { + "operationId": "AuthController_getQR", + "summary": "Get QR code for pairing WhatsApp API.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "format", + "required": true, + "in": "query", + "schema": { + "default": "image", + "enum": [ + "image", + "raw" + ], + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "image/png": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/Base64File" + }, + { + "$ref": "#/components/schemas/QRCodeValue" + } + ] + } + } + }, + "description": "" + } + }, + "tags": [ + "πŸ“± Pairing" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/auth/request-code": { + "post": { + "operationId": "AuthController_requestCode", + "summary": "Request authentication code.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RequestCodeRequest" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ“± Pairing" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/keys": { + "post": { + "operationId": "ApiKeysController_create", + "summary": "Create a new API key", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiKeyRequest" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiKeyDTO" + } + } + } + } + }, + "tags": [ + "πŸ”‘ Api Keys" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "get": { + "operationId": "ApiKeysController_list", + "summary": "Get all API keys", + "parameters": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ApiKeyDTO" + } + } + } + } + } + }, + "tags": [ + "πŸ”‘ Api Keys" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/keys/{id}": { + "put": { + "operationId": "ApiKeysController_update", + "summary": "Update an API key", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiKeyRequest" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiKeyDTO" + } + } + } + } + }, + "tags": [ + "πŸ”‘ Api Keys" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "delete": { + "operationId": "ApiKeysController_delete", + "summary": "Delete an API key", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ”‘ Api Keys" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sessions": { + "get": { + "operationId": "SessionsController_list", + "summary": "List all sessions", + "parameters": [ + { + "name": "expand", + "required": false, + "in": "query", + "description": "Expand additional session details.", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "apps" + ] + } + } + }, + { + "name": "all", + "required": false, + "in": "query", + "description": "Return all sessions, including those that are in the STOPPED state.", + "schema": { + "example": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionInfo" + } + } + } + } + } + }, + "tags": [ + "πŸ–₯️ Sessions" + ], + "security": [ + { + "api_key": [] + }, + { + "oauth2": [ + "read:items" + ] + } + ] + }, + "post": { + "operationId": "SessionsController_create", + "summary": "Create a session", + "description": "Create session a new session (and start it at the same time if required).", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SessionCreateRequest" + }, + "examples": { + "basic": { + "summary": "Basic Session", + "value": { + "name": "default" + } + }, + "withWebhooks": { + "summary": "Session Webhooks", + "value": { + "name": "default", + "config": { + "webhooks": [ + { + "url": "https://example.com/webhooks/waha", + "events": [ + "message", + "session.status" + ], + "hmac": { + "key": "super-secret" + }, + "retries": { + "delaySeconds": 2, + "attempts": 5, + "policy": "linear" + }, + "customHeaders": [ + { + "name": "X-Request-ID", + "value": "123" + } + ] + } + ] + } + } + }, + "withApps": { + "summary": "Session Apps", + "value": { + "name": "default", + "apps": [ + { + "app": "calls", + "id": "app_unique_id", + "session": "", + "config": { + "dm": { + "reject": true, + "message": "πŸ“žβŒ We don't take calls right now.\n🎀 Please send a voice message or πŸ“ text β€” we'll reply ASAP!" + }, + "group": { + "reject": true, + "message": "πŸ“žβŒ We don't take calls right now.\n🎀 Please send a voice message or πŸ“ text β€” we'll reply ASAP!" + } + } + } + ], + "start": true + } + }, + "full": { + "summary": "Full Session Example", + "value": { + "name": "default", + "start": true, + "config": { + "metadata": { + "user.id": "123" + }, + "debug": true, + "webhooks": [ + { + "url": "https://example.com/webhooks/waha", + "events": [ + "message", + "session.status" + ], + "hmac": { + "key": "super-secret" + } + } + ] + }, + "apps": [ + { + "app": "calls", + "enabled": true, + "config": { + "dm": { + "reject": true, + "message": "πŸ“žβŒ We don't take calls right now.\n🎀 Please send a voice message or πŸ“ text β€” we'll reply ASAP!" + }, + "group": { + "reject": true + } + } + } + ] + } + } + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SessionDTO" + } + } + } + } + }, + "tags": [ + "πŸ–₯️ Sessions" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sessions/{session}": { + "get": { + "operationId": "SessionsController_get", + "summary": "Get session information", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "expand", + "required": false, + "in": "query", + "description": "Expand additional session details.", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "apps" + ] + } + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SessionInfo" + } + } + } + } + }, + "tags": [ + "πŸ–₯️ Sessions" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "put": { + "operationId": "SessionsController_update", + "summary": "Update a session", + "description": "", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SessionUpdateRequest" + }, + "examples": { + "basic": { + "summary": "Basic Session", + "value": { + "name": "default" + } + }, + "withWebhooks": { + "summary": "Session Webhooks", + "value": { + "name": "default", + "config": { + "webhooks": [ + { + "url": "https://example.com/webhooks/waha", + "events": [ + "message", + "session.status" + ], + "hmac": { + "key": "super-secret" + }, + "retries": { + "delaySeconds": 2, + "attempts": 5, + "policy": "linear" + }, + "customHeaders": [ + { + "name": "X-Request-ID", + "value": "123" + } + ] + } + ] + } + } + }, + "withApps": { + "summary": "Session Apps", + "value": { + "name": "default", + "apps": [ + { + "app": "calls", + "id": "app_unique_id", + "session": "", + "config": { + "dm": { + "reject": true, + "message": "πŸ“žβŒ We don't take calls right now.\n🎀 Please send a voice message or πŸ“ text β€” we'll reply ASAP!" + }, + "group": { + "reject": true, + "message": "πŸ“žβŒ We don't take calls right now.\n🎀 Please send a voice message or πŸ“ text β€” we'll reply ASAP!" + } + } + } + ], + "start": true + } + }, + "full": { + "summary": "Full Session Example", + "value": { + "name": "default", + "start": true, + "config": { + "metadata": { + "user.id": "123" + }, + "debug": true, + "webhooks": [ + { + "url": "https://example.com/webhooks/waha", + "events": [ + "message", + "session.status" + ], + "hmac": { + "key": "super-secret" + } + } + ] + }, + "apps": [ + { + "app": "calls", + "enabled": true, + "config": { + "dm": { + "reject": true, + "message": "πŸ“žβŒ We don't take calls right now.\n🎀 Please send a voice message or πŸ“ text β€” we'll reply ASAP!" + }, + "group": { + "reject": true + } + } + } + ] + } + } + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SessionDTO" + } + } + } + } + }, + "tags": [ + "πŸ–₯️ Sessions" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "delete": { + "operationId": "SessionsController_delete", + "summary": "Delete the session", + "description": "Delete the session with the given name. Stop and logout as well. Idempotent operation.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ–₯️ Sessions" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sessions/{session}/me": { + "get": { + "operationId": "SessionsController_getMe", + "summary": "Get information about the authenticated account", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MeInfo" + } + } + } + } + }, + "tags": [ + "πŸ–₯️ Sessions" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sessions/{session}/start": { + "post": { + "operationId": "SessionsController_start", + "summary": "Start the session", + "description": "Start the session with the given name. The session must exist. Idempotent operation.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SessionDTO" + } + } + } + } + }, + "tags": [ + "πŸ–₯️ Sessions" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sessions/{session}/stop": { + "post": { + "operationId": "SessionsController_stop", + "summary": "Stop the session", + "description": "Stop the session with the given name. Idempotent operation.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SessionDTO" + } + } + } + } + }, + "tags": [ + "πŸ–₯️ Sessions" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sessions/{session}/logout": { + "post": { + "operationId": "SessionsController_logout", + "summary": "Logout from the session", + "description": "Logout the session, restart a session if it was not STOPPED", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SessionDTO" + } + } + } + } + }, + "tags": [ + "πŸ–₯️ Sessions" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sessions/{session}/restart": { + "post": { + "operationId": "SessionsController_restart", + "summary": "Restart the session", + "description": "Restart the session with the given name.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SessionDTO" + } + } + } + } + }, + "tags": [ + "πŸ–₯️ Sessions" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sessions/start": { + "post": { + "operationId": "SessionsController_DEPRACATED_start", + "summary": "Upsert and Start session", + "description": "Create session (if not exists) or update a config (if exists) and start it.", + "deprecated": true, + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SessionStartDeprecatedRequest" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SessionDTO" + } + } + } + } + }, + "tags": [ + "πŸ–₯️ Sessions" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sessions/stop": { + "post": { + "operationId": "SessionsController_DEPRECATED_stop", + "summary": "Stop (and Logout if asked) session", + "description": "Stop session and Logout by default.", + "deprecated": true, + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SessionStopDeprecatedRequest" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ–₯️ Sessions" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sessions/logout": { + "post": { + "operationId": "SessionsController_DEPRECATED_logout", + "summary": "Logout and Delete session.", + "description": "Stop, Logout and Delete session.", + "deprecated": true, + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SessionLogoutDeprecatedRequest" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ–₯️ Sessions" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/profile": { + "get": { + "operationId": "ProfileController_getMyProfile", + "summary": "Get my profile", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MyProfile" + } + } + } + } + }, + "tags": [ + "πŸ†” Profile" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/profile/name": { + "put": { + "operationId": "ProfileController_setProfileName", + "summary": "Set my profile name", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProfileNameRequest" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Result" + } + } + } + } + }, + "tags": [ + "πŸ†” Profile" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/profile/status": { + "put": { + "operationId": "ProfileController_setProfileStatus", + "summary": "Set profile status (About)", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProfileStatusRequest" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Result" + } + } + } + } + }, + "tags": [ + "πŸ†” Profile" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/profile/picture": { + "put": { + "operationId": "ProfileController_setProfilePicture", + "summary": "Set profile picture", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProfilePictureRequest" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Result" + } + } + } + } + }, + "tags": [ + "πŸ†” Profile" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "delete": { + "operationId": "ProfileController_deleteProfilePicture", + "summary": "Delete profile picture", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Result" + } + } + } + } + }, + "tags": [ + "πŸ†” Profile" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sendText": { + "post": { + "operationId": "ChattingController_sendText", + "summary": "Send a text message", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageTextRequest" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAMessage" + } + } + } + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "get": { + "operationId": "ChattingController_sendTextGet", + "summary": "Send a text message", + "deprecated": true, + "parameters": [ + { + "name": "phone", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "text", + "required": true, + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "session", + "required": true, + "in": "query", + "schema": { + "default": "default", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sendImage": { + "post": { + "operationId": "ChattingController_sendImage", + "summary": "Send an image", + "description": "Either from an URL or base64 data - look at the request schemas for details.", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageImageRequest" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sendFile": { + "post": { + "operationId": "ChattingController_sendFile", + "summary": "Send a file", + "description": "Either from an URL or base64 data - look at the request schemas for details.", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageFileRequest" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sendVoice": { + "post": { + "operationId": "ChattingController_sendVoice", + "summary": "Send an voice message", + "description": "Either from an URL or base64 data - look at the request schemas for details.", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageVoiceRequest" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sendVideo": { + "post": { + "operationId": "ChattingController_sendVideo", + "summary": "Send a video", + "description": "Either from an URL or base64 data - look at the request schemas for details.", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageVideoRequest" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/send/link-custom-preview": { + "post": { + "operationId": "ChattingController_sendLinkCustomPreview", + "summary": "Send a text message with a CUSTOM link preview.", + "description": "You can use regular /api/sendText if you wanna send auto-generated link preview.", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageLinkCustomPreviewRequest" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sendButtons": { + "post": { + "operationId": "ChattingController_sendButtons", + "summary": "Send buttons message (interactive)", + "description": "Send Buttons", + "deprecated": true, + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SendButtonsRequest" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sendList": { + "post": { + "operationId": "ChattingController_sendList", + "summary": "Send a list message (interactive)", + "description": "Send a List message with sections and rows", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SendListRequest" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/forwardMessage": { + "post": { + "operationId": "ChattingController_forwardMessage", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageForwardRequest" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAMessage" + } + } + } + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sendSeen": { + "post": { + "operationId": "ChattingController_sendSeen", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SendSeenRequest" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/startTyping": { + "post": { + "operationId": "ChattingController_startTyping", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChatRequest" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/stopTyping": { + "post": { + "operationId": "ChattingController_stopTyping", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChatRequest" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/reaction": { + "put": { + "operationId": "ChattingController_setReaction", + "summary": "React to a message with an emoji", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageReactionRequest" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/star": { + "put": { + "operationId": "ChattingController_setStar", + "summary": "Star or unstar a message", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageStarRequest" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sendPoll": { + "post": { + "operationId": "ChattingController_sendPoll", + "summary": "Send a poll with options", + "description": "You can use it as buttons or list replacement", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessagePollRequest" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sendPollVote": { + "post": { + "operationId": "ChattingController_sendPollVote", + "summary": "Vote on a poll", + "description": "Cast vote(s) on an existing poll message", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessagePollVoteRequest" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sendLocation": { + "post": { + "operationId": "ChattingController_sendLocation", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageLocationRequest" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sendContactVcard": { + "post": { + "operationId": "ChattingController_sendContactVcard", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageContactVcardRequest" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/send/buttons/reply": { + "post": { + "operationId": "ChattingController_sendButtonsReply", + "summary": "Reply on a button message", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageButtonReply" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/messages": { + "get": { + "operationId": "ChattingController_getMessages", + "summary": "Get messages in a chat", + "description": "DEPRECATED. Use \"GET /api/chats/{id}/messages\" instead", + "deprecated": true, + "parameters": [ + { + "name": "sortBy", + "required": false, + "in": "query", + "description": "Sort by field", + "schema": { + "default": "timestamp", + "enum": [ + "timestamp", + "messageTimestamp" + ], + "type": "string" + } + }, + { + "name": "sortOrder", + "required": false, + "in": "query", + "description": "Sort order - descending (Z => A, New first) or ascending (A => Z, Old first)", + "schema": { + "enum": [ + "desc", + "asc" + ], + "type": "string" + } + }, + { + "name": "downloadMedia", + "required": false, + "in": "query", + "description": "Download media for messages", + "schema": { + "default": true, + "example": false, + "type": "boolean" + } + }, + { + "name": "chatId", + "required": true, + "in": "query", + "schema": { + "example": "11111111111@c.us", + "type": "string" + } + }, + { + "name": "session", + "required": true, + "in": "query", + "schema": { + "default": "default", + "type": "string" + } + }, + { + "name": "limit", + "required": true, + "in": "query", + "schema": { + "default": 10, + "type": "number" + } + }, + { + "name": "offset", + "required": false, + "in": "query", + "schema": { + "type": "number" + } + }, + { + "name": "filter.timestamp.lte", + "required": false, + "in": "query", + "description": "Filter messages before this timestamp (inclusive)", + "schema": { + "type": "number" + } + }, + { + "name": "filter.timestamp.gte", + "required": false, + "in": "query", + "description": "Filter messages after this timestamp (inclusive)", + "schema": { + "type": "number" + } + }, + { + "name": "filter.fromMe", + "required": false, + "in": "query", + "description": "From me filter (by default shows all messages)", + "schema": { + "type": "boolean" + } + }, + { + "name": "filter.ack", + "required": false, + "in": "query", + "description": "Filter messages by acknowledgment status", + "schema": { + "enum": [ + "ERROR", + "PENDING", + "SERVER", + "DEVICE", + "READ", + "PLAYED" + ], + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WAMessage" + } + } + } + } + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/checkNumberStatus": { + "get": { + "operationId": "ChattingController_DEPRECATED_checkNumberStatus", + "summary": "Check number status", + "description": "DEPRECATED. Use \"POST /contacts/check-exists\" instead", + "deprecated": true, + "parameters": [ + { + "name": "phone", + "required": true, + "in": "query", + "description": "The phone number to check", + "schema": { + "example": "1213213213", + "type": "string" + } + }, + { + "name": "session", + "required": true, + "in": "query", + "schema": { + "default": "default", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WANumberExistResult" + } + } + } + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/reply": { + "post": { + "operationId": "ChattingController_reply", + "summary": "DEPRECATED - you can set \"reply_to\" field when sending text, image, etc", + "deprecated": true, + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageReplyRequest" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/sendLinkPreview": { + "post": { + "operationId": "ChattingController_sendLinkPreview_DEPRECATED", + "summary": "", + "deprecated": true, + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageLinkPreviewRequest" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ“€ Chatting" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/chats": { + "get": { + "operationId": "ChatsController_getChats", + "summary": "Get chats", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "sortBy", + "required": false, + "in": "query", + "description": "Sort by field", + "schema": { + "enum": [ + "conversationTimestamp", + "id", + "name" + ], + "type": "string" + } + }, + { + "name": "sortOrder", + "required": false, + "in": "query", + "description": "Sort order - descending (Z => A, New first) or ascending (A => Z, Old first)", + "schema": { + "enum": [ + "desc", + "asc" + ], + "type": "string" + } + }, + { + "name": "limit", + "required": false, + "in": "query", + "schema": { + "type": "number" + } + }, + { + "name": "offset", + "required": false, + "in": "query", + "schema": { + "type": "number" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ’¬ Chats" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/chats/overview": { + "get": { + "operationId": "ChatsController_getChatsOverview", + "summary": "Get chats overview. Includes all necessary things to build UI \"your chats overview\" page - chat id, name, picture, last message. Sorting by last message timestamp", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "limit", + "required": false, + "in": "query", + "schema": { + "default": 20, + "type": "number" + } + }, + { + "name": "offset", + "required": false, + "in": "query", + "schema": { + "type": "number" + } + }, + { + "name": "ids", + "required": false, + "in": "query", + "description": "Filter by chat ids", + "schema": { + "example": [ + "111111111@c.us" + ], + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChatSummary" + } + } + } + } + } + }, + "tags": [ + "πŸ’¬ Chats" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "post": { + "operationId": "ChatsController_postChatsOverview", + "summary": "Get chats overview. Use POST if you have too many \"ids\" params - GET can limit it", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OverviewBodyRequest" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChatSummary" + } + } + } + } + } + }, + "tags": [ + "πŸ’¬ Chats" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/chats/{chatId}": { + "delete": { + "operationId": "ChatsController_deleteChat", + "summary": "Deletes the chat", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "chatId", + "required": true, + "in": "path", + "description": "Chat ID", + "schema": { + "example": "123456789@c.us", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ’¬ Chats" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/chats/{chatId}/picture": { + "get": { + "operationId": "ChatsController_getChatPicture", + "summary": "Gets chat picture", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "chatId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + }, + { + "name": "refresh", + "required": false, + "in": "query", + "description": "Refresh the picture from the server (24h cache by default). Do not refresh if not needed, you can get rate limit error", + "schema": { + "default": false, + "example": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChatPictureResponse" + } + } + } + } + }, + "tags": [ + "πŸ’¬ Chats" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/chats/{chatId}/messages": { + "get": { + "operationId": "ChatsController_getChatMessages", + "summary": "Gets messages in the chat", + "parameters": [ + { + "name": "sortBy", + "required": false, + "in": "query", + "description": "Sort by field", + "schema": { + "default": "timestamp", + "enum": [ + "timestamp", + "messageTimestamp" + ], + "type": "string" + } + }, + { + "name": "sortOrder", + "required": false, + "in": "query", + "description": "Sort order - descending (Z => A, New first) or ascending (A => Z, Old first)", + "schema": { + "enum": [ + "desc", + "asc" + ], + "type": "string" + } + }, + { + "name": "downloadMedia", + "required": false, + "in": "query", + "description": "Download media for messages", + "schema": { + "default": true, + "example": false, + "type": "boolean" + } + }, + { + "name": "limit", + "required": true, + "in": "query", + "schema": { + "default": 10, + "type": "number" + } + }, + { + "name": "offset", + "required": false, + "in": "query", + "schema": { + "type": "number" + } + }, + { + "name": "filter.timestamp.lte", + "required": false, + "in": "query", + "description": "Filter messages before this timestamp (inclusive)", + "schema": { + "type": "number" + } + }, + { + "name": "filter.timestamp.gte", + "required": false, + "in": "query", + "description": "Filter messages after this timestamp (inclusive)", + "schema": { + "type": "number" + } + }, + { + "name": "filter.fromMe", + "required": false, + "in": "query", + "description": "From me filter (by default shows all messages)", + "schema": { + "type": "boolean" + } + }, + { + "name": "filter.ack", + "required": false, + "in": "query", + "description": "Filter messages by acknowledgment status", + "schema": { + "enum": [ + "ERROR", + "PENDING", + "SERVER", + "DEVICE", + "READ", + "PLAYED" + ], + "type": "string" + } + }, + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "chatId", + "required": true, + "in": "path", + "description": "Chat ID", + "schema": { + "example": "123456789@c.us", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WAMessage" + } + } + } + } + } + }, + "tags": [ + "πŸ’¬ Chats" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "delete": { + "operationId": "ChatsController_clearMessages", + "summary": "Clears all messages from the chat", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "chatId", + "required": true, + "in": "path", + "description": "Chat ID", + "schema": { + "example": "123456789@c.us", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ’¬ Chats" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/chats/{chatId}/messages/read": { + "post": { + "operationId": "ChatsController_readChatMessages", + "summary": "Read unread messages in the chat", + "parameters": [ + { + "name": "messages", + "required": false, + "in": "query", + "description": "How much messages to read (latest first)", + "schema": { + "example": 30, + "type": "number" + } + }, + { + "name": "days", + "required": false, + "in": "query", + "description": "How much days to read (latest first)", + "schema": { + "default": 7, + "type": "number" + } + }, + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "chatId", + "required": true, + "in": "path", + "description": "Chat ID", + "schema": { + "example": "123456789@c.us", + "type": "string" + } + } + ], + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReadChatMessagesResponse" + } + } + } + } + }, + "tags": [ + "πŸ’¬ Chats" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/chats/{chatId}/messages/{messageId}": { + "get": { + "operationId": "ChatsController_getChatMessage", + "summary": "Gets message by id", + "parameters": [ + { + "name": "downloadMedia", + "required": false, + "in": "query", + "description": "Download media for messages", + "schema": { + "default": true, + "example": true, + "type": "boolean" + } + }, + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "chatId", + "required": true, + "in": "path", + "description": "Chat ID", + "schema": { + "example": "123456789@c.us", + "type": "string" + } + }, + { + "name": "messageId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAMessage" + } + } + } + } + }, + "tags": [ + "πŸ’¬ Chats" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "delete": { + "operationId": "ChatsController_deleteMessage", + "summary": "Deletes a message from the chat", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "chatId", + "required": true, + "in": "path", + "description": "Chat ID", + "schema": { + "example": "123456789@c.us", + "type": "string" + } + }, + { + "name": "messageId", + "required": true, + "in": "path", + "description": "Message ID in format {fromMe}_{chat}_{message_id}[_{participant}]", + "schema": { + "example": "true_123456789@c.us_BAE6A33293978B16", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ’¬ Chats" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "put": { + "operationId": "ChatsController_editMessage", + "summary": "Edits a message in the chat", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "chatId", + "required": true, + "in": "path", + "description": "Chat ID", + "schema": { + "example": "123456789@c.us", + "type": "string" + } + }, + { + "name": "messageId", + "required": true, + "in": "path", + "description": "Message ID in format {fromMe}_{chat}_{message_id}[_{participant}]", + "schema": { + "example": "true_123456789@c.us_BAE6A33293978B16", + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditMessageRequest" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ’¬ Chats" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/chats/{chatId}/messages/{messageId}/pin": { + "post": { + "operationId": "ChatsController_pinMessage", + "summary": "Pins a message in the chat", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "chatId", + "required": true, + "in": "path", + "description": "Chat ID", + "schema": { + "example": "123456789@c.us", + "type": "string" + } + }, + { + "name": "messageId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PinMessageRequest" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ’¬ Chats" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/chats/{chatId}/messages/{messageId}/unpin": { + "post": { + "operationId": "ChatsController_unpinMessage", + "summary": "Unpins a message in the chat", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "chatId", + "required": true, + "in": "path", + "description": "Chat ID", + "schema": { + "example": "123456789@c.us", + "type": "string" + } + }, + { + "name": "messageId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ’¬ Chats" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/chats/{chatId}/archive": { + "post": { + "operationId": "ChatsController_archiveChat", + "summary": "Archive the chat", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "chatId", + "required": true, + "in": "path", + "description": "Chat ID", + "schema": { + "example": "123456789@c.us", + "type": "string" + } + } + ], + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": [ + "πŸ’¬ Chats" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/chats/{chatId}/unarchive": { + "post": { + "operationId": "ChatsController_unarchiveChat", + "summary": "Unarchive the chat", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "chatId", + "required": true, + "in": "path", + "description": "Chat ID", + "schema": { + "example": "123456789@c.us", + "type": "string" + } + } + ], + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": [ + "πŸ’¬ Chats" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/chats/{chatId}/unread": { + "post": { + "operationId": "ChatsController_unreadChat", + "summary": "Unread the chat", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "chatId", + "required": true, + "in": "path", + "description": "Chat ID", + "schema": { + "example": "123456789@c.us", + "type": "string" + } + } + ], + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": [ + "πŸ’¬ Chats" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/calls/reject": { + "post": { + "operationId": "CallsController_rejectCall", + "summary": "Reject incoming call", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RejectCallRequest" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ“ž Calls" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/channels": { + "get": { + "operationId": "ChannelsController_list", + "summary": "Get list of know channels", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "role", + "required": false, + "in": "query", + "schema": { + "enum": [ + "OWNER", + "ADMIN", + "SUBSCRIBER" + ], + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Channel" + } + } + } + } + } + }, + "tags": [ + "πŸ“’ Channels" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "post": { + "operationId": "ChannelsController_create", + "summary": "Create a new channel.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateChannelRequest" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Channel" + } + } + } + } + }, + "tags": [ + "πŸ“’ Channels" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/channels/{id}": { + "delete": { + "operationId": "ChannelsController_delete", + "summary": "Delete the channel.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "schema": { + "default": "123123123@newsletter" + }, + "description": "WhatsApp Channel ID" + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ“’ Channels" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "get": { + "operationId": "ChannelsController_get", + "summary": "Get the channel info", + "description": "You can use either id (123@newsletter) OR invite code (https://www.whatsapp.com/channel/123)", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "schema": { + "default": "123123123@newsletter" + }, + "description": "WhatsApp Channel ID or invite code from invite link https://www.whatsapp.com/channel/11111" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Channel" + } + } + } + } + }, + "tags": [ + "πŸ“’ Channels" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/channels/{id}/messages/preview": { + "get": { + "operationId": "ChannelsController_previewChannelMessages", + "summary": "Preview channel messages", + "description": "You can use either invite code (https://www.whatsapp.com/channel/123) or (123)ORChannel ID (123@newsletter).", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "description": "Channel id or invite code", + "schema": { + "default": "0029Va4K0PZ5a245NkngBA2M" + } + }, + { + "name": "downloadMedia", + "required": true, + "in": "query", + "schema": { + "default": false, + "type": "boolean" + } + }, + { + "name": "limit", + "required": true, + "in": "query", + "schema": { + "default": 10, + "type": "number" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelMessage" + } + } + } + } + } + }, + "tags": [ + "πŸ“’ Channels" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/channels/{id}/follow": { + "post": { + "operationId": "ChannelsController_follow", + "summary": "Follow the channel.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "schema": { + "default": "123123123@newsletter" + }, + "description": "WhatsApp Channel ID" + } + ], + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ“’ Channels" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/channels/{id}/unfollow": { + "post": { + "operationId": "ChannelsController_unfollow", + "summary": "Unfollow the channel.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "schema": { + "default": "123123123@newsletter" + }, + "description": "WhatsApp Channel ID" + } + ], + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ“’ Channels" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/channels/{id}/mute": { + "post": { + "operationId": "ChannelsController_mute", + "summary": "Mute the channel.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "schema": { + "default": "123123123@newsletter" + }, + "description": "WhatsApp Channel ID" + } + ], + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ“’ Channels" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/channels/{id}/unmute": { + "post": { + "operationId": "ChannelsController_unmute", + "summary": "Unmute the channel.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "schema": { + "default": "123123123@newsletter" + }, + "description": "WhatsApp Channel ID" + } + ], + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ“’ Channels" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/channels/search/by-view": { + "post": { + "operationId": "ChannelsController_searchByView", + "summary": "Search for channels (by view)", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelSearchByView" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelListResult" + } + } + } + } + }, + "tags": [ + "πŸ“’ Channels" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/channels/search/by-text": { + "post": { + "operationId": "ChannelsController_searchByText", + "summary": "Search for channels (by text)", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelSearchByText" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelListResult" + } + } + } + } + }, + "tags": [ + "πŸ“’ Channels" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/channels/search/views": { + "get": { + "operationId": "ChannelsController_getSearchViews", + "summary": "Get list of views for channel search", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelView" + } + } + } + } + } + }, + "tags": [ + "πŸ“’ Channels" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/channels/search/countries": { + "get": { + "operationId": "ChannelsController_getSearchCountries", + "summary": "Get list of countries for channel search", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelCountry" + } + } + } + } + } + }, + "tags": [ + "πŸ“’ Channels" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/channels/search/categories": { + "get": { + "operationId": "ChannelsController_getSearchCategories", + "summary": "Get list of categories for channel search", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelCategory" + } + } + } + } + } + }, + "tags": [ + "πŸ“’ Channels" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/status/text": { + "post": { + "operationId": "StatusController_sendTextStatus", + "summary": "Send text status", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TextStatus" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "🟒 Status" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/status/image": { + "post": { + "operationId": "StatusController_sendImageStatus", + "summary": "Send image status", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImageStatus" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "🟒 Status" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/status/voice": { + "post": { + "operationId": "StatusController_sendVoiceStatus", + "summary": "Send voice status", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VoiceStatus" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "🟒 Status" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/status/video": { + "post": { + "operationId": "StatusController_sendVideoStatus", + "summary": "Send video status", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VideoStatus" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "🟒 Status" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/status/delete": { + "post": { + "operationId": "StatusController_deleteStatus", + "summary": "DELETE sent status", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteStatusRequest" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "🟒 Status" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/status/new-message-id": { + "get": { + "operationId": "StatusController_getNewMessageId", + "summary": "Generate message ID you can use to batch contacts", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NewMessageIDResponse" + } + } + } + } + }, + "tags": [ + "🟒 Status" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/labels": { + "get": { + "operationId": "LabelsController_getAll", + "summary": "Get all labels", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Label" + } + } + } + } + } + }, + "tags": [ + "🏷️ Labels" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "post": { + "operationId": "LabelsController_create", + "summary": "Create a new label", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LabelBody" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Label" + } + } + } + } + }, + "tags": [ + "🏷️ Labels" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/labels/{labelId}": { + "put": { + "operationId": "LabelsController_update", + "summary": "Update a label", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "labelId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LabelBody" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Label" + } + } + } + } + }, + "tags": [ + "🏷️ Labels" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "delete": { + "operationId": "LabelsController_delete", + "summary": "Delete a label", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "labelId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": [ + "🏷️ Labels" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/labels/chats/{chatId}": { + "get": { + "operationId": "LabelsController_getChatLabels", + "summary": "Get labels for the chat", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "chatId", + "required": true, + "in": "path", + "description": "Chat ID", + "schema": { + "example": "123456789@c.us", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Label" + } + } + } + } + } + }, + "tags": [ + "🏷️ Labels" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "put": { + "operationId": "LabelsController_putChatLabels", + "summary": "Save labels for the chat", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "chatId", + "required": true, + "in": "path", + "description": "Chat ID", + "schema": { + "example": "123456789@c.us", + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SetLabelsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "🏷️ Labels" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/labels/{labelId}/chats": { + "get": { + "operationId": "LabelsController_getChatsByLabel", + "summary": "Get chats by label", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "labelId", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "🏷️ Labels" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/contacts/all": { + "get": { + "operationId": "ContactsController_getAll", + "summary": "Get all contacts", + "parameters": [ + { + "name": "session", + "required": true, + "in": "query", + "schema": { + "default": "default", + "type": "string" + } + }, + { + "name": "sortBy", + "required": false, + "in": "query", + "description": "Sort by field", + "schema": { + "enum": [ + "id", + "name" + ], + "type": "string" + } + }, + { + "name": "sortOrder", + "required": false, + "in": "query", + "description": "Sort order - descending (Z => A, New first) or ascending (A => Z, Old first)", + "schema": { + "enum": [ + "desc", + "asc" + ], + "type": "string" + } + }, + { + "name": "limit", + "required": false, + "in": "query", + "schema": { + "type": "number" + } + }, + { + "name": "offset", + "required": false, + "in": "query", + "schema": { + "type": "number" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ‘€ Contacts" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/contacts": { + "get": { + "operationId": "ContactsController_get", + "summary": "Get contact basic info", + "description": "The method always return result, even if the phone number is not registered in WhatsApp. For that - use /contacts/check-exists endpoint below.", + "parameters": [ + { + "name": "contactId", + "required": true, + "in": "query", + "schema": { + "example": "11111111111@c.us", + "type": "string" + } + }, + { + "name": "session", + "required": true, + "in": "query", + "schema": { + "default": "default", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ‘€ Contacts" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/contacts/check-exists": { + "get": { + "operationId": "ContactsController_checkExists", + "summary": "Check phone number is registered in WhatsApp.", + "parameters": [ + { + "name": "phone", + "required": true, + "in": "query", + "description": "The phone number to check", + "schema": { + "example": "1213213213", + "type": "string" + } + }, + { + "name": "session", + "required": true, + "in": "query", + "schema": { + "default": "default", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WANumberExistResult" + } + } + } + } + }, + "tags": [ + "πŸ‘€ Contacts" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/contacts/about": { + "get": { + "operationId": "ContactsController_getAbout", + "summary": "Gets the Contact's \"about\" info", + "description": "Returns null if you do not have permission to read their status.", + "parameters": [ + { + "name": "contactId", + "required": true, + "in": "query", + "schema": { + "example": "11111111111@c.us", + "type": "string" + } + }, + { + "name": "session", + "required": true, + "in": "query", + "schema": { + "default": "default", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ‘€ Contacts" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/contacts/profile-picture": { + "get": { + "operationId": "ContactsController_getProfilePicture", + "summary": "Get contact's profile picture URL", + "description": "If privacy settings do not allow to get the picture, the method will return null.", + "parameters": [ + { + "name": "contactId", + "required": true, + "in": "query", + "schema": { + "example": "11111111111@c.us", + "type": "string" + } + }, + { + "name": "refresh", + "required": false, + "in": "query", + "description": "Refresh the picture from the server (24h cache by default). Do not refresh if not needed, you can get rate limit error", + "schema": { + "default": false, + "example": false, + "type": "boolean" + } + }, + { + "name": "session", + "required": true, + "in": "query", + "schema": { + "default": "default", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ‘€ Contacts" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/contacts/block": { + "post": { + "operationId": "ContactsController_block", + "summary": "Block contact", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ContactRequest" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ‘€ Contacts" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/contacts/unblock": { + "post": { + "operationId": "ContactsController_unblock", + "summary": "Unblock contact", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ContactRequest" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ‘€ Contacts" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/contacts/{chatId}": { + "put": { + "operationId": "ContactsSessionController_put", + "summary": "Create or update contact", + "description": "Create or update contact on the phone address book. May not work if you have installed many WhatsApp apps on the same phone", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "chatId", + "required": true, + "in": "path", + "description": "Chat ID", + "schema": { + "example": "123456789@c.us", + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ContactUpdateBody" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Result" + } + } + } + } + }, + "tags": [ + "πŸ‘€ Contacts" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/lids": { + "get": { + "operationId": "LidsController_getAll", + "summary": "Get all known lids to phone number mapping", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "limit", + "required": false, + "in": "query", + "schema": { + "default": 100, + "type": "number" + } + }, + { + "name": "offset", + "required": false, + "in": "query", + "schema": { + "default": 0, + "type": "number" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LidToPhoneNumber" + } + } + } + } + } + }, + "tags": [ + "πŸ‘€ Contacts" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/lids/count": { + "get": { + "operationId": "LidsController_getLidsCount", + "summary": "Get the number of known lids", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CountResponse" + } + } + } + } + }, + "tags": [ + "πŸ‘€ Contacts" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/lids/{lid}": { + "get": { + "operationId": "LidsController_findPNByLid", + "summary": "Get phone number by lid", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "lid", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LidToPhoneNumber" + } + } + } + } + }, + "tags": [ + "πŸ‘€ Contacts" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/lids/pn/{phoneNumber}": { + "get": { + "operationId": "LidsController_findLIDByPhoneNumber", + "summary": "Get lid by phone number (chat id)", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "phoneNumber", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LidToPhoneNumber" + } + } + } + } + }, + "tags": [ + "πŸ‘€ Contacts" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/groups": { + "post": { + "operationId": "GroupsController_createGroup", + "summary": "Create a new group.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateGroupRequest" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "get": { + "operationId": "GroupsController_getGroups", + "summary": "Get all groups.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "sortBy", + "required": false, + "in": "query", + "description": "Sort by field", + "schema": { + "enum": [ + "id", + "subject" + ], + "type": "string" + } + }, + { + "name": "sortOrder", + "required": false, + "in": "query", + "description": "Sort order - descending (Z => A, New first) or ascending (A => Z, Old first)", + "schema": { + "enum": [ + "desc", + "asc" + ], + "type": "string" + } + }, + { + "name": "limit", + "required": false, + "in": "query", + "schema": { + "type": "number" + } + }, + { + "name": "offset", + "required": false, + "in": "query", + "schema": { + "type": "number" + } + }, + { + "name": "exclude", + "required": false, + "in": "query", + "description": "Exclude fields", + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "", + "participants" + ] + } + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/groups/join-info": { + "get": { + "operationId": "GroupsController_joinInfoGroup", + "summary": "Get info about the group before joining.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "code", + "required": true, + "in": "query", + "description": "Group code (123) or url (https://chat.whatsapp.com/123)", + "schema": { + "example": "https://chat.whatsapp.com/1234567890abcdef", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/groups/join": { + "post": { + "operationId": "GroupsController_joinGroup", + "summary": "Join group via code", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JoinGroupRequest" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JoinGroupResponse" + } + } + } + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/groups/count": { + "get": { + "operationId": "GroupsController_getGroupsCount", + "summary": "Get the number of groups.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CountResponse" + } + } + } + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/groups/refresh": { + "post": { + "operationId": "GroupsController_refreshGroups", + "summary": "Refresh groups from the server.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/groups/{id}": { + "get": { + "operationId": "GroupsController_getGroup", + "summary": "Get the group.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "description": "Group ID", + "schema": { + "example": "123123123@g.us", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "delete": { + "operationId": "GroupsController_deleteGroup", + "summary": "Delete the group.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "description": "Group ID", + "schema": { + "example": "123123123@g.us", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/groups/{id}/leave": { + "post": { + "operationId": "GroupsController_leaveGroup", + "summary": "Leave the group.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "description": "Group ID", + "schema": { + "example": "123123123@g.us", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/groups/{id}/picture": { + "get": { + "operationId": "GroupsController_getChatPicture", + "summary": "Get group picture", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "description": "Group ID", + "schema": { + "example": "123123123@g.us", + "type": "string" + } + }, + { + "name": "refresh", + "required": false, + "in": "query", + "description": "Refresh the picture from the server (24h cache by default). Do not refresh if not needed, you can get rate limit error", + "schema": { + "default": false, + "example": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChatPictureResponse" + } + } + } + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "put": { + "operationId": "GroupsController_setPicture", + "summary": "Set group picture", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "description": "Group ID", + "schema": { + "example": "123123123@g.us", + "type": "string" + } + }, + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProfilePictureRequest" + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Result" + } + } + } + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "delete": { + "operationId": "GroupsController_deletePicture", + "summary": "Delete group picture", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "description": "Group ID", + "schema": { + "example": "123123123@g.us", + "type": "string" + } + }, + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Result" + } + } + } + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/groups/{id}/description": { + "put": { + "operationId": "GroupsController_setDescription", + "summary": "Updates the group description.", + "description": "Returns \"true\" if the subject was properly updated. This can return \"false\" if the user does not have the necessary permissions.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "description": "Group ID", + "schema": { + "example": "123123123@g.us", + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DescriptionRequest" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/groups/{id}/subject": { + "put": { + "operationId": "GroupsController_setSubject", + "summary": "Updates the group subject", + "description": "Returns \"true\" if the subject was properly updated. This can return \"false\" if the user does not have the necessary permissions.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "description": "Group ID", + "schema": { + "example": "123123123@g.us", + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubjectRequest" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/groups/{id}/settings/security/info-admin-only": { + "put": { + "operationId": "GroupsController_setInfoAdminOnly", + "summary": "Updates the group \"info admin only\" settings.", + "description": "You can allow only admins to edit group info (title, description, photo).", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "description": "Group ID", + "schema": { + "example": "123123123@g.us", + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SettingsSecurityChangeInfo" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "get": { + "operationId": "GroupsController_getInfoAdminOnly", + "summary": "Get the group's 'info admin only' settings.", + "description": "You can allow only admins to edit group info (title, description, photo).", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "description": "Group ID", + "schema": { + "example": "123123123@g.us", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SettingsSecurityChangeInfo" + } + } + } + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/groups/{id}/settings/security/messages-admin-only": { + "put": { + "operationId": "GroupsController_setMessagesAdminOnly", + "summary": "Update settings - who can send messages", + "description": "Updates the group settings to only allow admins to send messages.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "description": "Group ID", + "schema": { + "example": "123123123@g.us", + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SettingsSecurityChangeInfo" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "get": { + "operationId": "GroupsController_getMessagesAdminOnly", + "summary": "Get settings - who can send messages", + "description": "The group settings to only allow admins to send messages.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "description": "Group ID", + "schema": { + "example": "123123123@g.us", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SettingsSecurityChangeInfo" + } + } + } + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/groups/{id}/invite-code": { + "get": { + "operationId": "GroupsController_getInviteCode", + "summary": "Gets the invite code for the group.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "description": "Group ID", + "schema": { + "example": "123123123@g.us", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/groups/{id}/invite-code/revoke": { + "post": { + "operationId": "GroupsController_revokeInviteCode", + "summary": "Invalidates the current group invite code and generates a new one.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "description": "Group ID", + "schema": { + "example": "123123123@g.us", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/groups/{id}/participants": { + "get": { + "operationId": "GroupsController_getParticipants", + "summary": "Get participants", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "description": "Group ID", + "schema": { + "example": "123123123@g.us", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/groups/{id}/participants/v2": { + "get": { + "operationId": "GroupsController_getGroupParticipants", + "summary": "Get group participants.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "description": "Group ID", + "schema": { + "example": "123123123@g.us", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupParticipant" + } + } + } + } + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/groups/{id}/participants/add": { + "post": { + "operationId": "GroupsController_addParticipants", + "summary": "Add participants", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "description": "Group ID", + "schema": { + "example": "123123123@g.us", + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ParticipantsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/groups/{id}/participants/remove": { + "post": { + "operationId": "GroupsController_removeParticipants", + "summary": "Remove participants", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "description": "Group ID", + "schema": { + "example": "123123123@g.us", + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ParticipantsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/groups/{id}/admin/promote": { + "post": { + "operationId": "GroupsController_promoteToAdmin", + "summary": "Promote participants to admin users.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "description": "Group ID", + "schema": { + "example": "123123123@g.us", + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ParticipantsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/groups/{id}/admin/demote": { + "post": { + "operationId": "GroupsController_demoteToAdmin", + "summary": "Demotes participants to regular users.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "id", + "required": true, + "in": "path", + "description": "Group ID", + "schema": { + "example": "123123123@g.us", + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ParticipantsRequest" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ‘₯ Groups" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/presence": { + "post": { + "operationId": "PresenceController_setPresence", + "summary": "Set session presence", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHASessionPresence" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "βœ… Presence" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "get": { + "operationId": "PresenceController_getPresenceAll", + "summary": "Get all subscribed presence information.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WAHAChatPresences" + } + } + } + } + } + }, + "tags": [ + "βœ… Presence" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/presence/{chatId}": { + "get": { + "operationId": "PresenceController_getPresence", + "summary": "Get the presence for the chat id. If it hasn't been subscribed - it also subscribes to it.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "chatId", + "required": true, + "in": "path", + "description": "Chat ID", + "schema": { + "example": "123456789@c.us", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAChatPresences" + } + } + } + } + }, + "tags": [ + "βœ… Presence" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/presence/{chatId}/subscribe": { + "post": { + "operationId": "PresenceController_subscribe", + "summary": "Subscribe to presence events for the chat.", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "chatId", + "required": true, + "in": "path", + "description": "Chat ID", + "schema": { + "example": "123456789@c.us", + "type": "string" + } + } + ], + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "βœ… Presence" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/screenshot": { + "get": { + "operationId": "ScreenshotController_screenshot", + "summary": "Get a screenshot of the current WhatsApp session (**WEBJS** only)", + "parameters": [ + { + "name": "session", + "required": true, + "in": "query", + "schema": { + "default": "default", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "image/jpeg": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/Base64File" + } + ] + } + } + }, + "description": "" + } + }, + "tags": [ + "πŸ“± Pairing" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/events": { + "post": { + "operationId": "EventsController_sendEvent", + "summary": "Send an event message", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EventMessageRequest" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAMessage" + } + } + } + } + }, + "tags": [ + "πŸ“… Events" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/ping": { + "get": { + "operationId": "PingController_ping", + "summary": "Ping the server", + "description": "Check if the server is alive and responding to requests.", + "parameters": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PingResponse" + } + } + } + } + }, + "tags": [ + "πŸ” Observability" + ] + } + }, + "/health": { + "get": { + "operationId": "HealthController_check", + "summary": "Check the health of the server", + "description": "Perform all health checks and return the server's health status.", + "parameters": [], + "responses": { + "200": { + "description": "The Health Check is successful", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "ok" + }, + "info": { + "type": "object", + "example": { + "database": { + "status": "up" + } + }, + "additionalProperties": { + "type": "object", + "required": [ + "status" + ], + "properties": { + "status": { + "type": "string" + } + }, + "additionalProperties": true + }, + "nullable": true + }, + "error": { + "type": "object", + "example": {}, + "additionalProperties": { + "type": "object", + "required": [ + "status" + ], + "properties": { + "status": { + "type": "string" + } + }, + "additionalProperties": true + }, + "nullable": true + }, + "details": { + "type": "object", + "example": { + "database": { + "status": "up" + } + }, + "additionalProperties": { + "type": "object", + "required": [ + "status" + ], + "properties": { + "status": { + "type": "string" + } + }, + "additionalProperties": true + } + } + } + } + } + } + }, + "503": { + "description": "The Health Check is not successful", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "error" + }, + "info": { + "type": "object", + "example": { + "database": { + "status": "up" + } + }, + "additionalProperties": { + "type": "object", + "required": [ + "status" + ], + "properties": { + "status": { + "type": "string" + } + }, + "additionalProperties": true + }, + "nullable": true + }, + "error": { + "type": "object", + "example": { + "redis": { + "status": "down", + "message": "Could not connect" + } + }, + "additionalProperties": { + "type": "object", + "required": [ + "status" + ], + "properties": { + "status": { + "type": "string" + } + }, + "additionalProperties": true + }, + "nullable": true + }, + "details": { + "type": "object", + "example": { + "database": { + "status": "up" + }, + "redis": { + "status": "down", + "message": "Could not connect" + } + }, + "additionalProperties": { + "type": "object", + "required": [ + "status" + ], + "properties": { + "status": { + "type": "string" + } + }, + "additionalProperties": true + } + } + } + } + } + } + } + }, + "tags": [ + "πŸ” Observability" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/server/version": { + "get": { + "operationId": "ServerController_get", + "summary": "Get the version of the server", + "parameters": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + } + } + } + }, + "tags": [ + "πŸ” Observability" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/server/environment": { + "get": { + "operationId": "ServerController_environment", + "summary": "Get the server environment", + "parameters": [ + { + "name": "all", + "required": false, + "in": "query", + "description": "Include all environment variables", + "schema": { + "default": false, + "example": false, + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + } + }, + "tags": [ + "πŸ” Observability" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/server/status": { + "get": { + "operationId": "ServerController_status", + "summary": "Get the server status", + "parameters": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServerStatusResponse" + } + } + } + } + }, + "tags": [ + "πŸ” Observability" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/server/stop": { + "post": { + "operationId": "ServerController_stop", + "summary": "Stop (and restart) the server", + "description": "If you're using docker, after calling this endpoint Docker will start a new container, so you can use this endpoint to restart the server", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StopRequest" + } + } + } + }, + "responses": { + "201": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StopResponse" + } + } + } + } + }, + "tags": [ + "πŸ” Observability" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/server/debug/cpu": { + "get": { + "operationId": "ServerDebugController_cpuProfile", + "summary": "Collect and return a CPU profile for the current nodejs process", + "description": "Uses the Node.js inspector profiler to capture a .cpuprofile", + "parameters": [ + { + "name": "seconds", + "required": false, + "in": "query", + "description": "How many seconds to sample CPU", + "schema": { + "minimum": 1, + "default": 30, + "example": 30, + "type": "number" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ” Observability" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/server/debug/heapsnapshot": { + "get": { + "operationId": "ServerDebugController_heapsnapshot", + "summary": "Return a heapsnapshot for the current nodejs process", + "description": "Return a heapsnapshot of the server's memory", + "parameters": [], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ” Observability" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/server/debug/browser/trace/{session}": { + "get": { + "operationId": "ServerDebugController_browserTrace", + "summary": "Collect and get a trace.json for Chrome DevTools ", + "description": "Uses https://pptr.dev/api/puppeteer.tracing", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + }, + { + "name": "seconds", + "required": true, + "in": "query", + "description": "How many seconds to trace", + "schema": { + "default": 30, + "example": 30, + "type": "number" + } + }, + { + "name": "categories", + "required": true, + "in": "query", + "description": "Categories to trace (all by default)", + "schema": { + "default": [ + "*" + ], + "example": [ + "*" + ], + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "πŸ” Observability" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/version": { + "get": { + "operationId": "VersionController_get", + "summary": "Get the server version ", + "deprecated": true, + "description": "Use 'GET /api/server/version' instead ", + "parameters": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + } + } + } + }, + "tags": [ + "πŸ” Observability" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/media/convert/voice": { + "post": { + "operationId": "MediaController_convertVoice", + "summary": "Convert voice to WhatsApp format (opus)", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VoiceFileDTO" + } + } + } + }, + "responses": { + "200": { + "content": { + "audio/ogg; codecs=opus": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/Base64File" + } + ] + } + } + }, + "description": "" + }, + "201": { + "description": "" + } + }, + "tags": [ + "πŸ–ΌοΈ Media" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/{session}/media/convert/video": { + "post": { + "operationId": "MediaController_convertVideo", + "summary": "Convert video to WhatsApp format (mp4)", + "parameters": [ + { + "name": "session", + "required": true, + "in": "path", + "schema": { + "default": "default" + }, + "description": "Session name" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VideoFileDTO" + } + } + } + }, + "responses": { + "200": { + "content": { + "video/mp4": { + "schema": { + "type": "string", + "format": "binary" + } + }, + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/Base64File" + } + ] + } + } + }, + "description": "" + }, + "201": { + "description": "" + } + }, + "tags": [ + "πŸ–ΌοΈ Media" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/apps": { + "get": { + "operationId": "AppsController_list", + "summary": "List all apps for a session", + "parameters": [ + { + "name": "session", + "required": true, + "in": "query", + "description": "Session name to list apps for", + "schema": { + "example": "default", + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "🧩 Apps" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "post": { + "operationId": "AppsController_create", + "summary": "Create a new app", + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/App" + } + } + } + }, + "responses": { + "201": { + "description": "" + } + }, + "tags": [ + "🧩 Apps" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/apps/{id}": { + "get": { + "operationId": "AppsController_get", + "summary": "Get app by ID", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "🧩 Apps" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "put": { + "operationId": "AppsController_update", + "summary": "Update an existing app", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/App" + } + } + } + }, + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "🧩 Apps" + ], + "security": [ + { + "api_key": [] + } + ] + }, + "delete": { + "operationId": "AppsController_delete", + "summary": "Delete an app", + "parameters": [ + { + "name": "id", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "tags": [ + "🧩 Apps" + ], + "security": [ + { + "api_key": [] + } + ] + } + }, + "/api/apps/chatwoot/locales": { + "get": { + "operationId": "ChatwootLocalesController_getLanguages", + "summary": "Get available languages for Chatwoot app", + "description": "Get available languages for Chatwoot app", + "parameters": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + } + }, + "tags": [ + "🧩 Apps" + ], + "security": [ + { + "api_key": [] + } + ] + } + } + }, + "info": { + "title": "WAHA - WhatsApp HTTP API", + "description": "WhatsApp HTTP API that you can run in a click!
πŸ“Š Dashboard

Learn more:

Support the project and get WAHA Plus version!

", + "version": "2026.1.4", + "contact": {} + }, + "tags": [ + { + "name": "πŸ–₯️ Sessions", + "description": "Control WhatsApp sessions (accounts)" + }, + { + "name": "πŸ“± Pairing", + "description": "Pair a session with WhatsApp on your phone." + }, + { + "name": "πŸ†” Profile", + "description": "Your profile information" + }, + { + "name": "πŸ“€ Chatting", + "description": "Chatting methods" + }, + { + "name": "βœ… Presence", + "description": "Presence information" + }, + { + "name": "πŸ“’ Channels", + "description": "Channels (newsletters) methods" + }, + { + "name": "🟒 Status", + "description": "Status (aka stories) methods" + }, + { + "name": "πŸ’¬ Chats", + "description": "Chats methods" + }, + { + "name": "πŸ”‘ Api Keys", + "description": "API Keys management" + }, + { + "name": "πŸ‘€ Contacts", + "description": "Contacts methods.
\n Use phone number (without +) or phone number and `@c.us` at the end as `contactId`.
\n 'E.g: `12312312310` OR `12312312310@c.us`
" + }, + { + "name": "πŸ‘₯ Groups", + "description": "Groups methods.
" + }, + { + "name": "πŸ“ž Calls", + "description": "Call handling methods" + }, + { + "name": "πŸ“… Events", + "description": "Event Message" + }, + { + "name": "🏷️ Labels", + "description": "Labels - available only for WhatsApp Business accounts" + }, + { + "name": "πŸ–ΌοΈ Media", + "description": "Media methods" + }, + { + "name": "🧩 Apps", + "description": "Applications (built-in integrations)" + }, + { + "name": "πŸ” Observability", + "description": "Other methods" + }, + { + "name": "πŸ—„οΈ Storage", + "description": "Storage methods" + } + ], + "servers": [ + { + "url": "{protocol}://{host}:{port}/{baseUrl}", + "description": "", + "variables": { + "protocol": { + "default": "http", + "enum": [ + "http", + "https" + ], + "description": "The protocol used to access the server." + }, + "host": { + "default": "localhost", + "description": "The hostname or IP address of the server." + }, + "port": { + "default": "3000", + "description": "The port number on which the server is listening for requests" + }, + "baseUrl": { + "default": "", + "description": "The base URL path for all API endpoints. This can be used to group related endpoints together under a common path." + } + } + } + ], + "components": { + "securitySchemes": { + "api_key": { + "type": "apiKey", + "in": "header", + "name": "X-Api-Key", + "description": "Your secret api key" + } + }, + "schemas": { + "Base64File": { + "type": "object", + "properties": { + "mimetype": { + "type": "string" + }, + "data": { + "type": "string" + } + }, + "required": [ + "mimetype", + "data" + ] + }, + "QRCodeValue": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "RequestCodeRequest": { + "type": "object", + "properties": { + "phoneNumber": { + "type": "string", + "description": "Mobile phone number in international format", + "example": "12132132130" + }, + "method": { + "type": "string", + "description": "How would you like to receive the one time code for registration? |sms|voice. Leave empty for Web pairing.", + "example": null + } + }, + "required": [ + "phoneNumber" + ] + }, + "ApiKeyRequest": { + "type": "object", + "properties": { + "isAdmin": { + "type": "boolean", + "default": false, + "example": false + }, + "session": { + "type": "string", + "nullable": true, + "default": null, + "example": "default" + }, + "isActive": { + "type": "boolean", + "default": true, + "example": true + } + }, + "required": [ + "isAdmin", + "session", + "isActive" + ] + }, + "ApiKeyDTO": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "key_id_00000000000000000000000000" + }, + "key": { + "type": "string", + "example": "key_11111111111AAAAAAAAAAAAAAAAAAAAA" + }, + "isActive": { + "type": "boolean", + "example": true + }, + "isAdmin": { + "type": "boolean", + "example": false + }, + "session": { + "type": "string", + "nullable": true, + "example": "default" + } + }, + "required": [ + "id", + "key", + "isActive", + "isAdmin" + ] + }, + "ChatWootCommandsConfig": { + "type": "object", + "properties": { + "server": { + "type": "boolean", + "default": true + }, + "queue": { + "type": "boolean", + "default": false + } + }, + "required": [ + "server" + ] + }, + "ChatWootConversationsConfig": { + "type": "object", + "properties": { + "markAsRead": { + "type": "boolean", + "default": true, + "description": "Process message.ack events to mark ChatWoot conversations as read. Enabled by default." + }, + "sort": { + "type": "string", + "enum": [ + "activity_newest", + "created_newest", + "created_oldest", + "activity_oldest" + ] + }, + "status": { + "type": "array", + "nullable": true, + "items": { + "type": "string", + "enum": [ + "open", + "pending", + "snoozed", + "resolved" + ] + } + } + }, + "required": [ + "sort", + "status" + ] + }, + "ChatWootAppConfig": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "accountId": { + "type": "number" + }, + "accountToken": { + "type": "string" + }, + "inboxId": { + "type": "number" + }, + "inboxIdentifier": { + "type": "string" + }, + "linkPreview": { + "default": "OFF", + "enum": [ + "OFF", + "LG", + "HG" + ], + "type": "string" + }, + "locale": { + "type": "string", + "default": "en-US" + }, + "templates": { + "type": "object" + }, + "commands": { + "$ref": "#/components/schemas/ChatWootCommandsConfig" + }, + "conversations": { + "$ref": "#/components/schemas/ChatWootConversationsConfig" + } + }, + "required": [ + "url", + "accountId", + "accountToken", + "inboxId", + "inboxIdentifier", + "locale" + ] + }, + "CallsAppChannelConfig": { + "type": "object", + "properties": { + "reject": { + "type": "boolean", + "default": true, + "description": "Reject incoming calls for this chat type" + }, + "message": { + "type": "string", + "description": "Optional auto-reply message sent after the call is rejected. If empty, no message is sent." + } + }, + "required": [ + "reject" + ] + }, + "CallsAppConfig": { + "type": "object", + "properties": { + "dm": { + "default": { + "reject": true + }, + "description": "Rules applied to direct messages (non-group calls)", + "allOf": [ + { + "$ref": "#/components/schemas/CallsAppChannelConfig" + } + ] + }, + "group": { + "default": { + "reject": true + }, + "description": "Rules applied to group calls", + "allOf": [ + { + "$ref": "#/components/schemas/CallsAppChannelConfig" + } + ] + } + }, + "required": [ + "dm", + "group" + ] + }, + "App": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "default": true, + "description": "Enable or disable this app without deleting it. If omitted, treated as enabled (true)." + }, + "id": { + "type": "string" + }, + "session": { + "type": "string" + }, + "app": { + "enum": [ + "chatwoot", + "calls" + ], + "type": "string" + }, + "config": { + "type": "object" + } + }, + "required": [ + "id", + "session", + "app", + "config" + ] + }, + "MeInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "11111111111@c.us" + }, + "lid": { + "type": "string", + "example": "123123@lid" + }, + "jid": { + "type": "string", + "example": "123123:123@s.whatsapp.net", + "description": "Your id with device number" + }, + "pushName": { + "type": "string" + } + }, + "required": [ + "id", + "pushName" + ] + }, + "ProxyConfig": { + "type": "object", + "properties": { + "server": { + "type": "string", + "example": "localhost:3128" + }, + "username": { + "type": "string", + "example": null + }, + "password": { + "type": "string", + "example": null + } + }, + "required": [ + "server" + ] + }, + "IgnoreConfig": { + "type": "object", + "properties": { + "status": { + "type": "boolean", + "description": "Ignore a status@broadcast (stories) events" + }, + "groups": { + "type": "boolean", + "description": "Ignore groups events" + }, + "channels": { + "type": "boolean", + "description": "Ignore channels events" + }, + "broadcast": { + "type": "boolean", + "description": "Ignore broadcast events (broadcast list and status)" + } + } + }, + "ClientSessionConfig": { + "type": "object", + "properties": { + "deviceName": { + "type": "string" + }, + "browserName": { + "type": "string" + } + } + }, + "NowebStoreConfig": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "default": false, + "description": "Enable or disable the store for contacts, chats, and messages.", + "example": true + }, + "fullSync": { + "type": "boolean", + "default": false, + "description": "Enable full sync on session initialization (when scanning QR code).\nFull sync will download all contacts, chats, and messages from the phone.\nIf disabled, only messages early than 90 days will be downloaded and some contacts may be missing." + } + }, + "required": [ + "enabled", + "fullSync" + ] + }, + "NowebConfig": { + "type": "object", + "properties": { + "markOnline": { + "type": "boolean", + "default": true, + "description": "Mark the session as online when it connects to the server." + }, + "store": { + "$ref": "#/components/schemas/NowebStoreConfig" + } + }, + "required": [ + "markOnline" + ] + }, + "GowsStorageConfig": { + "type": "object", + "properties": { + "messages": { + "type": "boolean", + "nullable": true, + "description": "Store messages locally. Set to false to disable; omit or null to keep enabled.", + "example": true + }, + "groups": { + "type": "boolean", + "nullable": true, + "description": "Store groups locally. Set to false to disable; omit or null to keep enabled.", + "example": true + }, + "chats": { + "type": "boolean", + "nullable": true, + "description": "Store chats locally. Set to false to disable; omit or null to keep enabled.", + "example": true + }, + "labels": { + "type": "boolean", + "nullable": true, + "description": "Store labels locally. Set to false to disable; omit or null to keep enabled.", + "example": true + } + } + }, + "GowsConfig": { + "type": "object", + "properties": { + "storage": { + "$ref": "#/components/schemas/GowsStorageConfig" + } + } + }, + "WebjsConfig": { + "type": "object", + "properties": { + "tagsEventsOn": { + "type": "boolean", + "default": false, + "description": "Enable emission of special 'tag:*' engine events required for presence.update and message.ack.\nWARNING: Enabling this may have performance and stability impact. Disabled by default." + } + } + }, + "HmacConfiguration": { + "type": "object", + "properties": { + "key": { + "type": "string", + "example": "your-secret-key" + } + } + }, + "RetriesConfiguration": { + "type": "object", + "properties": { + "delaySeconds": { + "type": "number", + "example": 2 + }, + "attempts": { + "type": "number", + "example": 15 + }, + "policy": { + "enum": [ + "linear", + "exponential", + "constant" + ], + "type": "string", + "example": "linear" + } + } + }, + "CustomHeader": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "X-My-Custom-Header" + }, + "value": { + "type": "string", + "example": "Value" + } + }, + "required": [ + "name", + "value" + ] + }, + "WebhookConfig": { + "type": "object", + "properties": { + "url": { + "type": "string", + "example": "https://webhook.site/11111111-1111-1111-1111-11111111", + "description": "You can use https://docs.webhook.site/ to test webhooks and see the payload" + }, + "events": { + "example": [ + "message", + "session.status" + ], + "type": "array", + "items": { + "type": "object" + } + }, + "hmac": { + "example": null, + "allOf": [ + { + "$ref": "#/components/schemas/HmacConfiguration" + } + ] + }, + "retries": { + "example": null, + "allOf": [ + { + "$ref": "#/components/schemas/RetriesConfiguration" + } + ] + }, + "customHeaders": { + "example": null, + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomHeader" + } + } + }, + "required": [ + "url", + "events" + ] + }, + "SessionConfig": { + "type": "object", + "properties": { + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session. You'll get 'metadata' in all webhooks." + }, + "proxy": { + "example": null, + "allOf": [ + { + "$ref": "#/components/schemas/ProxyConfig" + } + ] + }, + "debug": { + "type": "boolean", + "default": false + }, + "ignore": { + "example": { + "status": null, + "groups": null, + "channels": null + }, + "description": "Ignore some events related to specific chats", + "allOf": [ + { + "$ref": "#/components/schemas/IgnoreConfig" + } + ] + }, + "client": { + "description": "How connected session renders in device - in format 'Browser (Device)' - Firefox (MacOS)", + "example": { + "browserName": "Firefox", + "deviceName": "MacOS" + }, + "allOf": [ + { + "$ref": "#/components/schemas/ClientSessionConfig" + } + ] + }, + "noweb": { + "example": { + "store": { + "enabled": true, + "fullSync": false + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/NowebConfig" + } + ] + }, + "gows": { + "example": { + "storage": { + "messages": true, + "groups": true, + "chats": true, + "labels": true + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/GowsConfig" + } + ] + }, + "webjs": { + "description": "WebJS-specific settings.", + "allOf": [ + { + "$ref": "#/components/schemas/WebjsConfig" + } + ] + }, + "webhooks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookConfig" + } + } + } + }, + "SessionInfo": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "default", + "description": "Session name (id)" + }, + "apps": { + "description": "Apps configured for the session.", + "nullable": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/App" + } + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "assignedWorker": { + "type": "string" + }, + "presence": { + "type": "object" + }, + "timestamps": { + "type": "object", + "properties": { + "activity": { + "required": true, + "type": "number", + "nullable": true + } + } + }, + "status": { + "enum": [ + "STOPPED", + "STARTING", + "SCAN_QR_CODE", + "WORKING", + "FAILED" + ], + "type": "string" + }, + "config": { + "$ref": "#/components/schemas/SessionConfig" + } + }, + "required": [ + "name", + "presence", + "timestamps", + "status" + ] + }, + "SessionCreateRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "default", + "description": "Session name (id)" + }, + "apps": { + "nullable": true, + "description": "Apps to be synchronized for this session.", + "type": "array", + "items": { + "$ref": "#/components/schemas/App" + } + }, + "start": { + "type": "boolean", + "description": "Start session after creation", + "example": true, + "default": true + }, + "config": { + "$ref": "#/components/schemas/SessionConfig" + } + } + }, + "SessionDTO": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "default", + "description": "Session name (id)" + }, + "status": { + "enum": [ + "STOPPED", + "STARTING", + "SCAN_QR_CODE", + "WORKING", + "FAILED" + ], + "type": "string" + }, + "config": { + "$ref": "#/components/schemas/SessionConfig" + } + }, + "required": [ + "name", + "status" + ] + }, + "SessionUpdateRequest": { + "type": "object", + "properties": { + "apps": { + "nullable": true, + "description": "Apps to be synchronized for this session.", + "type": "array", + "items": { + "$ref": "#/components/schemas/App" + } + }, + "config": { + "$ref": "#/components/schemas/SessionConfig" + } + } + }, + "SessionStartDeprecatedRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "default", + "description": "Session name (id)" + }, + "config": { + "$ref": "#/components/schemas/SessionConfig" + } + }, + "required": [ + "name" + ] + }, + "SessionStopDeprecatedRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "default", + "description": "Session name (id)" + }, + "logout": { + "type": "boolean", + "default": false, + "example": false, + "description": "Stop and logout from the session." + } + }, + "required": [ + "name" + ] + }, + "SessionLogoutDeprecatedRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "default", + "description": "Session name (id)" + } + }, + "required": [ + "name" + ] + }, + "MyProfile": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "11111111111@c.us" + }, + "picture": { + "type": "string", + "nullable": true, + "example": "https://example.com/picture.jpg" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "picture", + "name" + ] + }, + "ProfileNameRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "My New Name" + } + }, + "required": [ + "name" + ] + }, + "Result": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "default": true + } + }, + "required": [ + "success" + ] + }, + "ProfileStatusRequest": { + "type": "object", + "properties": { + "status": { + "type": "string", + "example": "πŸŽ‰ Hey there! I am using WhatsApp πŸŽ‰" + } + }, + "required": [ + "status" + ] + }, + "RemoteFile": { + "type": "object", + "properties": { + "mimetype": { + "type": "string", + "description": "MIME type of the attachment.", + "example": "image/jpeg" + }, + "filename": { + "type": "string", + "description": "Document file name. Value can be null", + "example": "filename.jpg" + }, + "url": { + "type": "string", + "example": "https://github.com/devlikeapro/waha/raw/core/examples/waha.jpg" + } + }, + "required": [ + "mimetype", + "url" + ] + }, + "BinaryFile": { + "type": "object", + "properties": { + "mimetype": { + "type": "string", + "description": "MIME type of the attachment.", + "example": "image/jpeg" + }, + "filename": { + "type": "string", + "description": "Document file name. Optional", + "example": "filename.jpeg" + }, + "data": { + "type": "string", + "description": "Base64-encoded data of the file", + "example": "/9j/4AAQSkZJRgABAQAAAQABAAD//gAfQ29tcHJlc3NlZCBieSBqcGVnLXJlY29tcHJlc3P/2wCEAAQEBAQEBAQEBAQGBgUGBggHBwcHCAwJCQkJCQwTDA4MDA4MExEUEA8QFBEeFxUVFx4iHRsdIiolJSo0MjRERFwBBAQEBAQEBAQEBAYGBQYGCAcHBwcIDAkJCQkJDBMMDgwMDgwTERQQDxAUER4XFRUXHiIdGx0iKiUlKjQyNEREXP/CABEIAgACAAMBIgACEQEDEQH/xAAcAAEAAgIDAQAAAAAAAAAAAAAABgcEBQEDCAL/2gAIAQEAAAAA9/AAABxix7SajXYWN1uzJzdjud1v8vkAAAAAADjRRGL6kAAbaUzDdcgAAAAAOmDQnVAAADazec9oAAAAA6K9gvQAAAA753YXcAAAAD5hNb4oAAAAMuyppyAAAAa2p4+AAAAAJBbmcAAABD6s6AAAAAAd9qy4AAAKzgIAAAAAAn9lgAAOKjiQAAAAAAJdbfIAAcU7GAAAAAAAEnuLkAAVDEwAAAAAABLbdAAKxgYAAAAAc9HR9ZXICfWYABDKoAAAAAOqLRvR4x9bSQSrbgtuXgBrKO6QAAAAPmFQfoAG/sLajuvPYgCk9CAAAABr6u1QAH1PpsN9dgBBquAAAAA1NUYwAAmNii05uB10HigAAAAwagxgPn7+XIE6nhlX13ArevQAAAAcVJpQTi2ZvteuMV1UWvBbG+LDscOig+gAAAAEQrgMr0TZde1zosiW2rm+dK6DZXHy7787xAK0AAAABxTGCO71PtPNUTD7u+6/OFYhZ0oLNnpxRWrAACPxDKnOYAR6qgvyy/JuqAXPeHkbQiQWsbS9eUfpUAANFUxsrj5AV3DRuPYfmiu74sryJ0A9WaDzkPq8fsuvfqygQAAV1DhcO1AVHpRclvePfr2z9+c6tBZnovxb1C3N0T6zOKL1QAAQqvj6uvJA5pLFHpLo86ceytn5QiQNn7N8kxUWdKDa3phUGAAD4q2Pc2VKwHNH9A9RRehVuegvKsLB2e3PLMFFkS4X5H6jAAA1FQba4ADmk8Qekurzkempr5nhFpa6vm49keSYqLMlQt3SV6AABqaf21wACo9KLjuLx0d3o+yYVM/ugqdtL0H4u6xbO9FiaeJgAAamn9rcIAruGja+xfN1bCyroluo8xxT1nEvPAXh3CWa3SgAAamn9tcAAjlWDj19WNIBx39XF4XH5F0w3ltBu8LBAAa7H4NZW2bZ4+8/IHFLYZsfZvlWNbGPh23pcfmavAsmWhnY/SAHEKhOKAA3tgbkhtdlnekYvJ+YLXWk75bZ315xggZ1zfQd3X8gDiro2AAHNnyZxUGpehpLBYItScbfHi9cVPigtKSA+nyAIPAQAAO25cxrqh6AOHH0AmViAfX31AHFJY4AACdTw0dVdQAAlFm8gd2RggGqp4AAA3tsjU1dgAAJvPwDOzNKAaGpwY/fyDr47Q2dxh1QKG/IA21h70AbvYxMA0FUD4ieJ2y7vGnjrf7sbK5AMSIxrTjjLkMrkAAJZt68A+NbF4MNVGje70QnrczkZlq9uwAfGB0fWdlcAALD3NRgx6dwwYEUJFuBD8V3TQCaWEAAAAW5IKDBHqqAaTW5u/5GLoG9zANjcoAAABfmbReqCN1aAAAAZ90cAAAAbW9OazgIRyrAAAADPujgAAACe2a0VJBo6lAAAANpcQAAAC6pA4orVjiuND0YwMHVANrnA2HbPZIAAABtL2ECrIHMeqkGk0ADfbwNjc3AAAABZc/HVQPQCP1SDFh4CXZgbG5QAAADvvvICuK8BoanAjepBtZKDZ3GAAAAWDZIOqhMUMGlwOI9pxuJDyCRWoAAAAyr67gITVYKf1IDpwGd3gLGmAAAAC0ZyAUpoA0FUAAAbK4fsAAADfXYAMCiukIlXHyAANja2eAAAB3XjswAh9Sg10M0eNxxyDjnnYSSY9gAAAC15mABWcBAcgA4AAAAE8s4AAqGJgAAAAAACV2+AAOKdjAAAAAAACT3FyAAHFRxIAAAAAAEst3kAABWcBAAAAAAE8s3kAAAQ6rOkAAAAAHdaMzAAAA19Sx8AAAAASC19mAAAAcQytcMAAAAGZY825AAAAB8V5A8cAAABkTuwO8AAAAAdUIg2qAAAG1m047wAAAAAHGiiMX1IAA20nl2+5AAAAAAA4xY/ptPrMPo6nb35mz2+5kOWAAAD//EABsBAQACAwEBAAAAAAAAAAAAAAAEBQIDBgEH/9oACAECEAAAAAA11NXBi6m2VOtLbYAACJzdLgAM7vo5YADDmeexAAZdD02YAROMggAAndnLAIHE6AAAG/tp4EThNIAAePTd3csMODhAAGuBFwbZc7Kb3mY5XnQACLV4g2223o+pInAYgANFP4trjCigtl1s7+W5CiAAKXT73EShz6Wv5dPsb7rtXzvADGqztBopnUR8ue8drztZne5/RKrjQEenX2RCrHf8D9b+YwUvqeLXmzsayhAKjdYiBXO+4Hs6+lxw7bhV1uvoNeAVm6aIlU7rjdHX9LT8/J5lfZT42kHmKt3S/cvcKPzrqWv1+zuz4DDfct2rwK6D4DKymVsH6Dh740cfoW0p68ESqAPbrZT6fHrwnWR7t0ishPfD14s5uNbDDKwnDdJgGNXFys9EFZe1ixnetUXX7ulZBPn0LCj8e2OiInoBtuwAL6z45rowAMr4ADsrX53hjS4eMto0+Pd9wADP6Jt5CiKuGzsxW61lOAAvuuROAxVkImSkaEWkwAGXfyzledRqgZsD272AA6PqRhwcJDgYA2WUgAE3vMwicJpAAAG7u5YEDiNIAADd288AicXCAABO7OWAGHM89iAAy6HpswAETnKTAAZ3fRywAAa6mrgxdbZKnWlrtAH/xAAbAQEAAgMBAQAAAAAAAAAAAAAABAUCAwYBB//aAAgBAxAAAAAAMIEGJowZ75c6fmAACPTVmIAys7mQAAxpKfwAB7cXeQAaOaigAAldLvAIvMagAAG3p5QEfltQAAePTZ1UgMeVigAGEXRizkSvZXVZCipgADRB8BnYZ3N6R+S8AAaq/wAWFhjVxWdjn1shz1UAAVuv3p49VndRKJKmWvQ4cdiB5AynDVXLzV7UeOmpoWVpl2NfzgDTXrTIjQnWcp9B4eKkXvNLPPo4NUAV+yYIsN1nJ9JErPMem5ZZbLWLEAIWySI8F1POauhuq6p3Ui0yl6NYPPEPOS99xrPOhrImHsnpeSx22Lbr8CHG8B7Mkw4vXYjVzupP3vXgjwQBZ5V+o98EqYe7NQhRnvgE2T5Cjh7LlDbuiHkDTlN1RU32ClyvWGjBs35BLl1LGs8ezNUdLRDOzAAtpvOMKwADK0AA6Sfx2ONdge7Br8e7bAAGXY589VEGOzmiFgmyQALXoUfkvEKMSd7RGJ0gAHvWyCipmmvGTE9sswAXN6MeUjI8Tzwe5TNwAJXVZBH5bUAAANvUyAIvL6wAAG3p5QBH5uKAACV0kgAMaSoxAAZW93kAA0U1XiAMrO5kAAAwgQYujW2b5U6fmAP/xABREAACAQIDAgcJCgwFAwUBAAABAgMEBQAGESExEhMgQVFhcQciMDJAQnKBkRAUFVBSU6GxwdEjMzVDVWJzgpKTorIWJDRU0mN0g0RFZMLhw//aAAgBAQABPwDyiqu1vpNlRVwx6czOAT6sVWdLPESImlm9BNB/Vpioz65BWmt4A6Xf7AMS5zvbghHiiB+Qn/InEuY73N49xk/dAT+0DD3O5P49fUntlbDTzMdWmc9rHBZjvJOAzDcSMLPMh1WZwepiMLc7kniXCpHZK2Isx3uHxLhJ+8A/9wOIs53pAA7xSgfLT/iRilz/ACJsqLeDrvZH+wjFJnSyysOOMsPpp/x1xTXW31ZHvesikPyVcE+zGvxYSBvOK3M1ooeEr1YkceZF35+jYMVuep31WgpFQfLlOp9gxV3y7VuvH10nBPmqeAvsXTyGkvt2oiOIrpQBuVjwx7G1xRZ7nTRa6kVxzvFsPsOKDNForVVI6sRSsfFl7w4BB3H4nq66koo+HUTpFGOdiBri454iTWO2wcYfnJNi+obziuvdzuOoqqtyh8xe9T2Dyehvd0tpHvWrcIPMbvk9h3YtueomKpcoDG3zke1fZvGKOto6xONpp0kj5ypB9XxHW1tLQxGaqnWNF5yfoGLpnd24UVri4I+ekG31LioqqirkMtTM8rnnc6+V09VUUkgmppnicc6nTFrzu6hYbrFwh89GNvay4oq2krIRUUsySod2h5+vy9mVQWYgADUk4vOc4KctBbAJpdxkP4tezpxV11XXymarnaV+s7B2Dm8vo66roJRNSTtG/VuPaOfFlzvFPwYLmBFLzS+Y3b8nCsGAZSCDtBHll1vNFaouMqZdCR3ka7XbsGLxmOuuxZC3FU3NEh3+kef4js+Y6+0MqK3G0+u2Jzu9E82LTeaC7RcZTy7VGrxnYwPWPKr/AJrhoOHS0RWWq3E70j7ek4qKmermeeplaSVjtZviWnqZ6SZJ6aVo5F3MuMv5shuHFUldwY6ncp3I5+/q8nZlRWZiAoGpJxmLNjTF6K1uVj3PMN7dS9XX8U5cza0BSiurloT3qzHevU334RldVZWBUjUEeSSyx08TyzOFRQWZidAAMZizLLc2alpGZKMHsMnWerq+K8uZnltTrS1TF6Jj2mP7x1YhminjSWF1ZHAKlTqCPIp5o4InllcJGgJLHYABjMOYpbtK0EJKUanYu4uRzt8W5dzFNaJVhmYtRsdq86E86/aMQzRzxJNE4aNgGVgdQQfIHdY0Z3YKqjUk7ABjMuYnukrUtMxFGjfzCOc9XR8X5ZzG9pmFNUuTRufXGTzjqwjq6q6MCrDUEbQR4fNmYjUM9son/BKdJnHnkeaOofEmh36Yeppo/wAZUwp6UijBudtG+4U381cLX0D+LXU57JVwrK+1HVvRIPgco5kaldLXWPrCx0hZvNJ80+GzZfxQxGhpH/zUi98w3xoftPxFPPBSxmapmSKMec50GKzOFBCStHDJUN8o94n07cVOa7xPqI5Ep16Il2+1tcTVlXUkmoq5pPScnHBHQMaDoxoOgYVmQ6oxU9KkjFPfLvS6cVXykfJc8Mf1Ypc5zqQtdRpIOdojwG9h1GKG+2u4EJBUhJT+bl7xvVzHl5QzF78iFBWSf5mJe9Y75EH2jwl6usVpopKh9C/ixp8pzuGKiolqp5aidy0kjFmJ+IHdIkaSV1RFGrMx0AGLnm9E4UNqQO27j5B3v7q8+KmqqayUzVU7yydLnXTs6PB23Mlxt3BjZ/fEA/NynaPRbeMW280N1X/LSFZQNWhfY4+8cmnqJaWeKogcrJGwZSMWS7R3ahjnj0V/FkXnVxvHgmZUVnYgADUk4zDd2u1czqT73i1SEdXO3r+ILlc6S1QcfVPtOyONfHc9WLpeay7SaztwYQdUhXxF+8+GVmRldGKup1VlOhB6jiyZpEpSkurBXOxKjcG6n6D18nL14a0VyuzH3vLoko6uZvVhWV1VlIKsNQR4HOl4MEK2yB9JJhrLpzR9H73xBd7vT2in4yTR53B4qLXax6T0KMVdZU19Q9VVSF5G9gHQBzDyHL2YzTGOguD60+6OVt8fUf1fq5OSbzx8JtdQ54yFdYj0p/8AngLhXQ0FLPUSHSOJSSenqGK2slr6uernPfyNr2DmA7PL7jcILZSSVc+0DYic7udyjFZWT19TJV1LayOfUo5lHUPAFlG9hgBm2qrEdQJwWA3nTtwCDu8Ble+HVLVWP1U7n+w/ZyKGsloKuCrhPfxsD2jnB7cUVbFX0dPUQHWOROF/+Hs5ed7pwnitcTbF0km06fNXy8kKCzEBQCSTuAGL7dmu1aXQkU0Wqwr1c7drcokDacZf7n2Yr+qVAgFFRNunqQV4Q6UTe2LX3KMt0QVrg89xl5+G3FRepUxSWGxUAAorNRQ6c6wrr7SMBUGwIgHUoGJIKeZSk1NC6neHjVh9IxX5FylcuEZ7HBG58+n1hb+jF57kDAPNl+58PnFPV7D2CRftGLnarlZqk0l1opaabmEg2MBzqRsYdnK3bQdCNoIxl+7fCtH+Fb/NQ6LL+t0P6+Rka68B5rXK2xtZIu3nA5VfWR0dJPUybI4kLH1c2Kmolq6iapmOskjlj6/L823I09KlvibSWoGsmnNEP+XKoqKruVXBQ0FO89TM3BjjQbT9wHOcZS7nFusaxV12WOtue8AjhQQHoQHxm/WOGYBWd2AVRqzMdAAOck4vPdNyzai8NNK9xqF82l/Fg9ch2ezFd3Xb/OWFvoKOkTmLhp39pIGH7pOdHJIvATqWCID6VxB3UM5QkF62nmHRLTp/9dMW3uxHVUvNlGnPLRv/APR8WXMlkzDHw7TXpM4GrwnvJk7UO3FytlvvFI9DdKSOpp281xuPSp3qesYzn3P6zLfGXCgZ6q067WO2WDqk6V6G5VpuLWuvhqhqY/FlX5UZ34VldVdGBVgCpHODuPu0tRLSVENTCdJI3DD1YoauKspKeph8WVA/t5j2cnPFx4EUFtjbbIeNk9Ebh6z5eSqgsx0UAknoAxcq1rjXVNY2527wdCDYo5NNT1FZUQUlJC0tRM4jijXezNuGMm5QpMqUPmy3OdB76qP/AOadCD6cZhzHbMs0JrblLtbUQwJtlmYcyj6zjMudL1meRkqpeIoddUo4iRGPTPnnt5UUssEsc8ErxTIeEkkbFXU9IIxk/uoca8NszQ6hjokVfuBPMJgP7sEK6srBWRl0IOhVlP1g47oWSBYJjd7VGfgqZ9HjH/ppG5vQbm5WU6/31bjSudZKU8DtjbavIyJcg0c9tmYnizxkY/VO8eo8gnQEk4vNcbjcquqB1Rn0T0F2DyK7Zio7WWgUcfVDfGp0CemcS5uvDsTGYIl6Fj1+lsUmcqxGAraeOZOdo+8f7sUNfSXKAVFJLw13MDsZT0MPBZnrDSWiZVOj1DCEdh2t9HK7lWV1pqU5nrY/8xUBkowfMh3NJ2v9WL7e6PL1rqbrXHWOIAIgOjSyHxUXrOL3erhmC4zXO5ScKZ9ioPEiTmRBzAYJA2nGvL7mud2hkgyzd5tYXIShnc7UbmhY9B83FVS09bTVFFWQiWnnRo5Y23MrYzNYZ8tXmqtUxLRqeHBIfzkLeK32Hk5Yq/el3gUnRKgGFu07V+nkWWuNtudJVa6IrgP6DbDgHUAg+7miuFFZ6llbSSQcUna+/wCjyLMN0a10HChOlRMTHEfk9LerBJJJJJJOpJ3k+7ablLaqyOpQkxnRZU5mT7xzYDKyq6HVWAZT0g+BznUcOro6QHZFEZD2ufuHJy/aHv16t1pTUColAkYebEvfOfYMRQxQxxU9PGEijRY40G5VUaADHdJzGb3fHoIJNaC3M0KAbnm3O/2D3O5rkqlFHFmO70yyzT99RwyrqscfzhB3s3Ni/wCXbdmO3y0FbAgYqeImCgPC/Myn6xiqppqKqqaOpTgzwSvFIvQyHQ8rbvBII2gjeDjIuYjmSwQzzvrXUx971XW6jY/74x3VbGK+xR3eJNai2vqx5zBIdG9h0PJR2idJUOjIwYdqnXEUqzxRTr4siK47GGvIyvWrW2anZ2JliHFN2p7ueq0vU0tCp2RoZGHW2weRZ0djXUUfmrTlh2s3JsTtJZrazb+IC/wnTwOYpuOvVeeZHEY/cAHJ7j1tEldeLu6/iIUpo/SlPCb6BjM11Nky/drop0khp2EX7V+8T6Tjbzkk7yTznCpxjpH8tlX2nTEUMdNFDTRKFjijWNAOZUGg9zus2mKhv1LcoRoLjAXkH/VhIUt6wRy+5TdTRZlNvZ9IbjA0enNxsffocVVLFXUtTQzjWKoieFx+q40xPBJSTz0kv4yCV4n7UPBPJy7Lx1loGO9UMf8AASORkSuMVVVULbRInGKD0rsPuHF7qvft1rp9dQZSq+inejyLOdEzwUteg1ERMUnUrbQeQiPK6RRqWd2Cqo3knFFTCio6WkB14mJUJ6xv8Au8Yr34yurZD51RKf6jye5PTCHKjT6bamumf1IAgx3Xaow5boqUHbU16a9axqW9w6713jaO0YsdzivVntt0iYEVFOjN1OBo69oIw7pEkksjcGNFZ3boVRqTjOWaWzXdhWJGYqOBDFSxt43A11Lt1ty7JVtQXq0VqHQw1sD+rhgHDbGOnMcZ5pxS5vzBEBoDVGX+aof7eTlB+FaCvyKiQe0A8ix1ZortQ1GugEoVj1P3pwMXapNJbq2pB0McLle3TZ5HJHHNHJDMgeN1Ksp3EHF8sEtpbjomMlG7aK3nITuVvsPuAFiFUEsSAANpJOMv5d+DytbW6Gr07xN4i1+tvAr4w7cVWyqqv20n9x5Pcy0/wVa/2tTr/NOO7Jr7wy/0e+p/7B7vcrzOtBWPl2tl0pqx+HSs25KjnTsf68EAhldQQQQyncQd4OM8ZTlyvdCIVZrZVMXpZPk85ibrX6Ry4tTNABv41P7hht5x3SwBnW76c605PbxS8nJn5Oqhze+T/aOTaak1luoqknUvChbt024zrUmK0cSN80qJ6h332eSX9Fey3IMN0Jb1ggj3LEA15tgYajjwfYPBDeMXBOLuFenRUS/3cnuTVImyq8HPT10yEdTgOMd1ukM+WaaqUf6WujZupZFKe6CQQQSCCCCDoQRzjGQM5pmOjFvr5ALvTJ3+v/qIx+cXr+UMXS10N5oZ7bcoBNTSjau4gjcynmYcxxmzIt0yw71Chqu1k95VIu1B0TAeKevcfcyp3M579bkutxrno4JxrTIiB5HX5ba7lPNjMPc3v9kLTUsZuVGNvG06HjE9OPafWPdy9SGvv9lowNeNrYQewMCfoGG2ses4zzUirzfmCYHUCqMQ/wDEoT7OTk5NLVK/y6l/oAHJyVUma0CHX8TK6eo999uM+1HCkt8HQruR26AeSX38jXP9gfcsX5Ztn7ceDzFFxN6rxzO4kH74B5PceuQir7vaHb/UQpUR+lFsb6DjMNrF7sd1tXn1FOwj6pF75D7RghlJV1KupKsp3gjYR7tNU1FHUQ1dJO8NRC4eORDoysOcYyb3Q6O/rDbrqyUt28Uc0VR1p0N0rgjYysNQQQQRqCOgjFT3O8n1VWKx7SEbhcJo4pGSFz1oMKqIqoiqqKoVVUaBQNgAGASNxx3XLNRUlTbLxTRrFPWNLHUKuwOyAEP28x9zuTWk1mYJ7o6/gbfAdD/1pu9X6NcVtZFbqKruE50ipoXmbsQa4mmkqZpqmU6yTSNK/pOeEeTlqIw2Si13vw5P4m5OQKni5bhAedUcD2g4zpJw728fzUSJ9bfb5JfvyLc/2J+se5YvyzbP26+DznT8CspKoDZLEUPpIfuPJsd3msN3t93hBJppQzL8qM7HX1g4hmiqIYamnfhQyoskbDnVxqDjunZeFovnwlTrpSXPhS6DzJx449e/k5b7pt5syx0lyU3KiXYOG2k6D9V+fsbFnzvli9qopbnHDOd8FT+BkHt2H1HCjhgMmjDpU6jF3vlpsNO1Rda6OAAahCdZX6kQbScZwzVPmu5rVGMw0kCmOlhJ1KqdpZv1mwqs7KiKWdiFVVGpZjsAHWcZMy9/hqw01DKB77kPH1RHzr+b2KNmO6xfVorPBY4X/D3Bg0oG9aeM6/1NyQrMQqjVmIA7TinhFNT09MN0USJ/CNOTkuTgXtE1042J0+pvsxmKXjr3cX6JeD/AAvkl9/I1z/YH3LCNb1bf2w+o+DzTR++rTJIo1enYTDs3NyTuOMpRSwZWy9FP+MWgh1B6xqMd2OuQ/ANrHjjjap+oHvF5RAO8YiqamDZBVTRehIy/UcOzSOZJGZ3O9nJZj6zjdtOO5nkp0eHM93h4PPQQONv7Zh/ZivrqW2UVVca6Xi6anjMkjdQ5h1ncMZgvdTmK71l2qQVMraRx80cS7ETk5cpPfl3pQRqkJMz9ibvp5WXJRDe7e555Cv8AGCuLm3DuVwfpqZT/AFHwxIUFmICjeSdBiW8WmE6S3KAHoD8L6sHMNkH/ALjH7G+7H+I7H+kU/hf7sf4jsf6RT+F/ux/iKx/pFP4W+7F6v1rltlXT01UJpZk4CqoPOd59y21S0Vwo6twSkUgZgN+m44GYrIQCLinrVgfqx/iOx/pFP4W+7H+I7H+kU/hf7sf4isf6RT+Fvuwt/srbrlCO3UYgq6Sp/wBNVQy+g4J5LKrqyONUYFWHSDsOLhRvb62oo3/Nvop6VO1TyLPb2u12ttsTfVVMcR9Envj6hgKq6JGNEUBVHQBsGO6HcRcM3XZw+sdMy0idkI0P9WuKC1XS6OEtluqao/8ARjZh6zuGLjlPMtpgNTcLLUxQDa0mgdV9IoTpjeNRyaenqKueOlpIJJp5DokUSlnY9QGMndzBaR4rnmdEknUh4qEEMiEc8p849WJZY4o5J5pFjijUu7uQqqq7yTzAYz7nZsy1IobezLaKd9U5jUSD84w6B5o5WUKDiKGStcd/Ut3v7NPvPKtjcC5W9+ipiP8AUMVDFp52PPIx9p8ISqhmZgFUakk6ADF0zckZaC1KHYbDO47390c/acVVbWVzcOrqZJT0Mdg7BuHhtx1Gw4ocx3WhKrx5niH5ubvvYd4xar7RXYcCMmKoA1MLnb2qeccjN9t46CO5RL38A4EunPGdx/dPI7k9u995mkrmXVKCldx+0l7xcA6EEYo8mZXoppKlLPDLUO7SNNU6zuXY6k9/qBhQFUIgCqNgVRoPYMbRqMXnudZXvJeUUhoaltplpNEBPWninFb3HbpGSbdeaWdeZZ0aJvo4Qw/crzgp0EFI/WtSv24g7k2apSOOeggHS0xb6FGLb3HqKMh7xeJZ+mKmQRL62bU4tFhs1hiMVot8VOCNGcDWR/Sc6k4vF7tVgpTWXasSCPzFO2SQ9CKNrHGcM93DNDNSwq1JalbVacHv5dNzSkfQu4cq2UElyrYKNNgY6u3yUG84REijSKNQqIoVV6ANg5VO3AqIGHNIp9hwx1Zj0knwbMqqzuwVVBLMdgAHOcX+/wAl0kanpmKUKHYNxlI85uroHkSsyOroxV1Oqsp0II5xjL1+FzT3rVECsjXXXcJVHOOsc/usiOjpIoZGBVlO4g7xi82t7TWvBtML6vC5506O0e73KKSCgy3XXWeWOP33VsC7sFASEcEAk4uPdByjbeEr3dKiQeZSqZj7V2YuPdiTvks9kJ6JKuTT+hMXDuiZvuJIN1NLH8ikQRD27Wxau6Hmu1yhjcmrIfOhrPwgPY3jDFq7rVgqwqXWlqKCXnYDjovau3FJmfLdeAaS+0MmvMZlVvY2hwtRTNpwamE67tJFxPc7ZSgmpuVJEBzvOi/WcXDuh5Qt4bW7LUyDzKRTKT6xsxee69XTq8Nht60gO6eoIkl9SDvRitray41L1lwqpamobfJKxZuwdA6hy8tWk26kM86aVVQAWB3onMv2nlodHU9BBww0Zh0Ejweb7oUVLVC2hcB5yPk8yfafJIJpaaaKogfgyxsGVhzEYt9bHcaKCsjGgkXvl+Sw2Ee7dbZDdaRqaXvXHfRSc6P9x58VNNPRzy01ShSWM6MPtHUfcOpXgEkrrrwSdmvZyiqneAccFejHAXfwR4HK9jNQ6XOsT8Ah1hQ+ew870R4BRqyjpIGJ14M8y9EjD2HwTOsas7nRFBZj1DacVlS9bVVFXJ40shfsB3DyXJdWeFW0DHYQJk7R3rci92SK7wgqQlXGPwch3EfJbqxPBNSzSU9RGY5UOjKfIbBl97iyVdYpWjB2DcZSOYfq9JwAqqFVQFAAAA0AA5h4CnUtPCo3mRR9OLmvAuVwToqZR/UfBXyUw2e5ON/Elf4u98myzKYr3RdD8OM/vKeTdrPS3eILN3kyD8HMo2r1HpXFwttZa5uJq49NfEcbUcdR8N0DeTiyZWZylXdUKpvSnO9ut+gdWAAAFUAADQAbAAPA2xeHcrenTUxD+oYzFFxN7uKf9XhfxgN4LM50sdZ1mMf1jlbgSToMGrpQdDUx6+kMKysOErBh0g68t5YotksqJ2kDCTwynSOZGPQCCeVZSReLYR/uE5U8EFVE8FTEskTb1YajFzyhNGWmtbmVN/Eue/HonnxIjxO0UqMki71YEEeDt1luNzINPDwYeeaTvU9XTi1ZforXpL+OqfnXG70BzeDy5Fx17t6H5wt/CC2M6R8C9vJppxsSP9a/Z4LNH5Dq/Si/vHJkkSJHlc6Ko1OKqslq3Jc6J5qDcPcgnlpnDxMQeccx7cU1QtTCsyjTmI6DyblXtCTTwHR/Pbo6h14JJJJJJPOcdeLbcHdhTTtqT4jnf2Hk2b8r2z/uUweXWUFHXpwKymSUDcSNGHYRtGKzJiHVrfVleiOYaj1MMVNgu9JrxlC7qPOi78fRhgUPBcFT0MNDyNR04goa2q2U1HNJ1qh09uKTKFzn0NU8dMnWeG/sGKHLNqoirtEaiUedNtHqXdjoHMPCZLj4d8jk+aid/qX7cZ+pikluqNPGR0P0EeAllihQyTypGg852Cj6cNfbMnjXOD1En6sZkv1DWUXvGikMpeRWdwpCgLt027zybwxFKqjc0g19Q15Flc61EfNorcgYmcyTSu29nY+6rFGVxvUgj1Y11APSAeRb50pq+iqJPEjmRm06AcfDtlO0XOD1kjEV3tU7cCK407NzDhgfX4GSOKYaTRJIP11DfXh7NaJNr22n9SAfVg5esh/9uj9rYWwWVDqLbD69T9ZxFRUUH4mjgT0Y1GNT0+HyFT8KS4VHQEQH2k4zrTma0GYfmZkf1Hvft5dXUx0VLUVcviRIXI5zpuHrxX19Vcp2qKuQsfNXzUHQo5dzhM1I/BGrIQ49W/kWaErFLOR45AXsXk1sJgqZUI2Ell6wfdpoWqJ44V5zt6gN/L0BxlS7zLULa55C8MgPE8I6lGG3QdR8syVTGG0CY/n5Xf1DvfsxdqY1luraYDUvC4Xt02cvNLFbJVdbxD+rwNXaeExkpSBrvQ7B6jj4OrddPe7e0Yp7PIWDVTBV+Sp1JwFVQqqAFA0AHMOTVUkVWnBfYw8VhvGJLVWISFUSL0qfsOI7XWOdDGEHSxxSUUVIpC987eM58BZyVu1tI/3Mf14O8+V2qmNJbqOm00McKBu3Tbg4vlJ7yu1dT6aASllHU/fDlZs/Ik37aL6/LLV+VLd/3Mf14O8+VWOk9+3ahg01BlDN6Kd8fdz3QmKqpa5dqyJxbEdK7Rys1jWyT9UsX1+WWn8qW7/uY/rwd58qyLRF6mrrm3RoIl7W2n3c1UC1lmnRRrNGOOUda8rMkTS2SuCjUoEk9SsCfLLHE0t4tyKN06sexdp8ryxRe8rPTKy6SSDjX7X+4e6RqCCMXqgNtudXSaaKrkp6DbRySFZWVlDKQQQdxBxdMp1cEjyW1ePgJ1EeoEidW3eMG03Vd9tqf5ZxPR1lKFappZYg24uhUHl11aKNU0ThO+ugJ0AAx8NVHNDF9OPhmp+ai+nHwzU/NRfTj4Zqfmovpx8M1PzUX04+Gan5qL6cfDNT81F9OPhqo+ai+nFDWisV9U4DoRqAdQQeX8E3Tgh/g6p4J3HiziKx3icgJbph1uOAPa2LBYBag1RUOr1brwe98WNegdJPOfKrLQm43OkpdNUL8J/QXacAaAAbuRnq2hooLnEv4s8VJ2HcfUeXqenGadDY6rXbo8RHbwuXek1Snk6GZfb4GypsqX5iVXlWdVa7W1XAKmoTUHBJ1O3yzI1u4EU9ykXbIeLj9Ebz6zya+jjq6Oemm8WVCpxU08lJUTU0w0eJyp9XLzT+RKr04v7uXXQGopZY18bxl7R4GggNPSxoRox75u08q0fla2/9zH9eD5XTU8lXUQ00I1eVwo9eKKlSjpYKWIaJEgUerlZ4tJjkiukSbG0jm7fNPLzOpax1unMYz7HHgLpRmFzURj8E5779VvuPLtlGZpBPIPwSHZ+s33Dl2QcK8Wwf/ITyzJFr4Ty3WVdi6xw9vO3LrqGKupKimn2xuhU9vSOzFbSS0NVPSTjR4mKnrHMew8q505qrdXU4G14HA7QNRgbhyyFYFWAII0IOKu1OhMlKC6fI84dnTjn0O/3d50G/FHankIkqgUTmTzj92FVVVUUAKBoANw5eVYDNeoH072FHkPs0H1+V0VHLX1UFJANXlYKOoc5PUMUFFFRUsFNENIolAHX4DO9l46FbnTJ38Q0l606f3eUNhxfKA2651MAGkbHjYvQf7t3gZqaCf8dErHp3H2jDWekPitIvUCD9eFs9KPGaRvWBiGmp4PxMKqenefb4HJ1CYaSeuddGqG4Kegn3nyvJdnMEDXOdNJJhpFrzR9P73gXVXUoyghhoQcZisz2e4PGFPveQloj1c6+rlZitBulIGhXWqg1aP9Yc6Y0IJBBBGwg7wfI7VbZbrWJTR6hB30r/ACE+882I444Y44YlCxooVVHMB5Vl60Nd69UdT73i0eU9XMvrwqqihVAAA0AHgr7Z4rtQyQPscDVH+S/MRioglpZ5aedCskbFWU8q/wCXBXF62gULVb3j3CXrHQ2HR43aORGR1OjKw0IPkNttdXdZuKpk70ePK3iJ29fVi222mtVMKamBPPI58Z26T5VT08tVPFTwIWkkYKoxZbVFaaKOnTQt40j/ACnPhM35dFZEbhRprUxDR1G91H2jl3C00F0XSrhBcDRZV2SL68VeTatCWoalJl5lk7x/uxLYrzCSHt0x60AcfRg224jfb6n+U2Pg64c9BU/ymx7wr/8AYVP8psfB9w/2FT/KbHwdcf0fU/ymx8HXH9H1P8psfB1x/R9T/KbHwdcf9hU/ymx8H3D/AGFT/KbHvCv/ANhU/wApsfB1x/2FT/KbC2y5MdFt9ST+ybEGWr1Of9HxQ6ZWC4ocmwRkPcagyn5uLVV9Z3nEUUUEaQwRrHGu5UGgHleU8v8AvKIV9WmlTIO9U740P2nw2bsttSO9zo0/AudZkHmE+cOrp8Dqek41PScanpONT0nGp6TjU9Jxqek41PScanpONT0nGp6TjU9J8tynl01DJdK1PwSnWFD55HnHq8O6LIrI6gqw0IO0EHGZsuSWmZqmnQmjc+uMnmPV8X5ay690lWqqVIo0P8wjmHV0nCIsaKiAKqjQAbAB5BPDFPE8MqB0cEMDuIOMxZdms8zSwgvRs3etzoeg/Yfi3L2XpbvKJpgUo0bvm3FyPNXEMMcESQxIEjUAKqjQADyKaGKeJ4pkDIwIYNtBBxmTLE1pkapplL0bHtMfUeroPxXl3LUt0daqqVkowewyHoHV0nEMMVPGkUKBEQAKoGgAHkjosisjqGVhoQdxGMyZQekZ6y2IXhO14RtK9a9I+Kcu5SepKVlzQrDvSE7C3W3QMIixqqIoVQNABuAHk9/ylFXiWst4EdTvZdySH7D14np56WV4KiJo5FOhVhofiWCnnqpUgp4mkkbcqjU4sGVIaDi6qvAlqt6rvSM/afKrtZaG7RmKePaviyDYynqOLxlyvtDM7LxtNzSoP7hzfEdny5X3ZlcLxVNzyuN/ojnxa7PRWmIR00XfHx5G2u3afLGUMCrAEHYQcXrJMFRw6m2kQSb+LPiH7sVtBWW6UwVkDRvzajYew8/l9FQVdwlENHA0jc+m4dp5sWfJlPTFJ7kVnlHmfm1+/AUKAqjQDmHl9dRUlXCaeogSRDvDYumR2HCmtUuo+ZkP1NippKmjkMNVA8TjmYfV0+V01JU1kohpYHlc8yjX29GLXkgngy3SXr4mM/W2KSjpqKEQ0sCRoNyqPiOqoqariMVXAkinzWAIGLnkSIhpbbPxR5o5TqvqO8Yr7Lc7aT76pHCDz175PaPJ6Gy3O4kGlpXKHz271PacW3I8KcGS5z8afm4yQvrO84pqOmo4hFTQJEg81QB8TkA7xiuyxZ64M70yxSE+ND3pxXZEqY++oapXU7Qkvet7RirsV2oiffFDKAN7KOGPauvkNLY7tW6cRQykHzmHAX2tpiiyLUPo1dVqg51i74+04ocsWeiCstKJHHny9+cAAbh8W1Vrt1YxM9HE/WyAn24q8l2WVjxAlh9B/wDlripyA6amC4AjmDp9oOJMlXpdTGIZfQc/aBiXLl7h8e3yH0SH/tJw1qua+Nbqkf8AibDUdWnj0sw7UIwyOvjIw7RhUdvFRj2DC0dW/iUsx7EJwtqubeLbqk/+JsRZcvc3iW+QekQn9xGI8lXptOMEMXpufsBxT5BZhwqi4gAbwifaTilyXZ4TrKss3pvp/bpiltNvpNtPSQx6c6oAT6/Kf//EADsRAAIBAgMEBwcEAQMFAQAAAAECAwAEESExBRASURMgMDJBUnEGIkBhcoGRFCMzobFCguEkU1RjosH/2gAIAQIBAT8A7KSaKEcUsiqPmcKn25aR4iMNIflkKl2/cNlFEieuZp9qX0mtww+nKmuLh+/M59WNYk6mgSNDS3FwndmcejGo9qX8elwx+rOotv3C5SxI4+WRqDblpJgJOKM/PMVHNFMOKKRWHyPwdzfW1oMZpBj4KMyautuzyYrbr0a89WqSWSVi0jsx5k49nHLJEwaN2U8watduzx4LcL0i89Gq2vra7GMUgx8VORHbvIkSl5GCqNSavtuM2MdpkPOdftTOzsWdizHUnt1dkYMjFWGhFWO3GXCO7zHnGv3pJElUPGwZToR2l3eQ2cfHKc/BfE1e3896+LnBPBBoPg7K/nsnxQ4odUOhq0vIbyMPE2fip1HZX1/FZR8TZue6tXFxLcyGWVsSfhbe4ltpBLE2BH4NWN9Hex8S5OO8vYXl3HZwmV9dFXmauLiS5laWVsWP9D4LiQasKDKdGHUt7iS2lWWI4MD+as7uO8hEqa6MvI9aSRIkaRzgqjEmr+8e9nZzkgyQch8BJKkQxdqkvXOUYwFNJI3ecnek0qaOajvdBIv3FKyuAykEbrC8eznVx3Dk68xUciSosiHFWGIPV25fcTfo4zkub/M8vgLi5EXurm/+KZmclmOJ68UrxHFT6iopVlXFdfEbth33C36SQ5Nmnry6l9ci0tpJTrhgo5k07M7M7HFiSSe3uJuiTLvHSiSSSTnvtNi392AyxcCH/U+VJ7Kvh794oPyWpPZWcDGK6RjyZSKu9m3lkf34SF8wzX8jfFI0Thh96Rw6hl0NKzIyupwYEEGrG5F3bRzDUjBhyI37dueknW3U+7GM/qPwE8nSyM3gMhuALEKoxJOAFbM2PBYwi8v+HpAOLBu6n/NXvtM2JjsUAXzuP8CpNq7RkOLXkn2OA/qods7ShIK3Tt8n94f3Vh7QQXeFtfRqjNljqjevKts7DFuGu7Mftaunl+Y+W+ylwJiPjmN2wrro52t2PuyafUN00ohiklbRVJqSRpZHkY5sxJ7B3CKWOgqS6lc5NwjkKhunVgJDip6ty/BC58Tlv9m7ESzPeSrisWSfVz+1be2m13cNbxN+xEcPqbnVt7O3M9oLgyBHZeJEI1FFSpKsMCDgRv8AZ/aJuEawuDxFV9wnxXlW17L9DeyRKP2299PQ7kbgdW5GhmAajdopEkU5qwIqGQTRRyroyg1tybo7QRg5yNh9h2N0CYWw3oCEQHUAdS+PuIOZ32v/AEPs/wBKuTdCz/dqB94E886jZGijdSOAoCPTCtpSQy31zJb/AMbPlvsZjb3ltMD3ZFx9Dka9qYgYbWfDMMV+xGO+E4xRn5DdsKbpLQxk5xsR9jnW35eK5ji8iY/c9jrkauoljk93QjGrOJWxkbMg5dW+7sfqd8o6X2cHB/46/wDzu9ndpqyDZ87Zj+MnxHlrbOxpLZ3ubZC0DHEgap/xVraXF7J0VtGWbDE+AAq4tbi1cx3ETI3zFQqXmiRdWdR+TXtOwFjAviZR/Q32/wDBH6btgS8NzJETk6Y/cVtR+kv7g8m4fx2V7/Iv01Zdx/Xq3i4xY8jv9np0utny2T5lMVI5o9Xds9pczW76oxHqPA0CVIZSQQcQRWzfaNeFYNoeglAx/Iq1Flg0loIsHzJjwzr2iurUWbW7FWmYjhAzK/OtgWZub5JSP24ffPr4Cvaa6EtzFbKcolxb6m3xrwoi8gN2y5Ojv7c824fzVw3HPM3N2P8AfXLKveYCulj86/mulj86/mrxlaReEg4CrN0VHDMAca6WPzr+a6SPzr+aBB0O51Doy8xTAqSp1G72VhPFd3B7uCp/+1tWR7zaVy0alvf4FCjHu5VJFLEeGWNkPJgRuDMuasR6GrLZ91tCQLEpw/1OdBUslrsCwEceBlI90eLNzPyqSR5ZHldsXYkk/M7rdOklUeAzO+2bgnhflIp/uicST1p7sklIjlzokk4kknrq7IcVYire56Q8D5N4HnuvIsG6VdDru2Obex2ZCZ5kQyYyHiIGtPtzZFpiLdOI/wDrTAfk0m1tkbRXo7lVU8pR/g0dhbHm96JyAfJICKGyth2nvyspw/7klXXtDZ2yGHZ8YcjIEDhQVcXM11K007l3O+1i6NMSPebepwIPzojAkdW8kKIFGrf47IEggioZOkjVvHxplDAqwyNTwNC3NToaJJ34nnWJ6lrbkkSOMvAdRRiQKuF4LideTsP76t6cZFHJd4BOg6gBOlEEajfZHGNhybcyq4KsMRU1oyYtHmv99ZVZzgoJNQ2gUhpczy6tsvHcQrzkUf3W1E6O/uBzbi/PULqurAepq7dXl90g4Dci8TqvM0FCgACrhAU4vEb40CKABnUiB1II9N9k6hHBYDOgwbQg73hjk7yjHnTWK/6XI9aNlJ4OtCxfxcUllGO8xNKiIMEUDrbLTpL63HJuL8Vt+LhuY5fOmH3G+RiqOw8AaJLEknE71PCwYeFLKjDHiFTyqV4FOPPfFMrKATgakmVVOBxPUhcpIhB8e22BFxXMkvgiYfc1t2HpLQSAZxsD9jlvm/ik+k9snfX1HbbDh6O0MhGcjE/YZVNGJopIm0ZSKkjaKR42GasQdzrxKy8wRTwyIcChogjIjDeqliABnX6eTkK/TyV+nkr9PJyFMpUkEZ7wrN3QTUEDu6kqQAcST2saNLIkajNmAFQxiGKOJdFUDdt216OdbhR7sgz+odS9/lH0jfE3C6nqysGkY77HuP69tsK16Sdrhh7sen1HffWwu7aSHx1X1FMrIzIwwIJBG++H7iHmOpDMCArnA8980wAKoc+fUsh+2x5t2qKzsqKMSxAAqxthaW0cQ72GLH5nqbcseFv1cY91sn9ee+6i6SPLvLn1RI66MaMjt3mPUVSzBV1NRJ0aKnIdrsOxLN+rkGS5J68+rJGsqNG4xVhgRV/ZvZTlD3DmjcxvntBISyZNTQypqhrgfyGuB/Ia4H8hrgfyGuB/Ia4H8p/FJbzPohHzNQW6xZ6tz7Wws3vZwg7gzduQqONIkWNBgqjADrXlpHeQmJ9dVbkauLeS2laKVcGHw9vbyXMqxRLixqztI7OFYk11ZuZ7C+sI72LhbJx3Wq4t5baRopVwYf38Lb28tzIsUS4k/wBVYWEdlFwrm57zdld2cN5HwSrn4MNRV5YT2T4OMU8GGh+Ds7Ce8fBBgni50FWlnDZxhIhn4sdT2jxpKhSRQynUGr3YbLjJZ5jyHX7U6MjFXUqw1B7dEd2CIpZjoBVlsNm4ZLvIeQa/eo40iQJGoVRoB29zZW12MJowT5hkauthTx4tbt0i8tGqSKSJisiMp5EYdnHFJKwWNGY8gKtdhTyYNcN0a8tWq2sre0GEMYB8xzJ+DkhimHDLGrj5ipth2kmJjLRn5ZipdgXK/wAUqP65Gn2Xfx627H6c6a2uE70Dj/aaKsNVIoKx0Umltrhu7C5/2mk2XfyaW7D6sqi2BctnLKiD8modh2keBkLSH55Co4YoRwxRqo+Q7P8A/8QANxEAAgEDAQUGBAUEAgMAAAAAAQIDAAQRMQUQEiFRIDAyQWFxIkBSgRMUM5GhI0KCsSTBU2LR/9oACAEDAQE/AO6eRIxl3Cj1qTalunJOJz6chT7WmP6car/NPfXT6zEe3KjNK3ikc/c1knU1kjSlmmXSRx9zSX10mkxPvzqPa0w/URW/io9qW78nyh9eYpJEkGUcMPQ/Jz3MNuP6j8+g1qfasr5EI4B11NO7yEs7Fj1J7tHeMhkYqeoNQbVlTAmHGOuhqC5huBmN+fQ69+zqilnYADzNXW1C2Ut+Q+o0zMxLMSSfM9+rMpDKSCPMVa7UIwlxzH1DX70rq6hkYEHQjvLi4jtk4nPsPM1c3cty2WOF8lGnydtdy2zZU5XzU6Vb3EdynGh9x5jurq6S1TJ5sfCtTTSTuXkbJPysM0kDh42wRVrdJdJkcnHiXuLm4S2jLtr5DqamleeRpHOSfkiyjzFZB0I7EMrwSCRDgira4S5jDrr5joe07qis7HCgZNXdy1zKWPhHJR8g7qgyxprlj4Rii7NqxO9ZHXRjSXPk4+4oEMMg5G60uWtpQw5qeTD0pHV1V1OQRkdnal1ki3Q8hzb5CWYJyHNqJLHJPbR2Q5BpJBIMjdsu6w35dzyPNexczi3heQ66D3pmLMWY5JOe/lk/DX1OlE5OTvt9mXdwAwj4VPm/Kl2C2PiuAD6LT7ClAzHOp9CCKuLK5tv1YyB1HMb0cowYUrBgGFKxVgynBBzVtMJ4Uk89D779qz8cohU8k19z8hK/G5P7bgCSABkmrLZ0VrH+Zu8cYGeei1dbbbJS1QAfU1Pf3jnLXD/Y4qPaV7GeU7H0bmKtNrRXGIbpFUtyz/aa2lssQg3FsPg1ZenqN9s+CUO7ZU/BKYWPJ9PcbpHEaO50UE07l3ZzqxJ7hmCgsdBTzux5HAqOdgQGOR2Zm4Y2/bfsW1EkjXLjKpyX3rat6biUwo39JDj3NQ7HmltxMXCsRlVIoggkEYI37IvDMptJjkgfDnzHStoW35W5dB4D8S+x3KeFg3Q7kco6uuqkGo3EkaONGANbUl4LcINXbH2HczgmNsb1GFX27FyfhUeu+3/4uyOMcm/DLfdqB5gnrSMpRWU/CVBHtV68cl1O8XgLb7WUw3MMgOjituxgxwS+YYr+++M5RD6btlycduUOqHH2NbWfMyJ9K/77qZAj8tDVugOXPkezdaJvkHHsYcP/AIR/G7Y98CotJTzHgJ8x0raWzXgZpoVzEeZA/tqC3muX/DhTiOtSwSwMUlQqfWo14pEUalgK24QLWJfMuP4G+H9JPbdsmTEzx/Uv+qvn47uY9Dj9u6ufGvtVt4G9+zcjKZ6HfsiVZ7R7ZtVyP8Wq4ha3mkhbVTQJUgg4Iqy2yMCK79uP/wC1ALXm9v8Ah/FqUxzrbE8AtmhYhpSRwjzHrWybYz3SyEfBH8R9/Kttzh50hU8oxz9zvQYVR0G6xbgu4T1OP3qY8UsrdXPbLAakVxp9YrjT6xVwQzjBzyq3ZQrAkA5rjT6xXGn1CgQdDuZeJSvWiMEg7tgxnNxL5YC/91fO1xezFFJ+LhAAzpyp43jOJEZT6jG4EjQkVbWk92/DGpx5sdBUjwbJtAic3Og82bqad2kdnc5ZjkndCvE4HkOe+FuGWJujiickntSzkkqn70ST21YqcqcVFPxfC+u64jweMaHXds4w2tjEZZFUvlzk9abamz7fIhXiP/ouKXaGzrxeCcBfSQf90dlbOk+JGIB+l6Fhsu3+KRlOPrep9r28Cfh2iBiNCBhRU00k8hklYsx3wR8C5Op3g4INHU9m4fhXhGp7uJuNFNEAgg6VLEYz6eR7GT2YIc4dhy8h2AMkCphwyyr0Y9m58Y9t4BOg7i28DD13MoYYI5VJAV5pzHaALHAGTUVvjDPr07MK8UsS9XFXycF3MOpz+/YLKNSBU7BnyDnluUcTAUAAMCplBXi8xvRAoFOoYYO+2ZQrAkDnQIOh3tGj6rRtR5NX5Z/qFC2bzYUtsg1JNKqqMKMdqxXju4R0Of2rayYmR/qX/W9zwqx6CiSTk71JBBoSKRrUsgI4V3xyKQATg08igHByexGxV1IPfbJjzM8n0r/JrakfHbhxqjZ+x3yfpv7d8viHuO+2XHwW5c6uc/YVIgkR0OjAinQo7IdVJG5hxKR1FNG6nBU1jG8AscCvwX9K/Bf0r8F/SvwX9KIKnB3gE6Coo2ZhyIHeohd1RdWIFRoI0RBooA3bVg4JRMo5Pr7jsXP6n23ocOp7Mhy7HfbeFvfvtlQccpmI5Jp7nfdQC4heM66j3plKkqRgjlvuR8anqOxHKPC2+SUYKr2LYfAT1PeqpZgqjJJwKtYBbwpGNdT79jalrhvzCDkeTe/XfOhdeWo7Idhoxoux1J7ABYgCkXgQL3uy7XJ/MOOQ5L2XVXVkYZUjBq7tmtpSp8J5qeo3ywBssvI0Y3XVTXCehrhboa4T0NcJ6GuFuhrhboaWKRtF/eooRHz1bvbS2a5lCDwjmx6CkRUVUUYAGB2rm3S5jKNr5HoalieCRo3GCPl4YnnkWNBkmra3S2jCLr5nqe4urVLpMHkw8LVNC8LmORcEfKxQyTuEjGSatbVLVMDm58Td1cW0dynC45+R8xVzaS2zYYZXyYafJ21pLcthRhRqx0q3to7ZOFBz8z5nvGRXUq6gg6g1dbLIy9vzH0mmVkJVgQR5Hv1VnIVQST5CrXZZOHuOQ+kUqKihUUADyHfzW0NwMSJk9fOp9lSpkwnjHTQ06Ohw6lT0I7tEeQ4RSx9BUGypXw0zcA6amoLaG3GI0wep1+TeNJBh0DD1FSbLt35pxIfTmKk2TMP05Fb35U1hdprCT7c6MEy6xOP8TRBGoIoAnQE0sMzaROf8TS2F2+kJHvypNkzHxuq/zUey7dOb5c+vIUkaRjCIFHoO7//Z" + } + }, + "required": [ + "mimetype", + "data" + ] + }, + "ProfilePictureRequest": { + "type": "object", + "properties": { + "file": { + "oneOf": [ + { + "$ref": "#/components/schemas/RemoteFile" + }, + { + "$ref": "#/components/schemas/BinaryFile" + } + ] + } + }, + "required": [ + "file" + ] + }, + "MessageTextRequest": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "example": "11111111111@c.us" + }, + "reply_to": { + "type": "string", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "example": null + }, + "text": { + "type": "string", + "default": "Hi there!" + }, + "linkPreview": { + "type": "boolean", + "default": true + }, + "linkPreviewHighQuality": { + "type": "boolean", + "default": false + }, + "session": { + "type": "string", + "default": "default" + } + }, + "required": [ + "chatId", + "text", + "session" + ] + }, + "S3MediaData": { + "type": "object", + "properties": { + "Bucket": { + "type": "string", + "description": "The name of the S3 bucket", + "example": "my-bucket" + }, + "Key": { + "type": "string", + "description": "The key of the object in the S3 bucket", + "example": "default/false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA.oga" + } + }, + "required": [ + "Bucket", + "Key" + ] + }, + "WAMedia": { + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "The URL for the media in the message if any", + "example": "http://localhost:3000/api/files/false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA.oga" + }, + "mimetype": { + "type": "string", + "description": "mimetype for the media in the message if any", + "example": "audio/jpeg" + }, + "filename": { + "type": "string", + "description": "The original filename in mediaUrl in the message if any", + "example": "example.pdf" + }, + "s3": { + "description": "S3 attributes for the media in the message if you are using S3 media storage", + "allOf": [ + { + "$ref": "#/components/schemas/S3MediaData" + } + ] + }, + "error": { + "type": "object", + "description": "Error message if there's an error downloading the media", + "example": null + } + } + }, + "WALocation": { + "type": "object", + "properties": { + "latitude": { + "type": "string" + }, + "longitude": { + "type": "string" + }, + "live": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "address": { + "type": "string" + }, + "url": { + "type": "string" + }, + "description": { + "type": "string" + }, + "thumbnail": { + "type": "string" + } + }, + "required": [ + "latitude", + "longitude", + "live" + ] + }, + "ReplyToMessage": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Message ID", + "example": "AAAAAAAAAAAAAAAAAAAA" + }, + "participant": { + "type": "string", + "example": "11111111111@c.us" + }, + "body": { + "type": "string", + "example": "Hello!" + }, + "_data": { + "type": "object", + "description": "Raw data from reply's message" + } + }, + "required": [ + "id" + ] + }, + "WAMessage": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Message ID", + "example": "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA" + }, + "timestamp": { + "type": "number", + "description": "Unix timestamp for when the message was created", + "example": 1666943582 + }, + "from": { + "type": "string", + "description": "ID for the Chat that this message was sent to, except if the message was sent by the current user ", + "example": "11111111111@c.us" + }, + "fromMe": { + "type": "boolean", + "description": "Indicates if the message was sent by the current user" + }, + "source": { + "enum": [ + "api", + "app" + ], + "type": "string", + "description": "The device that sent the message - either API or APP. Available in events (webhooks/websockets) only and only \"fromMe: true\" messages.", + "example": "api" + }, + "to": { + "type": "string", + "description": "\n* ID for who this message is for.\n* If the message is sent by the current user, it will be the Chat to which the message is being sent.\n* If the message is sent by another user, it will be the ID for the current user.\n", + "example": "11111111111@c.us" + }, + "participant": { + "type": "string", + "description": "For groups - participant who sent the message" + }, + "body": { + "type": "string", + "description": "Message content" + }, + "hasMedia": { + "type": "boolean", + "description": "Indicates if the message has media available for download" + }, + "media": { + "description": "Media object for the message if any and downloaded", + "allOf": [ + { + "$ref": "#/components/schemas/WAMedia" + } + ] + }, + "mediaUrl": { + "type": "string", + "description": "Use `media.url` instead! The URL for the media in the message if any", + "deprecated": true, + "example": "http://localhost:3000/api/files/false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA.oga" + }, + "ack": { + "enum": [ + -1, + 0, + 1, + 2, + 3, + 4 + ], + "type": "number", + "description": "ACK status for the message" + }, + "ackName": { + "type": "string", + "description": "ACK status name for the message" + }, + "author": { + "type": "string", + "description": "If the message was sent to a group, this field will contain the user that sent the message." + }, + "location": { + "description": "Location information contained in the message, if the message is type \"location\"", + "allOf": [ + { + "$ref": "#/components/schemas/WALocation" + } + ] + }, + "vCards": { + "description": "List of vCards contained in the message.", + "type": "array", + "items": { + "type": "string" + } + }, + "_data": { + "type": "object", + "description": "Message in a raw format that we get from WhatsApp. May be changed anytime, use it with caution! It depends a lot on the underlying backend." + }, + "replyTo": { + "$ref": "#/components/schemas/ReplyToMessage" + } + }, + "required": [ + "id", + "timestamp", + "from", + "fromMe", + "source", + "to", + "participant", + "body", + "hasMedia", + "mediaUrl", + "ack", + "ackName" + ] + }, + "MessageImageRequest": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "example": "11111111111@c.us" + }, + "file": { + "oneOf": [ + { + "$ref": "#/components/schemas/RemoteFile" + }, + { + "$ref": "#/components/schemas/BinaryFile" + } + ] + }, + "reply_to": { + "type": "string", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "example": null + }, + "caption": { + "type": "string" + }, + "session": { + "type": "string", + "default": "default" + } + }, + "required": [ + "chatId", + "file", + "session" + ] + }, + "MessageFileRequest": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "example": "11111111111@c.us" + }, + "file": { + "oneOf": [ + { + "$ref": "#/components/schemas/RemoteFile" + }, + { + "$ref": "#/components/schemas/BinaryFile" + } + ] + }, + "reply_to": { + "type": "string", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "example": null + }, + "caption": { + "type": "string" + }, + "session": { + "type": "string", + "default": "default" + } + }, + "required": [ + "chatId", + "file", + "session" + ] + }, + "VoiceBinaryFile": { + "type": "object", + "properties": { + "mimetype": { + "type": "object", + "default": "audio/ogg; codecs=opus", + "description": "MIME type of the attachment." + }, + "filename": { + "type": "object", + "default": "voice-message.mp3", + "description": "Document file name. Optional" + }, + "data": { + "type": "string", + "description": "Base64-encoded data of the file", + "example": "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VSO3pMrPlDI7//NkxP8g454UCuJGUWisGIZWQwUgpHZyhg4kNUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxP4ibDnMAOGEzFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV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" + } + }, + "required": [ + "mimetype", + "filename", + "data" + ] + }, + "VoiceRemoteFile": { + "type": "object", + "properties": { + "mimetype": { + "type": "object", + "default": "audio/ogg; codecs=opus", + "description": "MIME type of the attachment." + }, + "url": { + "type": "string", + "example": "https://github.com/devlikeapro/waha/raw/core/examples/dev.likeapro.opus" + } + }, + "required": [ + "mimetype", + "url" + ] + }, + "MessageVoiceRequest": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "example": "11111111111@c.us" + }, + "file": { + "oneOf": [ + { + "$ref": "#/components/schemas/VoiceRemoteFile" + }, + { + "$ref": "#/components/schemas/VoiceBinaryFile" + } + ] + }, + "reply_to": { + "type": "string", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "example": null + }, + "convert": { + "type": "boolean", + "description": "Convert the input file to the required format using ffmpeg before sending", + "example": true + }, + "session": { + "type": "string", + "default": "default" + } + }, + "required": [ + "chatId", + "file", + "convert", + "session" + ] + }, + "VideoRemoteFile": { + "type": "object", + "properties": { + "mimetype": { + "type": "object", + "default": "video/mp4", + "description": "MIME type of the attachment." + }, + "filename": { + "type": "object", + "default": "video.mp4", + "description": "Document file name. Optional" + }, + "url": { + "type": "string", + "example": "https://github.com/devlikeapro/waha/raw/core/examples/video.mp4" + } + }, + "required": [ + "mimetype", + "filename", + "url" + ] + }, + "VideoBinaryFile": { + "type": "object", + "properties": { + "mimetype": { + "type": "object", + "default": "video/mp4", + "description": "MIME type of the attachment." + }, + "filename": { + "type": "object", + "default": "video.mp4", + "description": "Document file name. Optional" + }, + "data": { + "type": "string", + "description": "Base64-encoded data of the file", + "example": "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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3IRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHohEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3p4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHUhEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcCEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcCEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADenAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1IRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwIRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH0hEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3p4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHYhEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAciEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcyEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADenAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1IRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzIRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4hEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3p4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHohEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdyEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeiEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADenAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6IRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3IRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAgAaq3yd8AAAMAAAMAAAMAAAMAHrvIgAAAAwAAAwAFtJAAAAAgAaq7yd8AAAMAAAMAAAMAAAMAHrvIgAAAAwAAAwAFtJAAAAAgAaq/yd8AAAMAAAMAAAMAAAMAHrvIgAAAAwAAAwAFtJAAAAAjIetKI9/zIAAAAwAAAwAAAwAAAwAVW8H+swAAAwAAAwAAEvcAAAAgAatHyV8AAAMAAAMAAAMAAAMAKY8KAAADAAADAAAIOyAAAAAgAatLyV8AAAMAAAMAAAMAAAMAKY8KAAADAAADAAAIOyAAAAAhAatPyJf/AAADAAADAAADAAADAByn5+AAAAMAAAMABN2QAAAAIiHtiiNf5EAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMCgiAAAAAhAavXyLf/AAADAAADAAADAAADAAADAAADAAADAAADAO6YAAAAIQGr28i3/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwDumAAAACEBq9/It/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMA7pgAAAAiIe/aIt+HAAADAAADAAADAAADAAADAAADAAADAAADAAmagAAAACEBrGfIl/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMBF3AAAAAhAaxryJf/AAADAAADAAADAAADAAADAAADAAADAAADARdwIRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2IRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHUhEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3p4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHUhEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfiEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeiEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfyEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADenAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7IRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1IRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEhEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3p4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4hEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfSEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcyEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADenAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxIRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzIRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwhEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3p4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHohEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeCEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfiEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADenAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxIRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzIRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHkAAAAhAaxvyJf/AAADAAADAAADAAADAAADAAADAAADAAADARdwAAAAIQGsc8iX/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwEXcAAAAAEKIRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6IRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHI=" + } + }, + "required": [ + "mimetype", + "filename", + "data" + ] + }, + "MessageVideoRequest": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "example": "11111111111@c.us" + }, + "file": { + "oneOf": [ + { + "$ref": "#/components/schemas/VideoRemoteFile" + }, + { + "$ref": "#/components/schemas/VideoBinaryFile" + } + ] + }, + "reply_to": { + "type": "string", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "example": null + }, + "asNote": { + "type": "boolean", + "description": "Send as video note (aka instant or round video).", + "example": false + }, + "convert": { + "type": "boolean", + "description": "Convert the input file to the required format using ffmpeg before sending", + "example": true + }, + "caption": { + "type": "string", + "default": "Just watch at this!" + }, + "session": { + "type": "string", + "default": "default" + } + }, + "required": [ + "chatId", + "file", + "convert", + "session" + ] + }, + "FileURL": { + "type": "object", + "properties": { + "url": { + "type": "string", + "example": "https://github.com/devlikeapro/waha/raw/core/examples/waha.jpg" + } + } + }, + "FileContent": { + "type": "object", + "properties": { + "data": { + "type": "string", + "description": "Base64-encoded data of the file", + "example": "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" + } + } + }, + "LinkPreviewData": { + "type": "object", + "properties": { + "image": { + "oneOf": [ + { + "$ref": "#/components/schemas/FileURL" + }, + { + "$ref": "#/components/schemas/FileContent" + } + ], + "example": { + "url": "https://github.com/devlikeapro/waha/raw/core/examples/waha.jpg" + } + }, + "url": { + "type": "string", + "default": "https://github.com/" + }, + "title": { + "type": "string", + "default": "Your Title" + }, + "description": { + "type": "string", + "default": "Check this out, amazing!" + } + }, + "required": [ + "url", + "title", + "description" + ] + }, + "MessageLinkCustomPreviewRequest": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "example": "11111111111@c.us" + }, + "text": { + "type": "string", + "default": "Check this out! https://github.com/", + "description": "The text to send. MUST include the URL provided in preview.url" + }, + "reply_to": { + "type": "string", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "example": null + }, + "linkPreviewHighQuality": { + "type": "boolean", + "default": true + }, + "preview": { + "$ref": "#/components/schemas/LinkPreviewData" + }, + "session": { + "type": "string", + "default": "default" + } + }, + "required": [ + "chatId", + "text", + "preview", + "session" + ] + }, + "Button": { + "type": "object", + "properties": { + "text": { + "type": "string", + "example": "Button Text" + }, + "id": { + "type": "string", + "example": "321321" + }, + "url": { + "type": "string", + "example": "https://example.com" + }, + "phoneNumber": { + "type": "string", + "example": "+1234567890" + }, + "copyCode": { + "type": "string", + "example": "4321" + }, + "type": { + "type": "string", + "default": "reply", + "enum": [ + "reply", + "url", + "call", + "copy" + ] + } + }, + "required": [ + "text", + "type" + ] + }, + "SendButtonsRequest": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "example": "11111111111@c.us" + }, + "header": { + "type": "string", + "example": "How are you?" + }, + "headerImage": { + "oneOf": [ + { + "$ref": "#/components/schemas/RemoteFile" + }, + { + "$ref": "#/components/schemas/BinaryFile" + } + ] + }, + "body": { + "type": "string", + "example": "Tell us how are you please πŸ™" + }, + "footer": { + "type": "string", + "example": "If you have any questions, please send it in the chat" + }, + "buttons": { + "example": [ + { + "type": "reply", + "text": "I am good!" + }, + { + "type": "call", + "text": "Call us", + "phoneNumber": "+1234567890" + }, + { + "type": "copy", + "text": "Copy code", + "copyCode": "4321" + }, + { + "type": "url", + "text": "How did you do that?", + "url": "https://waha.devlike.pro" + } + ], + "type": "array", + "items": { + "$ref": "#/components/schemas/Button" + } + }, + "session": { + "type": "string", + "default": "default" + } + }, + "required": [ + "chatId", + "header", + "body", + "footer", + "buttons", + "session" + ] + }, + "Row": { + "type": "object", + "properties": { + "title": { + "type": "string", + "example": "Option 1" + }, + "description": { + "type": "string", + "example": "Description of option 1" + }, + "rowId": { + "type": "string", + "example": "option1" + } + }, + "required": [ + "title", + "rowId" + ] + }, + "Section": { + "type": "object", + "properties": { + "title": { + "type": "string", + "example": "Menu" + }, + "rows": { + "example": [ + { + "title": "Option 1", + "rowId": "option1", + "description": "First option" + }, + { + "title": "Option 2", + "rowId": "option2", + "description": "Second option" + } + ], + "type": "array", + "items": { + "$ref": "#/components/schemas/Row" + } + } + }, + "required": [ + "title", + "rows" + ] + }, + "SendListMessage": { + "type": "object", + "properties": { + "title": { + "type": "string", + "example": "Example List" + }, + "description": { + "type": "string", + "example": "Choose one of the options" + }, + "footer": { + "type": "string", + "example": "Footer note" + }, + "button": { + "type": "string", + "example": "Select" + }, + "sections": { + "example": [ + { + "title": "Section 1", + "rows": [ + { + "title": "Option 1", + "rowId": "option1", + "description": "Description 1" + }, + { + "title": "Option 2", + "rowId": "option2", + "description": "Description 2" + } + ] + } + ], + "type": "array", + "items": { + "$ref": "#/components/schemas/Section" + } + } + }, + "required": [ + "title", + "button", + "sections" + ] + }, + "SendListRequest": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "example": "11111111111@c.us" + }, + "message": { + "example": { + "title": "Simple Menu", + "description": "Please choose an option", + "footer": "Thank you!", + "button": "Choose", + "sections": [ + { + "title": "Main", + "rows": [ + { + "title": "Option 1", + "rowId": "option1", + "description": null + }, + { + "title": "Option 2", + "rowId": "option2", + "description": null + }, + { + "title": "Option 3", + "rowId": "option3", + "description": null + } + ] + } + ] + }, + "allOf": [ + { + "$ref": "#/components/schemas/SendListMessage" + } + ] + }, + "reply_to": { + "type": "string", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "example": null + }, + "session": { + "type": "string", + "default": "default" + } + }, + "required": [ + "chatId", + "message", + "session" + ] + }, + "MessageForwardRequest": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "example": "11111111111@c.us" + }, + "messageId": { + "type": "string", + "example": "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA" + }, + "session": { + "type": "string", + "default": "default" + } + }, + "required": [ + "chatId", + "messageId", + "session" + ] + }, + "SendSeenRequest": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "example": "11111111111@c.us" + }, + "messageId": { + "type": "string", + "example": null, + "deprecated": true + }, + "messageIds": { + "example": [ + "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA" + ], + "type": "array", + "items": { + "type": "string" + } + }, + "participant": { + "type": "string", + "example": "11111111111@c.us", + "default": null, + "description": "NOWEB engine only - the ID of the user that sent the message (undefined for individual chats)" + }, + "session": { + "type": "string", + "default": "default" + } + }, + "required": [ + "chatId", + "session" + ] + }, + "ChatRequest": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "example": "11111111111@c.us" + }, + "session": { + "type": "string", + "default": "default" + } + }, + "required": [ + "chatId", + "session" + ] + }, + "MessageReactionRequest": { + "type": "object", + "properties": { + "messageId": { + "type": "string", + "example": "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA" + }, + "reaction": { + "type": "string", + "description": "Emoji to react with. Send an empty string to remove the reaction", + "example": "πŸ‘" + }, + "session": { + "type": "string", + "default": "default" + } + }, + "required": [ + "messageId", + "reaction", + "session" + ] + }, + "MessageStarRequest": { + "type": "object", + "properties": { + "messageId": { + "type": "string", + "example": "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA" + }, + "chatId": { + "type": "string", + "example": "11111111111@c.us" + }, + "star": { + "type": "boolean" + }, + "session": { + "type": "string", + "default": "default" + } + }, + "required": [ + "messageId", + "chatId", + "star", + "session" + ] + }, + "MessagePoll": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "How are you?" + }, + "options": { + "example": [ + "Awesome!", + "Good!", + "Not bad!" + ], + "type": "array", + "items": { + "type": "string" + } + }, + "multipleAnswers": { + "type": "object", + "default": false + } + }, + "required": [ + "name", + "options", + "multipleAnswers" + ] + }, + "MessagePollRequest": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "example": "11111111111@c.us" + }, + "reply_to": { + "type": "string", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "example": null + }, + "poll": { + "$ref": "#/components/schemas/MessagePoll" + }, + "session": { + "type": "string", + "default": "default" + } + }, + "required": [ + "chatId", + "poll", + "session" + ] + }, + "MessagePollVoteRequest": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "example": "11111111111@c.us" + }, + "pollMessageId": { + "type": "string", + "description": "The ID of the poll message. Format: {fromMe}_{chatID}_{messageId}[_{participant}] or just ID for GOWS", + "example": "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA" + }, + "pollServerId": { + "type": "number", + "description": "Only for Channels - server message id (if known); if omitted, API may look it up in the storage", + "example": null + }, + "votes": { + "type": "array", + "items": { + "required": true, + "description": "Poll options you are voting for", + "example": "Awesome!", + "type": "array", + "items": { + "type": "string" + } + } + }, + "session": { + "type": "string", + "default": "default" + } + }, + "required": [ + "chatId", + "pollMessageId", + "votes", + "session" + ] + }, + "MessageLocationRequest": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "example": "11111111111@c.us" + }, + "latitude": { + "type": "number", + "example": 38.8937255 + }, + "longitude": { + "type": "number", + "example": -77.0969763 + }, + "title": { + "type": "string", + "example": "Our office" + }, + "reply_to": { + "type": "string", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "example": null + }, + "session": { + "type": "string", + "default": "default" + } + }, + "required": [ + "chatId", + "latitude", + "longitude", + "title", + "session" + ] + }, + "Contact": { + "type": "object", + "properties": { + "fullName": { + "type": "string", + "example": "John Doe", + "description": "The full name of the contact" + }, + "organization": { + "type": "string", + "example": "Company Name", + "description": "The organization of the contact" + }, + "phoneNumber": { + "type": "string", + "example": "+91 11111 11111", + "description": "The phone number of the contact" + }, + "whatsappId": { + "type": "string", + "example": "911111111111", + "description": "The whatsapp id of the contact. DO NOT add + or @c.us" + }, + "vcard": { + "type": "string", + "default": null + } + }, + "required": [ + "fullName", + "phoneNumber", + "vcard" + ] + }, + "VCardContact": { + "type": "object", + "properties": { + "vcard": { + "type": "string", + "example": "BEGIN:VCARD\nVERSION:3.0\nFN:Jane Doe\nORG:Company Name;\nTEL;type=CELL;type=VOICE;waid=911111111111:+91 11111 11111\nEND:VCARD", + "description": "The vcard string" + } + }, + "required": [ + "vcard" + ] + }, + "MessageContactVcardRequest": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "example": "11111111111@c.us" + }, + "contacts": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/VCardContact" + }, + { + "$ref": "#/components/schemas/Contact" + } + ] + } + }, + "reply_to": { + "type": "string", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "example": null + }, + "session": { + "type": "string", + "default": "default" + } + }, + "required": [ + "chatId", + "contacts", + "session" + ] + }, + "MessageButtonReply": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "example": "11111111111@c.us" + }, + "replyTo": { + "type": "string", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "example": null + }, + "selectedDisplayText": { + "type": "string" + }, + "selectedButtonID": { + "type": "string" + }, + "session": { + "type": "string", + "default": "default" + } + }, + "required": [ + "chatId", + "selectedDisplayText", + "selectedButtonID", + "session" + ] + }, + "WANumberExistResult": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "example": "Chat id for the phone number. Undefined if the number does not exist" + }, + "numberExists": { + "type": "boolean" + } + }, + "required": [ + "numberExists" + ] + }, + "MessageReplyRequest": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "example": "11111111111@c.us" + }, + "reply_to": { + "type": "string", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "example": null + }, + "text": { + "type": "string", + "default": "Hi there!" + }, + "linkPreview": { + "type": "boolean", + "default": true + }, + "linkPreviewHighQuality": { + "type": "boolean", + "default": false + }, + "session": { + "type": "string", + "default": "default" + } + }, + "required": [ + "chatId", + "text", + "session" + ] + }, + "MessageLinkPreviewRequest": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "example": "11111111111@c.us" + }, + "session": { + "type": "string", + "default": "default" + }, + "url": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "chatId", + "session", + "url", + "title" + ] + }, + "ChatSummary": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string", + "nullable": true + }, + "picture": { + "type": "string", + "nullable": true + }, + "lastMessage": { + "type": "object" + }, + "_chat": { + "type": "object" + } + }, + "required": [ + "id", + "name", + "picture", + "lastMessage", + "_chat" + ] + }, + "OverviewPaginationParams": { + "type": "object", + "properties": { + "limit": { + "type": "number", + "default": 20 + }, + "offset": { + "type": "number" + } + } + }, + "OverviewFilter": { + "type": "object", + "properties": { + "ids": { + "description": "Filter by chat ids", + "example": [ + "111111111@c.us" + ], + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "OverviewBodyRequest": { + "type": "object", + "properties": { + "pagination": { + "$ref": "#/components/schemas/OverviewPaginationParams" + }, + "filter": { + "$ref": "#/components/schemas/OverviewFilter" + } + }, + "required": [ + "pagination", + "filter" + ] + }, + "ChatPictureResponse": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "required": [ + "url" + ] + }, + "ReadChatMessagesResponse": { + "type": "object", + "properties": { + "ids": { + "description": "Messages IDs that have been read", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "PinMessageRequest": { + "type": "object", + "properties": { + "duration": { + "type": "number", + "description": "Duration in seconds. 24 hours (86400), 7 days (604800), 30 days (2592000)", + "example": 86400 + } + }, + "required": [ + "duration" + ] + }, + "EditMessageRequest": { + "type": "object", + "properties": { + "text": { + "type": "string", + "default": "Hello, world!" + }, + "linkPreview": { + "type": "boolean", + "default": true + }, + "linkPreviewHighQuality": { + "type": "boolean", + "default": false + } + }, + "required": [ + "text" + ] + }, + "RejectCallRequest": { + "type": "object", + "properties": { + "from": { + "type": "string", + "example": "11111111111@c.us" + }, + "id": { + "type": "string", + "description": "Call ID", + "example": "ABCDEFGABCDEFGABCDEFGABCDEFG" + } + }, + "required": [ + "from", + "id" + ] + }, + "Channel": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Newsletter id", + "example": "123123123123@newsletter" + }, + "name": { + "type": "string", + "description": "Channel name", + "example": "Channel Name" + }, + "invite": { + "type": "string", + "description": "Invite link", + "example": "https://www.whatsapp.com/channel/111111111111111111111111" + }, + "preview": { + "type": "string", + "description": "Preview for channel's picture", + "example": "https://mmg.whatsapp.net/m1/v/t24/An&_nc_cat=10" + }, + "picture": { + "type": "string", + "description": "Channel's picture", + "example": "https://mmg.whatsapp.net/m1/v/t24/An&_nc_cat=10" + }, + "role": { + "enum": [ + "OWNER", + "ADMIN", + "SUBSCRIBER", + "GUEST" + ], + "type": "string" + }, + "description": { + "type": "string" + }, + "verified": { + "type": "boolean" + }, + "subscribersCount": { + "type": "number" + } + }, + "required": [ + "id", + "name", + "invite", + "role", + "verified", + "subscribersCount" + ] + }, + "CreateChannelRequest": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Channel Name" + }, + "description": { + "type": "string", + "example": "Channel Description" + }, + "picture": { + "oneOf": [ + { + "$ref": "#/components/schemas/RemoteFile" + }, + { + "$ref": "#/components/schemas/BinaryFile" + } + ] + } + }, + "required": [ + "name" + ] + }, + "ChannelMessage": { + "type": "object", + "properties": { + "reactions": { + "type": "object", + "example": { + "πŸ‘": 10, + "❀️": 5 + }, + "additionalProperties": { + "type": "number" + } + }, + "message": { + "$ref": "#/components/schemas/WAMessage" + }, + "viewCount": { + "type": "number" + } + }, + "required": [ + "reactions", + "message", + "viewCount" + ] + }, + "ChannelSearchByView": { + "type": "object", + "properties": { + "view": { + "type": "string", + "default": "RECOMMENDED" + }, + "countries": { + "default": [ + "US" + ], + "type": "array", + "items": { + "type": "string" + } + }, + "categories": { + "default": [], + "type": "array", + "items": { + "type": "string" + } + }, + "limit": { + "type": "number", + "default": 50 + }, + "startCursor": { + "type": "string", + "default": "" + } + }, + "required": [ + "view", + "countries", + "categories", + "limit", + "startCursor" + ] + }, + "ChannelPagination": { + "type": "object", + "properties": { + "startCursor": { + "type": "string", + "nullable": true + }, + "endCursor": { + "type": "string", + "nullable": true + }, + "hasNextPage": { + "type": "boolean" + }, + "hasPreviousPage": { + "type": "boolean" + } + }, + "required": [ + "startCursor", + "endCursor", + "hasNextPage", + "hasPreviousPage" + ] + }, + "ChannelPublicInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Newsletter id", + "example": "123123123123@newsletter" + }, + "name": { + "type": "string", + "description": "Channel name", + "example": "Channel Name" + }, + "invite": { + "type": "string", + "description": "Invite link", + "example": "https://www.whatsapp.com/channel/111111111111111111111111" + }, + "preview": { + "type": "string", + "description": "Preview for channel's picture", + "example": "https://mmg.whatsapp.net/m1/v/t24/An&_nc_cat=10" + }, + "picture": { + "type": "string", + "description": "Channel's picture", + "example": "https://mmg.whatsapp.net/m1/v/t24/An&_nc_cat=10" + }, + "description": { + "type": "string" + }, + "verified": { + "type": "boolean" + }, + "subscribersCount": { + "type": "number" + } + }, + "required": [ + "id", + "name", + "invite", + "verified", + "subscribersCount" + ] + }, + "ChannelListResult": { + "type": "object", + "properties": { + "page": { + "$ref": "#/components/schemas/ChannelPagination" + }, + "channels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelPublicInfo" + } + } + }, + "required": [ + "page", + "channels" + ] + }, + "ChannelSearchByText": { + "type": "object", + "properties": { + "text": { + "type": "string", + "default": "Donald Trump" + }, + "categories": { + "default": [], + "type": "array", + "items": { + "type": "string" + } + }, + "limit": { + "type": "number", + "default": 50 + }, + "startCursor": { + "type": "string", + "default": "" + } + }, + "required": [ + "text", + "categories", + "limit", + "startCursor" + ] + }, + "ChannelView": { + "type": "object", + "properties": { + "value": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "value", + "name" + ] + }, + "ChannelCountry": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "code", + "name" + ] + }, + "ChannelCategory": { + "type": "object", + "properties": { + "value": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "value", + "name" + ] + }, + "TextStatus": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Pre-generated status message id", + "example": "BBBBBBBBBBBBBBBBB", + "default": null + }, + "contacts": { + "description": "Contact list to send the status to.", + "example": null, + "type": "array", + "items": { + "type": "string" + } + }, + "text": { + "type": "string", + "default": "Have a look! https://github.com/" + }, + "backgroundColor": { + "type": "string", + "default": "#38b42f" + }, + "font": { + "type": "number", + "default": 0 + }, + "linkPreview": { + "type": "boolean", + "default": true + }, + "linkPreviewHighQuality": { + "type": "boolean", + "default": false + } + }, + "required": [ + "text", + "backgroundColor", + "font" + ] + }, + "ImageStatus": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Pre-generated status message id", + "example": "BBBBBBBBBBBBBBBBB", + "default": null + }, + "contacts": { + "description": "Contact list to send the status to.", + "example": null, + "type": "array", + "items": { + "type": "string" + } + }, + "file": { + "oneOf": [ + { + "$ref": "#/components/schemas/RemoteFile" + }, + { + "$ref": "#/components/schemas/BinaryFile" + } + ] + }, + "caption": { + "type": "string" + } + }, + "required": [ + "file" + ] + }, + "VoiceStatus": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Pre-generated status message id", + "example": "BBBBBBBBBBBBBBBBB", + "default": null + }, + "contacts": { + "description": "Contact list to send the status to.", + "example": null, + "type": "array", + "items": { + "type": "string" + } + }, + "file": { + "oneOf": [ + { + "$ref": "#/components/schemas/VoiceRemoteFile" + }, + { + "$ref": "#/components/schemas/VoiceBinaryFile" + } + ] + }, + "convert": { + "type": "boolean", + "description": "Convert the input file to the required format using ffmpeg before sending", + "example": true + }, + "backgroundColor": { + "type": "string", + "default": "#38b42f" + } + }, + "required": [ + "file", + "convert", + "backgroundColor" + ] + }, + "VideoStatus": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Pre-generated status message id", + "example": "BBBBBBBBBBBBBBBBB", + "default": null + }, + "contacts": { + "description": "Contact list to send the status to.", + "example": null, + "type": "array", + "items": { + "type": "string" + } + }, + "file": { + "oneOf": [ + { + "$ref": "#/components/schemas/VideoRemoteFile" + }, + { + "$ref": "#/components/schemas/VideoBinaryFile" + } + ] + }, + "convert": { + "type": "boolean", + "description": "Convert the input file to the required format using ffmpeg before sending", + "example": true + }, + "caption": { + "type": "string" + } + }, + "required": [ + "file", + "convert" + ] + }, + "DeleteStatusRequest": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Status message id to delete", + "example": "AAAAAAAAAAAAAAAAA", + "default": null + }, + "contacts": { + "description": "Contact list to send the status to.", + "example": null, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "NewMessageIDResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Pre-generated message id", + "example": "BBBBBBBBBBBBBBBBB" + } + }, + "required": [ + "id" + ] + }, + "Label": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "1", + "description": "Label ID" + }, + "name": { + "type": "string", + "example": "Lead", + "description": "Label name" + }, + "color": { + "type": "number", + "example": 0, + "description": "Color number, not hex" + }, + "colorHex": { + "type": "string", + "example": "#ff9485", + "description": "Color in hex" + } + }, + "required": [ + "id", + "name", + "color", + "colorHex" + ] + }, + "LabelBody": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Lead", + "description": "Label name" + }, + "colorHex": { + "type": "string", + "example": "#ff9485", + "description": "Color in hex" + }, + "color": { + "type": "number", + "example": null, + "description": "Color number, not hex" + } + }, + "required": [ + "name" + ] + }, + "LabelID": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "1", + "description": "Label ID" + } + }, + "required": [ + "id" + ] + }, + "SetLabelsRequest": { + "type": "object", + "properties": { + "labels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LabelID" + } + } + }, + "required": [ + "labels" + ] + }, + "ContactRequest": { + "type": "object", + "properties": { + "contactId": { + "type": "string", + "example": "11111111111@c.us" + }, + "session": { + "type": "string", + "default": "default" + } + }, + "required": [ + "contactId", + "session" + ] + }, + "ContactUpdateBody": { + "type": "object", + "properties": { + "firstName": { + "type": "string", + "default": "John", + "description": "Contact First Name", + "example": "John" + }, + "lastName": { + "type": "string", + "default": "Doe", + "description": "Contact Last Name", + "example": "Doe" + } + }, + "required": [ + "firstName", + "lastName" + ] + }, + "LidToPhoneNumber": { + "type": "object", + "properties": { + "lid": { + "type": "string", + "description": "Linked ID for the user", + "example": "1111111@lid" + }, + "pn": { + "type": "string", + "description": "Phone number (chat id) for the user", + "example": "3333333@c.us" + } + } + }, + "CountResponse": { + "type": "object", + "properties": { + "count": { + "type": "number", + "default": 0 + } + }, + "required": [ + "count" + ] + }, + "Participant": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "123456789@c.us" + } + }, + "required": [ + "id" + ] + }, + "CreateGroupRequest": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "participants": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Participant" + } + } + }, + "required": [ + "name", + "participants" + ] + }, + "JoinGroupRequest": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Group code (123) or url (https://chat.whatsapp.com/123)", + "example": "https://chat.whatsapp.com/1234567890abcdef" + } + }, + "required": [ + "code" + ] + }, + "JoinGroupResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Group ID", + "example": "123@g.us" + } + }, + "required": [ + "id" + ] + }, + "DescriptionRequest": { + "type": "object", + "properties": { + "description": { + "type": "string" + } + }, + "required": [ + "description" + ] + }, + "SubjectRequest": { + "type": "object", + "properties": { + "subject": { + "type": "string" + } + }, + "required": [ + "subject" + ] + }, + "SettingsSecurityChangeInfo": { + "type": "object", + "properties": { + "adminsOnly": { + "type": "boolean", + "default": true + } + }, + "required": [ + "adminsOnly" + ] + }, + "GroupParticipant": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Member ID in @c.us or @lid format", + "example": "123456789@lid" + }, + "pn": { + "type": "string", + "description": "Member ID in @c.us format", + "example": "123456789@c.us" + }, + "role": { + "enum": [ + "left", + "participant", + "admin", + "superadmin" + ], + "type": "string", + "example": "participant" + } + }, + "required": [ + "id", + "role" + ] + }, + "ParticipantsRequest": { + "type": "object", + "properties": { + "participants": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Participant" + } + } + }, + "required": [ + "participants" + ] + }, + "WAHASessionPresence": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "description": "Chat ID - either group id or contact id", + "example": "11111111111@c.us" + }, + "presence": { + "type": "string", + "enum": [ + "offline", + "online", + "typing", + "recording", + "paused" + ] + } + }, + "required": [ + "chatId", + "presence" + ] + }, + "WAHAPresenceData": { + "type": "object", + "properties": { + "participant": { + "type": "string", + "description": "Chat ID - participant or contact id", + "example": "11111111111@c.us" + }, + "lastSeen": { + "type": "number", + "example": 1686568773 + }, + "lastKnownPresence": { + "type": "string", + "enum": [ + "offline", + "online", + "typing", + "recording", + "paused" + ] + } + }, + "required": [ + "participant", + "lastKnownPresence" + ] + }, + "WAHAChatPresences": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Chat ID - either group id or contact id", + "example": "11111111111@c.us" + }, + "presences": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WAHAPresenceData" + } + } + }, + "required": [ + "id", + "presences" + ] + }, + "EventLocation": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the location", + "example": "Luxe Nail Studio πŸ’…" + } + }, + "required": [ + "name" + ] + }, + "EventMessage": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the event", + "example": "John's Nail Appointment πŸ’…" + }, + "description": { + "type": "string", + "description": "Description of the event", + "example": "It's time for your nail care session! 🌟\\n\\nYou'll be getting a *classic gel manicure* – clean, polished, and long-lasting. πŸ’–\\n\\nπŸ“ *Location:* Luxe Nail Studio\\nWe're on the *2nd floor of the Plaza Mall*, next to the flower shop. Look for the *pink neon sign*!\\n\\nFeel free to arrive *5–10 mins early* so we can get started on time 😊" + }, + "startTime": { + "type": "number", + "description": "Start time of the event (Unix timestamp in seconds)", + "example": 2063137000 + }, + "endTime": { + "type": "number", + "description": "End time of the event (Unix timestamp in seconds)", + "example": null + }, + "location": { + "description": "Location of the event", + "allOf": [ + { + "$ref": "#/components/schemas/EventLocation" + } + ] + }, + "extraGuestsAllowed": { + "type": "boolean", + "description": "Whether extra guests are allowed", + "example": false + } + }, + "required": [ + "name", + "startTime" + ] + }, + "EventMessageRequest": { + "type": "object", + "properties": { + "chatId": { + "type": "string", + "example": "11111111111@c.us" + }, + "reply_to": { + "type": "string", + "description": "The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA", + "example": null + }, + "event": { + "$ref": "#/components/schemas/EventMessage" + } + }, + "required": [ + "chatId", + "event" + ] + }, + "PingResponse": { + "type": "object", + "properties": { + "message": { + "type": "string", + "default": "pong" + } + }, + "required": [ + "message" + ] + }, + "WAHAEnvironment": { + "type": "object", + "properties": { + "version": { + "type": "string", + "example": "YYYY.MM.BUILD" + }, + "engine": { + "type": "string", + "example": "WEBJS" + }, + "tier": { + "type": "string", + "example": "PLUS" + }, + "browser": { + "type": "string", + "example": "/usr/path/to/bin/google-chrome" + }, + "platform": { + "type": "string", + "example": "linux/x86" + }, + "worker": { + "type": "object", + "properties": { + "id": { + "required": true, + "type": "string", + "nullable": true + } + } + } + }, + "required": [ + "version", + "engine", + "tier", + "browser", + "platform", + "worker" + ] + }, + "WorkerInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "waha", + "description": "The worker ID." + } + }, + "required": [ + "id" + ] + }, + "ServerStatusResponse": { + "type": "object", + "properties": { + "startTimestamp": { + "type": "number", + "example": 1723788847247, + "description": "The timestamp when the server started (milliseconds)." + }, + "uptime": { + "type": "number", + "example": 3600000, + "description": "The uptime of the server in milliseconds." + }, + "worker": { + "$ref": "#/components/schemas/WorkerInfo" + } + }, + "required": [ + "startTimestamp", + "uptime", + "worker" + ] + }, + "StopRequest": { + "type": "object", + "properties": { + "force": { + "type": "boolean", + "default": false, + "example": false, + "description": "By default, it gracefully stops the server, but you can force it to terminate immediately." + } + } + }, + "StopResponse": { + "type": "object", + "properties": { + "stopping": { + "type": "boolean", + "default": true, + "example": true, + "description": "Always 'true' if the server is stopping." + } + }, + "required": [ + "stopping" + ] + }, + "VoiceFileDTO": { + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "The URL for the voice file", + "example": "https://github.com/devlikeapro/waha/raw/core/examples/voice.mp3" + }, + "data": { + "type": "string", + "description": "Base64 content of the file", + "example": null + } + } + }, + "VideoFileDTO": { + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "The URL for the video file", + "example": "https://github.com/devlikeapro/waha/raw/core/examples/video.mp4" + }, + "data": { + "type": "string", + "description": "Base64 content of the file", + "example": null + } + } + }, + "SessionStatusPoint": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "STOPPED", + "STARTING", + "SCAN_QR_CODE", + "WORKING", + "FAILED" + ] + }, + "timestamp": { + "type": "number" + } + }, + "required": [ + "status", + "timestamp" + ] + }, + "WASessionStatusBody": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "default" + }, + "status": { + "type": "string", + "enum": [ + "STOPPED", + "STARTING", + "SCAN_QR_CODE", + "WORKING", + "FAILED" + ] + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionStatusPoint" + } + } + }, + "required": [ + "name", + "status", + "statuses" + ] + }, + "WAHAWebhookSessionStatus": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "session.status", + "description": "The event is triggered when the session status changes." + }, + "payload": { + "$ref": "#/components/schemas/WASessionStatusBody" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "WAHAWebhookMessage": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "message", + "description": "Incoming message." + }, + "payload": { + "$ref": "#/components/schemas/WAMessage" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "WAReaction": { + "type": "object", + "properties": { + "text": { + "type": "string", + "description": "Reaction to the message. Either the reaction (emoji) or empty string to remove the reaction" + }, + "messageId": { + "type": "string", + "description": "Message ID for the message to react to", + "example": "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA" + } + }, + "required": [ + "text", + "messageId" + ] + }, + "WAMessageReaction": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Message ID", + "example": "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA" + }, + "timestamp": { + "type": "number", + "description": "Unix timestamp for when the message was created", + "example": 1666943582 + }, + "from": { + "type": "string", + "description": "ID for the Chat that this message was sent to, except if the message was sent by the current user ", + "example": "11111111111@c.us" + }, + "fromMe": { + "type": "boolean", + "description": "Indicates if the message was sent by the current user" + }, + "source": { + "enum": [ + "api", + "app" + ], + "type": "string", + "description": "The device that sent the message - either API or APP. Available in events (webhooks/websockets) only and only \"fromMe: true\" messages.", + "example": "api" + }, + "to": { + "type": "string", + "description": "\n* ID for who this message is for.\n* If the message is sent by the current user, it will be the Chat to which the message is being sent.\n* If the message is sent by another user, it will be the ID for the current user.\n", + "example": "11111111111@c.us" + }, + "participant": { + "type": "string", + "description": "For groups - participant who sent the message" + }, + "reaction": { + "description": "Reaction to the message. Either the reaction (emoji) or empty string to remove the reaction", + "allOf": [ + { + "$ref": "#/components/schemas/WAReaction" + } + ] + } + }, + "required": [ + "id", + "timestamp", + "from", + "fromMe", + "source", + "to", + "participant", + "reaction" + ] + }, + "WAHAWebhookMessageReaction": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "message.reaction", + "description": "The event is triggered when a user reacts or removes a reaction." + }, + "payload": { + "$ref": "#/components/schemas/WAMessageReaction" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "WAHAWebhookMessageAny": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "message.any", + "description": "Fired on all message creations, including your own." + }, + "payload": { + "$ref": "#/components/schemas/WAMessage" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "WAMessageAckBody": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Message ID", + "example": "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA" + }, + "from": { + "type": "string", + "example": "11111111111@c.us" + }, + "to": { + "type": "string", + "example": "11111111111@c.us" + }, + "participant": { + "type": "string", + "example": "11111111111@c.us" + }, + "fromMe": { + "type": "boolean" + }, + "ack": { + "type": "number", + "enum": [ + -1, + 0, + 1, + 2, + 3, + 4 + ] + }, + "ackName": { + "type": "string" + }, + "_data": { + "type": "object" + } + }, + "required": [ + "id", + "from", + "to", + "participant", + "fromMe", + "ack", + "ackName" + ] + }, + "WAHAWebhookMessageAck": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "message.ack", + "description": "Receive events when server or recipient gets the message, read or played it (contacts only)." + }, + "payload": { + "$ref": "#/components/schemas/WAMessageAckBody" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "WAHAWebhookMessageAckGroup": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "message.ack.group", + "description": "Receive events when participants in a group read or play messages." + }, + "payload": { + "$ref": "#/components/schemas/WAMessageAckBody" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "WAMessageRevokedBody": { + "type": "object", + "properties": { + "revokedMessageId": { + "type": "string", + "description": "ID of the message that was revoked", + "example": "A06CA7BB5DD8C8F705628CDB7E3A33C9" + }, + "after": { + "$ref": "#/components/schemas/WAMessage" + }, + "before": { + "$ref": "#/components/schemas/WAMessage" + }, + "_data": { + "type": "object" + } + } + }, + "WAHAWebhookMessageRevoked": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "message.revoked", + "description": "The event is triggered when a user, whether it be you or any other participant, revokes a previously sent message." + }, + "payload": { + "$ref": "#/components/schemas/WAMessageRevokedBody" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "WAMessageEditedBody": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Message ID", + "example": "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA" + }, + "timestamp": { + "type": "number", + "description": "Unix timestamp for when the message was created", + "example": 1666943582 + }, + "from": { + "type": "string", + "description": "ID for the Chat that this message was sent to, except if the message was sent by the current user ", + "example": "11111111111@c.us" + }, + "fromMe": { + "type": "boolean", + "description": "Indicates if the message was sent by the current user" + }, + "source": { + "enum": [ + "api", + "app" + ], + "type": "string", + "description": "The device that sent the message - either API or APP. Available in events (webhooks/websockets) only and only \"fromMe: true\" messages.", + "example": "api" + }, + "to": { + "type": "string", + "description": "\n* ID for who this message is for.\n* If the message is sent by the current user, it will be the Chat to which the message is being sent.\n* If the message is sent by another user, it will be the ID for the current user.\n", + "example": "11111111111@c.us" + }, + "participant": { + "type": "string", + "description": "For groups - participant who sent the message" + }, + "body": { + "type": "string", + "description": "Message content" + }, + "hasMedia": { + "type": "boolean", + "description": "Indicates if the message has media available for download" + }, + "media": { + "description": "Media object for the message if any and downloaded", + "allOf": [ + { + "$ref": "#/components/schemas/WAMedia" + } + ] + }, + "mediaUrl": { + "type": "string", + "description": "Use `media.url` instead! The URL for the media in the message if any", + "deprecated": true, + "example": "http://localhost:3000/api/files/false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA.oga" + }, + "ack": { + "enum": [ + -1, + 0, + 1, + 2, + 3, + 4 + ], + "type": "number", + "description": "ACK status for the message" + }, + "ackName": { + "type": "string", + "description": "ACK status name for the message" + }, + "author": { + "type": "string", + "description": "If the message was sent to a group, this field will contain the user that sent the message." + }, + "location": { + "description": "Location information contained in the message, if the message is type \"location\"", + "allOf": [ + { + "$ref": "#/components/schemas/WALocation" + } + ] + }, + "vCards": { + "description": "List of vCards contained in the message.", + "type": "array", + "items": { + "type": "string" + } + }, + "_data": { + "type": "object", + "description": "Message in a raw format that we get from WhatsApp. May be changed anytime, use it with caution! It depends a lot on the underlying backend." + }, + "editedMessageId": { + "type": "string", + "description": "ID of the original message that was edited", + "example": "A06CA7BB5DD8C8F705628CDB7E3A33C9" + }, + "replyTo": { + "$ref": "#/components/schemas/ReplyToMessage" + } + }, + "required": [ + "id", + "timestamp", + "from", + "fromMe", + "source", + "to", + "participant", + "body", + "hasMedia", + "mediaUrl", + "ack", + "ackName" + ] + }, + "WAHAWebhookMessageEdited": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "message.edited", + "description": "The event is triggered when a user edits a previously sent message." + }, + "payload": { + "$ref": "#/components/schemas/WAMessageEditedBody" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "GroupInfo": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "123456789@g.us" + }, + "subject": { + "type": "string", + "example": "Group Name" + }, + "description": { + "type": "string", + "example": "Group Description" + }, + "invite": { + "type": "string", + "description": "Invite URL", + "example": "https://chat.whatsapp.com/1234567890abcdef" + }, + "membersCanAddNewMember": { + "type": "boolean", + "description": "Members can add new members" + }, + "membersCanSendMessages": { + "type": "boolean", + "description": "Members can send messages to the group" + }, + "newMembersApprovalRequired": { + "type": "boolean", + "description": "Admin approval required for new members" + }, + "participants": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupParticipant" + } + } + }, + "required": [ + "id", + "subject", + "description", + "membersCanAddNewMember", + "membersCanSendMessages", + "newMembersApprovalRequired", + "participants" + ] + }, + "GroupV2JoinEvent": { + "type": "object", + "properties": { + "timestamp": { + "type": "number", + "description": "Unix timestamp", + "example": 1666943582 + }, + "group": { + "$ref": "#/components/schemas/GroupInfo" + }, + "_data": { + "type": "object" + } + }, + "required": [ + "timestamp", + "group", + "_data" + ] + }, + "WebhookGroupV2Join": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "group.v2.join", + "description": "When you joined or were added to a group" + }, + "payload": { + "$ref": "#/components/schemas/GroupV2JoinEvent" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "GroupId": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "123456789@g.us" + } + }, + "required": [ + "id" + ] + }, + "GroupV2LeaveEvent": { + "type": "object", + "properties": { + "timestamp": { + "type": "number", + "description": "Unix timestamp", + "example": 1666943582 + }, + "group": { + "$ref": "#/components/schemas/GroupId" + }, + "_data": { + "type": "object" + } + }, + "required": [ + "timestamp", + "group", + "_data" + ] + }, + "WebhookGroupV2Leave": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "group.v2.leave", + "description": "When you left or were removed from a group" + }, + "payload": { + "$ref": "#/components/schemas/GroupV2LeaveEvent" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "GroupV2UpdateEvent": { + "type": "object", + "properties": { + "timestamp": { + "type": "number", + "description": "Unix timestamp", + "example": 1666943582 + }, + "group": { + "type": "object" + }, + "_data": { + "type": "object" + } + }, + "required": [ + "timestamp", + "group", + "_data" + ] + }, + "WebhookGroupV2Update": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "group.v2.update", + "description": "When group info is updated" + }, + "payload": { + "$ref": "#/components/schemas/GroupV2UpdateEvent" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "GroupV2ParticipantsEvent": { + "type": "object", + "properties": { + "type": { + "enum": [ + "join", + "leave", + "promote", + "demote" + ], + "type": "string", + "description": "Type of the event" + }, + "timestamp": { + "type": "number", + "description": "Unix timestamp", + "example": 1666943582 + }, + "group": { + "$ref": "#/components/schemas/GroupId" + }, + "participants": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupParticipant" + } + }, + "_data": { + "type": "object" + } + }, + "required": [ + "type", + "timestamp", + "group", + "participants", + "_data" + ] + }, + "WebhookGroupV2Participants": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "group.v2.participants", + "description": "When participants changed - join, leave, promote to admin" + }, + "payload": { + "$ref": "#/components/schemas/GroupV2ParticipantsEvent" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "WAHAWebhookPresenceUpdate": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "presence.update", + "description": "The most recent presence information for a chat." + }, + "payload": { + "$ref": "#/components/schemas/WAHAChatPresences" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "PollVote": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Message ID", + "example": "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA" + }, + "selectedOptions": { + "description": "Option that user has selected", + "example": [ + "Awesome!" + ], + "type": "array", + "items": { + "type": "string" + } + }, + "timestamp": { + "type": "number", + "description": "Timestamp, ms", + "example": 1692861369 + }, + "to": { + "type": "string" + }, + "from": { + "type": "string" + }, + "fromMe": { + "type": "boolean" + }, + "participant": { + "type": "string" + } + }, + "required": [ + "id", + "selectedOptions", + "timestamp", + "to", + "from", + "fromMe" + ] + }, + "MessageDestination": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Message ID", + "example": "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA" + }, + "to": { + "type": "string" + }, + "from": { + "type": "string" + }, + "fromMe": { + "type": "boolean" + }, + "participant": { + "type": "string" + } + }, + "required": [ + "id", + "to", + "from", + "fromMe" + ] + }, + "PollVotePayload": { + "type": "object", + "properties": { + "vote": { + "$ref": "#/components/schemas/PollVote" + }, + "poll": { + "$ref": "#/components/schemas/MessageDestination" + }, + "_data": { + "type": "object" + } + }, + "required": [ + "vote", + "poll" + ] + }, + "WAHAWebhookPollVote": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "poll.vote", + "description": "With this event, you receive new votes for the poll sent." + }, + "payload": { + "$ref": "#/components/schemas/PollVotePayload" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "WAHAWebhookPollVoteFailed": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "poll.vote.failed", + "description": "There may be cases when it fails to decrypt a vote from the user. Read more about how to handle such events in the documentations." + }, + "payload": { + "$ref": "#/components/schemas/PollVotePayload" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "ChatArchiveEvent": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "11111111111@c.us" + }, + "archived": { + "type": "boolean" + }, + "timestamp": { + "type": "number" + } + }, + "required": [ + "id", + "archived", + "timestamp" + ] + }, + "WAHAWebhookChatArchive": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "chat.archive", + "description": "The event is triggered when the chat is archived or unarchived" + }, + "payload": { + "$ref": "#/components/schemas/ChatArchiveEvent" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "CallData": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Call ID", + "example": "ABCDEFGABCDEFGABCDEFGABCDEFG" + }, + "from": { + "type": "string", + "example": "11111111111@c.us" + }, + "timestamp": { + "type": "number" + }, + "isVideo": { + "type": "boolean" + }, + "isGroup": { + "type": "boolean" + }, + "_data": { + "type": "object" + } + }, + "required": [ + "id", + "timestamp", + "isVideo", + "isGroup", + "_data" + ] + }, + "WAHAWebhookCallReceived": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "call.received", + "description": "The event is triggered when the call is received by the user." + }, + "payload": { + "$ref": "#/components/schemas/CallData" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "WAHAWebhookCallAccepted": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "call.accepted", + "description": "The event is triggered when the call is accepted by the user." + }, + "payload": { + "$ref": "#/components/schemas/CallData" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "WAHAWebhookCallRejected": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "call.rejected", + "description": "The event is triggered when the call is rejected by the user." + }, + "payload": { + "$ref": "#/components/schemas/CallData" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "WAHAWebhookLabelUpsert": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "label.upsert", + "description": "The event is triggered when a label is created or updated" + }, + "payload": { + "$ref": "#/components/schemas/Label" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "WAHAWebhookLabelDeleted": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "label.deleted", + "description": "The event is triggered when a label is deleted" + }, + "payload": { + "$ref": "#/components/schemas/Label" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "LabelChatAssociation": { + "type": "object", + "properties": { + "labelId": { + "type": "string", + "example": "1", + "description": "Label ID" + }, + "chatId": { + "type": "string", + "description": "Chat ID", + "example": "11111111111@c.us" + }, + "label": { + "nullable": true, + "allOf": [ + { + "$ref": "#/components/schemas/Label" + } + ] + } + }, + "required": [ + "labelId", + "chatId", + "label" + ] + }, + "WAHAWebhookLabelChatAdded": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "label.chat.added", + "description": "The event is triggered when a label is added to a chat" + }, + "payload": { + "$ref": "#/components/schemas/LabelChatAssociation" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "WAHAWebhookLabelChatDeleted": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "label.chat.deleted", + "description": "The event is triggered when a label is deleted from a chat" + }, + "payload": { + "$ref": "#/components/schemas/LabelChatAssociation" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "EventResponse": { + "type": "object", + "properties": { + "response": { + "type": "string", + "enum": [ + "UNKNOWN", + "GOING", + "NOT_GOING", + "MAYBE" + ] + }, + "timestampMs": { + "type": "number" + }, + "extraGuestCount": { + "type": "number" + } + }, + "required": [ + "response", + "timestampMs", + "extraGuestCount" + ] + }, + "EventResponsePayload": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Message ID", + "example": "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA" + }, + "timestamp": { + "type": "number", + "description": "Unix timestamp for when the message was created", + "example": 1666943582 + }, + "from": { + "type": "string", + "description": "ID for the Chat that this message was sent to, except if the message was sent by the current user ", + "example": "11111111111@c.us" + }, + "fromMe": { + "type": "boolean", + "description": "Indicates if the message was sent by the current user" + }, + "source": { + "enum": [ + "api", + "app" + ], + "type": "string", + "description": "The device that sent the message - either API or APP. Available in events (webhooks/websockets) only and only \"fromMe: true\" messages.", + "example": "api" + }, + "to": { + "type": "string", + "description": "\n* ID for who this message is for.\n* If the message is sent by the current user, it will be the Chat to which the message is being sent.\n* If the message is sent by another user, it will be the ID for the current user.\n", + "example": "11111111111@c.us" + }, + "participant": { + "type": "string", + "description": "For groups - participant who sent the message" + }, + "_data": { + "type": "object", + "description": "Message in a raw format that we get from WhatsApp. May be changed anytime, use it with caution! It depends a lot on the underlying backend." + }, + "eventCreationKey": { + "$ref": "#/components/schemas/MessageDestination" + }, + "eventResponse": { + "$ref": "#/components/schemas/EventResponse" + } + }, + "required": [ + "id", + "timestamp", + "from", + "fromMe", + "source", + "to", + "participant", + "eventCreationKey" + ] + }, + "WAHAWebhookEventResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "event.response", + "description": "The event is triggered when the event response is received." + }, + "payload": { + "$ref": "#/components/schemas/EventResponsePayload" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "WAHAWebhookEventResponseFailed": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "event.response.failed", + "description": "The event is triggered when the event response is failed to decrypt." + }, + "payload": { + "$ref": "#/components/schemas/EventResponsePayload" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "EnginePayload": { + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "data": { + "type": "object" + } + }, + "required": [ + "event", + "data" + ] + }, + "WAHAWebhookEngineEvent": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "engine.event", + "description": "Internal engine event." + }, + "payload": { + "$ref": "#/components/schemas/EnginePayload" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "WAHAWebhookGroupJoin": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "group.join", + "description": "Some one join a group.", + "deprecated": true + }, + "payload": { + "type": "object" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "WAHAWebhookGroupLeave": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "group.leave", + "description": "Some one left a group.", + "deprecated": true + }, + "payload": { + "type": "object" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + }, + "WAHAWebhookStateChange": { + "type": "object", + "properties": { + "id": { + "type": "string", + "example": "evt_01aaaaaaaaaaaaaaaaaaaaaaaa", + "description": "Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec" + }, + "timestamp": { + "type": "number", + "example": 1634567890123, + "description": "Unix timestamp (ms) for when the event was created." + }, + "session": { + "type": "string", + "example": "default" + }, + "metadata": { + "type": "object", + "example": { + "user.id": "123", + "user.email": "email@example.com" + }, + "description": "Metadata for the session." + }, + "engine": { + "enum": [ + "WEBJS", + "NOWEB", + "GOWS" + ], + "type": "string", + "example": "WEBJS" + }, + "event": { + "enum": [ + "session.status", + "message", + "message.reaction", + "message.any", + "message.ack", + "message.ack.group", + "message.waiting", + "message.revoked", + "message.edited", + "state.change", + "group.join", + "group.leave", + "group.v2.join", + "group.v2.leave", + "group.v2.update", + "group.v2.participants", + "presence.update", + "poll.vote", + "poll.vote.failed", + "chat.archive", + "call.received", + "call.accepted", + "call.rejected", + "label.upsert", + "label.deleted", + "label.chat.added", + "label.chat.deleted", + "event.response", + "event.response.failed", + "engine.event" + ], + "type": "object", + "default": "state.change", + "description": "It’s an internal engine’s state, not session status.", + "deprecated": true + }, + "payload": { + "type": "object" + }, + "me": { + "$ref": "#/components/schemas/MeInfo" + }, + "environment": { + "$ref": "#/components/schemas/WAHAEnvironment" + } + }, + "required": [ + "id", + "timestamp", + "session", + "engine", + "event", + "payload", + "environment" + ] + } + } + }, + "externalDocs": { + "description": "WAHA - WhatsApp HTTP API", + "url": "https://waha.devlike.pro/" + }, + "webhooks": { + "session.status": { + "post": { + "summary": "The event is triggered when the session status changes.", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookSessionStatus" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "message": { + "post": { + "summary": "Incoming message.", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookMessage" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "message.reaction": { + "post": { + "summary": "The event is triggered when a user reacts or removes a reaction.", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookMessageReaction" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "message.any": { + "post": { + "summary": "Fired on all message creations, including your own.", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookMessageAny" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "message.ack": { + "post": { + "summary": "Receive events when server or recipient gets the message, read or played it (contacts only).", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookMessageAck" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "message.ack.group": { + "post": { + "summary": "Receive events when participants in a group read or play messages.", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookMessageAckGroup" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "message.revoked": { + "post": { + "summary": "The event is triggered when a user, whether it be you or any other participant, revokes a previously sent message.", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookMessageRevoked" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "message.edited": { + "post": { + "summary": "The event is triggered when a user edits a previously sent message.", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookMessageEdited" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "group.v2.join": { + "post": { + "summary": "When you joined or were added to a group", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookGroupV2Join" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "group.v2.leave": { + "post": { + "summary": "When you left or were removed from a group", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookGroupV2Leave" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "group.v2.update": { + "post": { + "summary": "When group info is updated", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookGroupV2Update" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "group.v2.participants": { + "post": { + "summary": "When participants changed - join, leave, promote to admin", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookGroupV2Participants" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "presence.update": { + "post": { + "summary": "The most recent presence information for a chat.", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookPresenceUpdate" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "poll.vote": { + "post": { + "summary": "With this event, you receive new votes for the poll sent.", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookPollVote" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "poll.vote.failed": { + "post": { + "summary": "There may be cases when it fails to decrypt a vote from the user. Read more about how to handle such events in the documentations.", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookPollVoteFailed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "chat.archive": { + "post": { + "summary": "The event is triggered when the chat is archived or unarchived", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookChatArchive" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "call.received": { + "post": { + "summary": "The event is triggered when the call is received by the user.", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookCallReceived" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "call.accepted": { + "post": { + "summary": "The event is triggered when the call is accepted by the user.", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookCallAccepted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "call.rejected": { + "post": { + "summary": "The event is triggered when the call is rejected by the user.", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookCallRejected" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "label.upsert": { + "post": { + "summary": "The event is triggered when a label is created or updated", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookLabelUpsert" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "label.deleted": { + "post": { + "summary": "The event is triggered when a label is deleted", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookLabelDeleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "label.chat.added": { + "post": { + "summary": "The event is triggered when a label is added to a chat", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookLabelChatAdded" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "label.chat.deleted": { + "post": { + "summary": "The event is triggered when a label is deleted from a chat", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookLabelChatDeleted" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "event.response": { + "post": { + "summary": "The event is triggered when the event response is received.", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookEventResponse" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "event.response.failed": { + "post": { + "summary": "The event is triggered when the event response is failed to decrypt.", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookEventResponseFailed" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "engine.event": { + "post": { + "summary": "Internal engine event.", + "deprecated": false, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookEngineEvent" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "group.join": { + "post": { + "summary": "Some one join a group.", + "deprecated": true, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookGroupJoin" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "group.leave": { + "post": { + "summary": "Some one left a group.", + "deprecated": true, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookGroupLeave" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + }, + "state.change": { + "post": { + "summary": "It’s an internal engine’s state, not session status.", + "deprecated": true, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WAHAWebhookStateChange" + } + } + } + }, + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + } + } + } + } +} diff --git a/nodes/WAHA/v202602/utils.ts b/nodes/WAHA/v202602/utils.ts new file mode 100644 index 0000000..30e6b3b --- /dev/null +++ b/nodes/WAHA/v202602/utils.ts @@ -0,0 +1,29 @@ + +import { INodeOutputConfiguration, INodeParameters, NodeConnectionType } from 'n8n-workflow'; +import * as doc from './openapi.json'; + +function getEvents() { + const schemas = doc.components.schemas; + const schema = schemas.WAHAWebhookSessionStatus; + const event = schema.properties.event; + return event.enum; +} + +export const events = getEvents(); + +export const configuredOutputs = (parameters: INodeParameters) => { + const listenEvents = parameters.listenEvents as string[]; + + if (listenEvents.length == 0) { + return [] + } + + let ruleOutputs: INodeOutputConfiguration[] = listenEvents.map((event, index): INodeOutputConfiguration => { + return { + type: NodeConnectionType.Main, + displayName: event || index.toString(), + }; + }); + + return ruleOutputs +}; diff --git a/package-lock.json b/package-lock.json index 3149c12..a63bb69 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@devlikeapro/n8n-nodes-waha", - "version": "2025.2.9", + "version": "2026.2.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@devlikeapro/n8n-nodes-waha", - "version": "2025.2.9", + "version": "2026.2.1", "license": "MIT", "dependencies": { "@devlikeapro/n8n-openapi-node": "^0.1.4", diff --git a/package.json b/package.json index a43d58f..034a378 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@devlikeapro/n8n-nodes-waha", - "version": "2025.2.9", + "version": "2026.2.1", "description": "n8n to connect with WAHA (Whatsapp HTTP API)", "keywords": [ "n8n-community-node-package"