evolution-api/src/docs/swagger.yaml
2024-05-24 18:48:54 -03:00

2778 lines
89 KiB
YAML

openapi: 3.0.0
info:
title: Evolution API
description: |
</br>
<hr style="height: 5px;background: #007500;margin: 20px 0;box-shadow: 0px 3px 5px 0px rgb(204 204 204);">
<div align="center">
[![Whatsapp Group](https://img.shields.io/badge/Group-WhatsApp-%2322BC18)](https://evolution-api.com/whatsapp)
[![Discord Community](https://img.shields.io/badge/Discord-Community-blue)](https://evolution-api.com/discord)
[![Postman Collection](https://img.shields.io/badge/Postman-Collection-orange)](https://evolution-api.com/postman)
[![Documentation](https://img.shields.io/badge/Documentation-Official-green)](https://doc.evolution-api.com)
[![License](https://img.shields.io/badge/license-GPL--3.0-orange)](./LICENSE)
[![Support](https://img.shields.io/badge/Donation-picpay-green)](https://app.picpay.com/user/davidsongomes1998)
[![Support](https://img.shields.io/badge/Buy%20me-coffe-orange)](https://bmc.link/evolutionapi)
</div>
<div align="center"><img src="https://raw.githubusercontent.com/EvolutionAPI/evolution-api/main/public/images/cover.png"></div>
<font size='3'>
This project is based on the [evolution](https://github.com/code-chat-br/whatsapp-api). The original project is an implementation of [Baileys](https://github.com/WhiskeySockets/Baileys), serving as a Restful API service that controls WhatsApp functions.</br>
The code allows the creation of multiservice chats, service bots, or any other system that utilizes WhatsApp. The documentation provides instructions on how to set up and use the project, as well as additional information about its features and configuration options.
</font>
[![Run in Postman](https://run.pstmn.io/button.svg)](https://god.gw.postman.com/run-collection/26869335-5546d063-156b-4529-915f-909dd628c090?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D26869335-5546d063-156b-4529-915f-909dd628c090%26entityType%3Dcollection%26workspaceId%3D339a4ee7-378b-45c9-b5b8-fd2c0a9c2442)
version: 1.8.0
contact:
name: DavidsonGomes
email: contato@agenciadgcode.com
url: https://img.shields.io/badge/license-GPL--3.0-orange
license:
name: GNU General Public License v3.0
url: https://github.com/EvolutionAPI/evolution-api/blob/main/LICENSE
servers: []
components:
securitySchemes:
apikeyAuth:
type: apiKey
in: header
name: apikey
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
security:
- bearerAuth: []
tags:
- name: Instance Controller
- name: Send Message Controller
- name: Chat Controller
- name: Group Controller
- name: Label Controller
- name: Profile Settings
- name: JWT
- name: Settings
- name: Webhook
- name: Websocket
- name: RabbitMQ
- name: Chatwoot
- name: Typebot
- name: Proxy
- name: Chama AI
paths:
/instance/create:
post:
tags:
- Instance Controller
summary: Create Instance
requestBody:
content:
application/json:
schema:
type: object
properties:
instanceName:
type: string
description: Name of the instance (optional).
token:
type: string
description: Token of the instance (optional).
qrcode:
type: boolean
description: QR Code of the instance (optional).
example:
instanceName: "exampleInstance"
token: "87F3F7D0-4B8A-45D0-8618-7399E4AD6469"
qrcode: true
security:
- apikeyAuth: []
responses:
"200":
description: Successful response
content:
application/json: {}
/instance/fetchInstances:
get:
tags:
- Instance Controller
summary: Fetch Instances
security:
- apikeyAuth: []
parameters:
- name: instanceName
in: query
schema:
type: string
description: Retrieve one or all instances (optional).
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json:
schema:
type: array
items:
type: object
properties:
instance:
type: object
properties:
instanceName:
type: string
owner:
type: string
profileName:
type: string
profilePictureUrl:
type: string
profileStatus:
type: string
status:
type: string
serverUrl:
type: string
apikey:
type: string
/instance/connect/{instanceName}:
get:
tags:
- Instance Controller
summary: Instance Connect
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: Connect to your instance.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json:
schema:
type: object
properties:
code:
type: string
base64:
type: string
description: The QR Code as a string.
/instance/restart/{instanceName}:
put:
tags:
- Instance Controller
summary: Instance Restart
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: Connect to your instance.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/instance/connectionState/{instanceName}:
get:
tags:
- Instance Controller
summary: Connection Status
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: Check the connection state of your instance.
example: "evolution"
security:
- apikeyAuth: []
responses:
"200":
description: Successful response
content:
application/json: {}
/instance/logout/{instanceName}:
delete:
tags:
- Instance Controller
summary: Logout Instance
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: Logout from your instance.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/instance/delete/{instanceName}:
delete:
tags:
- Instance Controller
summary: Delete Instance
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: Delete your instance.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/message/sendText/{instanceName}:
post:
tags:
- Send Message Controller
summary: Send a text message to a specified instance.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
number:
type: string
description: The recipient's phone number.
example: "1234567890"
textMessage:
type: object
properties:
text:
type: string
description: The content of the text message.
example: "Hello, World!"
options:
type: object
properties:
delay:
type: integer
description: Delay time before sending the message.
presence:
type: string
enum: ["composing", "recording", "paused"]
description: Indicates the sender's action/status.
linkPreview:
type: boolean
description: Indicates whether to enable link preview.
quoted:
type: object
properties:
key:
type: object
properties:
remoteJid:
type: string
description: The ID of the recipient of the original message.
fromMe:
type: boolean
description: Indicates if the message was sent from the user.
id:
type: string
description: The ID of the original message.
message:
type: object
properties:
conversation:
type: string
description: The content of the quoted message.
mentions:
type: object
properties:
everyone:
type: boolean
description: Indicates whether to mention everyone.
mentioned:
type: array
items:
type: string
description: The phone numbers of the users to be mentioned.
required:
- number
- textMessage
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: The name of the instance to which the message should be sent.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/message/sendStatus/{instanceName}:
post:
tags:
- Send Message Controller
summary: Send a status message.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
statusMessage:
type: object
properties:
type:
type: string
enum: ["text", "image", "video", "audio"]
description: Type of the status message.
content:
type: string
description: The content of the status message.
backgroundColor:
type: string
description: The background color of the status message.
font:
type: integer
enum: [1, 2, 3, 4, 5]
description: The font of the status message.
allContacts:
type: boolean
description: Indicates whether to send the status message to all contacts.
statusJidList:
type: array
items:
type: string
description: The phone numbers of the users to whom the status message should be sent.
required:
- type
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: The name of the instance to which the status message should be sent.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/message/sendMedia/{instanceName}:
post:
tags:
- Send Message Controller
summary: Send a media message (image, video, document, audio) to a specified instance.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
number:
type: string
description: The recipient's phone number.
example: "1234567890"
mediaMessage:
type: object
properties:
mediatype:
type: string
enum: ["image", "document", "video", "audio"]
description: Type of the media content.
fileName:
type: string
description: Name of the media file (optional).
caption:
type: string
description: Caption to accompany the media.
media:
type: string
description: URL of the media content.
required:
- mediatype
- media
options:
type: object
properties:
delay:
type: integer
description: Delay time before sending the message.
presence:
type: string
enum: ["composing", "recording", "paused"]
description: Indicates the sender's action/status.
linkPreview:
type: boolean
description: Indicates whether to enable link preview.
quoted:
type: object
properties:
key:
type: object
properties:
remoteJid:
type: string
description: The ID of the recipient of the original message.
fromMe:
type: boolean
description: Indicates if the message was sent from the user.
id:
type: string
description: The ID of the original message.
message:
type: object
properties:
conversation:
type: string
description: The content of the quoted message.
mentions:
type: object
properties:
everyone:
type: boolean
description: Indicates whether to mention everyone.
mentioned:
type: array
items:
type: string
description: The phone numbers of the users to be mentioned.
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: The name of the instance to which the media message should be sent.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/message/sendWhatsAppAudio/{instanceName}:
post:
tags:
- Send Message Controller
summary: Send an audio message via WhatsApp to a specified instance.
description: This endpoint allows users to share an audio message.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
number:
type: string
description: The recipient's phone number.
example: "1234567890"
audioMessage:
type: object
properties:
audio:
type: string
description: URL of the audio file to be sent.
required:
- audio
options:
type: object
properties:
delay:
type: integer
description: Delay time before sending the message.
presence:
type: string
enum: ["composing", "recording", "paused"]
description: Indicates the sender's action/status.
linkPreview:
type: boolean
description: Indicates whether to enable link preview.
quoted:
type: object
properties:
key:
type: object
properties:
remoteJid:
type: string
description: The ID of the recipient of the original message.
fromMe:
type: boolean
description: Indicates if the message was sent from the user.
id:
type: string
description: The ID of the original message.
message:
type: object
properties:
conversation:
type: string
description: The content of the quoted message.
mentions:
type: object
properties:
everyone:
type: boolean
description: Indicates whether to mention everyone.
mentioned:
type: array
items:
type: string
description: The phone numbers of the users to be mentioned.
required:
- number
- audioMessage.audio
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: The name of the instance to which the audio should be sent.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/message/sendSticker/{instanceName}:
post:
tags:
- Send Message Controller
summary: Send an sticker to a specified instance.
description: This endpoint allows users to share an sticker message.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
number:
type: string
description: The recipient's phone number.
example: "1234567890"
stickerMessage:
type: object
properties:
image:
type: string
description: URL of the audio file to be sent.
required:
- image
options:
type: object
properties:
delay:
type: integer
description: Delay time before sending the message.
presence:
type: string
enum: ["composing", "recording", "paused"]
description: Indicates the sender's action/status.
required:
- number
- audioMessage.audio
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: The name of the instance to which the audio should be sent.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/message/sendLocation/{instanceName}:
post:
tags:
- Send Message Controller
summary: Send a location to a specified instance.
description: This endpoint allows users to share a location message.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
number:
type: string
description: The recipient's phone number.
example: "1234567890"
locationMessage:
type: object
properties:
name:
type: string
description: Name or title of the location.
address:
type: string
description: Detailed address of the location.
latitude:
type: number
description: Latitude of the location.
format: float
longitude:
type: number
description: Longitude of the location.
format: float
options:
type: object
properties:
delay:
type: integer
description: Delay time before sending the message.
presence:
type: string
enum: ["composing", "recording", "paused"]
description: Indicates the sender's action/status.
linkPreview:
type: boolean
description: Indicates whether to enable link preview.
quoted:
type: object
properties:
key:
type: object
properties:
remoteJid:
type: string
description: The ID of the recipient of the original message.
fromMe:
type: boolean
description: Indicates if the message was sent from the user.
id:
type: string
description: The ID of the original message.
message:
type: object
properties:
conversation:
type: string
description: The content of the quoted message.
mentions:
type: object
properties:
everyone:
type: boolean
description: Indicates whether to mention everyone.
mentioned:
type: array
items:
type: string
description: The phone numbers of the users to be mentioned.
required:
- number
- locationMessage.latitude
- locationMessage.longitude
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: The name of the instance to which the location should be sent.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/message/sendContact/{instanceName}:
post:
tags:
- Send Message Controller
summary: Send contact details to a specified instance.
description: This endpoint allows users to share one or multiple contact details.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
number:
type: string
description: The recipient's phone number.
example: "1234567890"
contactMessage:
type: array
items:
type: object
properties:
fullName:
type: string
description: Full name of the contact.
wuid:
type: string
description: Unique identifier for the contact.
phoneNumber:
type: string
description: Phone number of the contact.
organization:
type: string
description: Organization of the contact.
email:
type: string
description: Email address of the contact.
url:
type: string
description: Url of the contact.
required:
- fullName
- wuid
- phoneNumber
options:
type: object
properties:
delay:
type: integer
description: Delay time before sending the message.
presence:
type: string
enum: ["composing", "recording", "paused"]
description: Indicates the sender's action/status.
linkPreview:
type: boolean
description: Indicates whether to enable link preview.
quoted:
type: object
properties:
key:
type: object
properties:
remoteJid:
type: string
description: The ID of the recipient of the original message.
fromMe:
type: boolean
description: Indicates if the message was sent from the user.
id:
type: string
description: The ID of the original message.
message:
type: object
properties:
conversation:
type: string
description: The content of the quoted message.
mentions:
type: object
properties:
everyone:
type: boolean
description: Indicates whether to mention everyone.
mentioned:
type: array
items:
type: string
description: The phone numbers of the users to be mentioned.
required:
- number
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: The name of the instance to which the contacts should be sent.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/message/sendReaction/{instanceName}:
post:
tags:
- Send Message Controller
summary: Send a reaction to a specified instance.
description: This endpoint allows users to send a reaction to a message.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
reactionMessage:
type: object
properties:
key:
type: object
properties:
remoteJid:
type: string
description: The ID of the recipient of the original message.
fromMe:
type: boolean
description: Indicates if the reaction was sent from the user.
id:
type: string
description: The ID of the original message.
reaction:
type: string
maxLength: 1
description: Reaction character (e.g., emoji).
required:
- key.remoteJid
- key.fromMe
- key.id
- reaction
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: The name of the instance to which the reaction should be sent.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/message/sendPoll/{instanceName}:
post:
tags:
- Send Message Controller
summary: Send a poll to a specified instance.
description: This endpoint allows users to send a poll to a chat.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
number:
type: string
description: The recipient's phone number.
example: "1234567890"
pollMessage:
type: object
properties:
name:
type: string
description: Name or title of the poll.
selectableCount:
type: integer
description: Number of selectable options.
values:
type: array
items:
type: string
description: The options of the poll.
options:
type: object
properties:
delay:
type: integer
description: Delay time before sending the message.
presence:
type: string
enum: ["composing", "recording", "paused"]
description: Indicates the sender's action/status.
linkPreview:
type: boolean
description: Indicates whether to enable link preview.
quoted:
type: object
properties:
key:
type: object
properties:
remoteJid:
type: string
description: The ID of the recipient of the original message.
fromMe:
type: boolean
description: Indicates if the message was sent from the user.
id:
type: string
description: The ID of the original message.
message:
type: object
properties:
conversation:
type: string
description: The content of the quoted message.
mentions:
type: object
properties:
everyone:
type: boolean
description: Indicates whether to mention everyone.
mentioned:
type: array
items:
type: string
description: The phone numbers of the users to be mentioned.
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: The name of the instance to which the poll should be sent.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/message/sendList/{instanceName}:
post:
tags:
- Send Message Controller
summary: Send a list to a specified instance.
description: This endpoint allows users to send a list to a chat.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
number:
type: string
options:
type: object
properties:
delay:
type: integer
presence:
type: string
listMessage:
type: object
properties:
title:
type: string
description:
type: string
footerText:
type: string
nullable: true
buttonText:
type: string
sections:
type: array
items:
type: object
properties:
title:
type: string
rows:
type: array
items:
type: object
properties:
title:
type: string
description:
type: string
rowId:
type: string
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: The name of the instance to which the poll should be sent.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chat/whatsappNumbers/{instanceName}:
post:
tags:
- Chat Controller
summary: Provide a list of WhatsApp numbers associated with a given instance.
description: This endpoint returns information on the WhatsApp numbers associated with the specified instance.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
numbers:
type: array
items:
type: string
description: WhatsApp phone number.
example:
- "1234567890"
required:
- numbers
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: The name of the instance to which the reaction should be sent.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chat/markMessageAsRead/{instanceName}:
put:
tags:
- Chat Controller
summary: Mark specific messages as read for a given instance.
description: This endpoint allows users to mark messages as read for a particular instance.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
read_messages:
type: array
items:
type: object
properties:
remoteJid:
type: string
description: ID of the recipient of the message.
fromMe:
type: boolean
description: Indicates if the message was sent from the user.
id:
type: string
description: Unique ID of the message.
required:
- remoteJid
- fromMe
- id
required:
- read_messages
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: The name of the instance to which the reaction should be sent.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chat/archiveChat/{instanceName}:
put:
tags:
- Chat Controller
summary: Archive specific chats for a given instance.
description: This endpoint allows users to archive specific chats based on the last message.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
lastMessage:
type: object
properties:
key:
type: object
properties:
remoteJid:
type: string
description: ID of the recipient of the last message.
fromMe:
type: boolean
description: Indicates if the last message was sent from the user.
id:
type: string
description: Unique ID of the last message.
required:
- remoteJid
- fromMe
- id
archive:
type: boolean
description: Indicates whether to archive the chat.
example: true
required:
- lastMessage
- archive
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: The name of the instance to which the reaction should be sent.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chat/deleteMessageForEveryone/{instanceName}:
delete:
tags:
- Chat Controller
summary: Delete a message for everyone in a given instance.
description: This endpoint allows users to delete a message for everyone in the chat.
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: The name of the instance to which the reaction should be sent.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chat/fetchProfilePictureUrl/{instanceName}:
post:
tags:
- Chat Controller
summary: Retrieve the profile picture URL of a specific number.
description: This endpoint fetches the profile picture URL associated with the given phone number for the specified instance.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
number:
type: string
description: WhatsApp phone number whose profile picture URL needs to be fetched.
required:
- number
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: The name of the instance to which the reaction should be sent.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chat/findContacts/{instanceName}:
post:
tags:
- Chat Controller
summary: Retrieve contact details using an ID.
description: This endpoint retrieves contact details associated with the given ID for the specified instance.
requestBody:
content:
application/json:
schema:
type: object
properties:
where:
type: object
properties:
id:
type: string
description: Unique ID of the contact to be fetched.
required:
- id
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: The name of the instance to which the reaction should be sent.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chat/getBase64FromMediaMessage/{instanceName}:
post:
tags:
- Chat Controller
summary: Convert media message content to Base64.
description: This endpoint retrieves the Base64 representation of the content of a media message for the specified instance.
requestBody:
content:
application/json:
schema:
type: object
properties:
message:
type: object
properties:
key:
type: object
properties:
id: string
description: Unique ID of the message.
convertToMp4:
type: boolean
description: Indicates whether to convert the media to MP4 format.
example: true
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: The name of the instance to which the reaction should be sent.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chat/findMessages/{instanceName}:
post:
tags:
- Chat Controller
summary: Search for messages based on specific criteria.
description: This endpoint retrieves messages that match the provided criteria for the specified instance.
requestBody:
content:
application/json:
schema:
type: object
properties:
where:
type: object
properties:
key:
type: object
properties:
remoteJid:
type: string
description: ID of the recipient of the message.
fromMe:
type: boolean
description: Indicates if the message was sent from the user.
id:
type: string
description: Unique ID of the message.
required:
- remoteJid
- fromMe
- id
message:
type: object
required:
- key
limit:
type: integer
description: Maximum number of messages to retrieve.
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: The name of the instance to which the reaction should be sent.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chat/findStatusMessage/{instanceName}:
post:
tags:
- Chat Controller
summary: Search for status messages using an ID.
description: This endpoint retrieves status messages associated with the given ID for the specified instance.
requestBody:
content:
application/json:
schema:
type: object
properties:
where:
type: object
properties:
id:
type: string
description: Unique ID of the status message to be fetched.
required:
- id
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: The name of the instance to which the reaction should be sent.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chat/findChats/{instanceName}:
get:
tags:
- Chat Controller
summary: List all chats associated with a specific instance.
description: This endpoint retrieves a list of all chats associated with the specified instance.
parameters:
- name: instanceName
in: path
required: true
schema:
type: string
description: The name of the instance to which the reaction should be sent.
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/group/create/{instanceName}:
post:
tags:
- Group Controller
summary: Create a new WhatsApp group.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
subject:
type: string
description: "- required - The name of the group."
description:
type: string
description: "- optional - A brief description or summary of the group."
participants:
type: array
items:
type: string
description: "- required - List of participant phone numbers."
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/group/updateGroupPicture/{instanceName}:
put:
tags:
- Group Controller
summary: Update the group's display picture.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
image:
type: string
description: "- required - URL of the new group picture."
parameters:
- name: groupJid
in: query
schema:
type: string
description: "- required - The unique identifier of the group."
example: "120363046555718472@g.us"
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/group/updateGroupSubject/{instanceName}:
put:
tags:
- Group Controller
summary: Update the group's display picture.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
subject:
type: string
description: "- required - The new name of the group."
parameters:
- name: groupJid
in: query
schema:
type: string
description: "- required - The unique identifier of the group."
example: "120363046555718472@g.us"
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/group/updateGroupDescription/{instanceName}:
put:
tags:
- Group Controller
summary: Update the group's display picture.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
description:
type: string
description: "- required - The new description of the group."
parameters:
- name: groupJid
in: query
schema:
type: string
description: "- required - The unique identifier of the group."
example: "120363046555718472@g.us"
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/group/inviteCode/{instanceName}:
get:
tags:
- Group Controller
summary: Update the group's display picture.
parameters:
- name: groupJid
in: query
schema:
type: string
description: "- required - The unique identifier of the group."
example: "120363046555718472@g.us"
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/group/revokeInviteCode/{instanceName}:
put:
tags:
- Group Controller
summary: Update the group's display picture.
parameters:
- name: groupJid
in: query
schema:
type: string
description: "- required - The unique identifier of the group."
example: "120363046555718472@g.us"
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/group/sendInvite/{instanceName}:
post:
tags:
- Group Controller
summary: Update the group's display picture.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
groupJid:
type: string
description: "The unique identifier of the group."
description:
type: string
description: "The new description of the group."
numbers:
type: array
description: "List of participant phone numbers to be invited."
items:
type: string
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/group/inviteInfo/{instanceName}:
get:
tags:
- Group Controller
summary: Retrieve details about a specific group.
parameters:
- name: inviteCode
in: query
schema:
type: string
description: "- required - The invite code of the group."
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/group/findGroupInfos/{instanceName}:
get:
tags:
- Group Controller
summary: Retrieve details about a specific group.
parameters:
- name: groupJid
in: query
schema:
type: string
description: "- required - The unique identifier of the group."
example: "120363046555718472@g.us"
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/group/fetchAllGroups/{instanceName}:
get:
tags:
- Group Controller
summary: Retrieve details about a specific group.
parameters:
- name: getParticipants
in: query
schema:
type: boolean
description: "- required - Indicates whether to retrieve the participants of the group."
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/group/participants/{instanceName}:
get:
tags:
- Group Controller
summary: Retrieve a list of participants in a specific group.
parameters:
- name: groupJid
in: query
schema:
type: string
description: "- required - The unique identifier of the group."
example: "120363046555718472@g.us"
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/group/updateParticipant/{instanceName}:
put:
tags:
- Group Controller
summary: Update the status or role of a participant in the group.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
action:
type: string
enum: ["add", "remove", "promote", "demote"]
description: "- required - The action to be taken on the participant."
participants:
type: array
items:
type: string
description: "- required - List of participant phone numbers to be updated."
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/group/updateSetting/{instanceName}:
put:
tags:
- Group Controller
summary: Update the status or role of a participant in the group.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
action:
type: string
enum:
["announcement", "not_announcement", "locked", "unlocked"]
description: "- required - The action to be taken on the participant."
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/group/toggleEphemeral/{instanceName}:
put:
tags:
- Group Controller
summary: Update the status or role of a participant in the group.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
expiration:
type: number
description: "- required - The action to be taken on the participant."
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/group/leaveGroup/{instanceName}:
delete:
tags:
- Group Controller
summary: Exit from the specified WhatsApp group.
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/instance/refreshToken/:
put:
tags:
- JWT
summary: Refresh an expired JWT token.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
oldToken:
type: string
description: "- required - The expired JWT token."
responses:
"200":
description: Successful response
content:
application/json: {}
/webhook/set/{instanceName}:
post:
tags:
- Webhook
summary: Set up or modify the webhook for an instance.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
url:
type: string
format: uri
description: "The endpoint URL where the webhook data will be sent."
webhook_by_events:
type: boolean
description: "Indicates whether to send the webhook data by events."
webhook_base64:
type: boolean
description: "Indicates whether to send the webhook data in Base64 format."
events:
type: array
enum:
[
"APPLICATION_STARTUP",
"QRCODE_UPDATED",
"MESSAGES_SET",
"MESSAGES_UPSERT",
"MESSAGES_UPDATE",
"MESSAGES_DELETE",
"SEND_MESSAGE",
"CONTACTS_SET",
"CONTACTS_UPSERT",
"CONTACTS_UPDATE",
"PRESENCE_UPDATE",
"CHATS_SET",
"CHATS_UPSERT",
"CHATS_UPDATE",
"CHATS_DELETE",
"GROUPS_UPSERT",
"GROUP_UPDATE",
"GROUP_PARTICIPANTS_UPDATE",
"CONNECTION_UPDATE",
"LABELS_EDIT",
"LABELS_ASSOCIATION",
"CALL",
"NEW_JWT_TOKEN",
]
items:
type: string
description: "List of events to be sent to the webhook."
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/webhook/find/{instanceName}:
get:
tags:
- Webhook
summary: Retrieve the webhook settings for a specific instance.
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/websocket/set/{instanceName}:
post:
tags:
- Websocket
summary: Set up or modify the Websocket for an instance.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
enabled:
type: boolean
description: "Indicates whether to enable the websocket."
events:
type: array
enum:
[
"APPLICATION_STARTUP",
"QRCODE_UPDATED",
"MESSAGES_SET",
"MESSAGES_UPSERT",
"MESSAGES_UPDATE",
"MESSAGES_DELETE",
"SEND_MESSAGE",
"CONTACTS_SET",
"CONTACTS_UPSERT",
"CONTACTS_UPDATE",
"PRESENCE_UPDATE",
"CHATS_SET",
"CHATS_UPSERT",
"CHATS_UPDATE",
"CHATS_DELETE",
"GROUPS_UPSERT",
"GROUP_UPDATE",
"GROUP_PARTICIPANTS_UPDATE",
"CONNECTION_UPDATE",
"LABELS_EDIT",
"LABELS_ASSOCIATION",
"CALL",
"NEW_JWT_TOKEN",
]
items:
type: string
description: "List of events to be sent to the websocket."
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/websocket/find/{instanceName}:
get:
tags:
- Websocket
summary: Retrieve the websocket settings for a specific instance.
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/rabbitmq/set/{instanceName}:
post:
tags:
- RabbitMQ
summary: Set up or modify the RabbitMQ for an instance.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
enabled:
type: boolean
description: "Indicates whether to enable the RabbitMQ."
events:
type: array
enum:
[
"APPLICATION_STARTUP",
"QRCODE_UPDATED",
"MESSAGES_SET",
"MESSAGES_UPSERT",
"MESSAGES_UPDATE",
"MESSAGES_DELETE",
"SEND_MESSAGE",
"CONTACTS_SET",
"CONTACTS_UPSERT",
"CONTACTS_UPDATE",
"PRESENCE_UPDATE",
"CHATS_SET",
"CHATS_UPSERT",
"CHATS_UPDATE",
"CHATS_DELETE",
"GROUPS_UPSERT",
"GROUP_UPDATE",
"GROUP_PARTICIPANTS_UPDATE",
"CONNECTION_UPDATE",
"LABELS_EDIT",
"LABELS_ASSOCIATION",
"CALL",
"NEW_JWT_TOKEN",
]
items:
type: string
description: "List of events to be sent to the RabbitMQ."
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/rabbitmq/find/{instanceName}:
get:
tags:
- RabbitMQ
summary: Retrieve the RabbitMQ settings for a specific instance.
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/label/findLabels/{instanceName}:
get:
tags:
- Label Controller
summary: List all labels for an instance.
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json:
schema:
type: array
items:
type: object
properties:
color:
type: integer
name:
type: string
id:
type: string
predefinedId:
type: string
required:
- color
- name
- id
/label/handleLabel/{instanceName}:
put:
tags:
- Label Controller
summary: Change the label (add or remove) for an specific chat.
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
requestBody:
content:
application/json:
schema:
type: object
properties:
number:
type: string
labelId:
type: string
action:
type: string
enum:
- add
- remove
required:
- number
- labelId
- action
example:
number: '553499999999'
labelId: '1'
action: add
responses:
"200":
description: Successful response
content:
application/json:
schema:
type: object
properties:
numberJid:
type: string
labelId:
type: string
remove:
type: boolean
add:
type: boolean
required:
- numberJid
- labelId
/settings/set/{instanceName}:
post:
tags:
- Settings
summary: Set up or modify the Settings for an instance.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
reject_call:
type: boolean
description: "Indicates whether to reject incoming calls."
msg_call:
type: string
description: "Message to be sent when rejecting a call."
groups_ignore:
type: boolean
description: "Indicates whether to ignore group messages."
always_online:
type: boolean
description: "Indicates whether to keep the instance always online."
read_messages:
type: boolean
description: "Indicates whether to mark messages as read."
read_status:
type: boolean
description: "Indicates whether to mark status messages as read."
sync_full_history:
type: boolean
description: "Indicates whether to request a full history messages sync on connect."
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/settings/find/{instanceName}:
get:
tags:
- Settings
summary: Retrieve the Settings for a specific instance.
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chatwoot/set/{instanceName}:
post:
tags:
- Chatwoot
summary: Set up or modify the Chatwoot for an instance.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
enabled:
type: boolean
description: "Indicates whether to enable the Chatwoot integration."
account_id:
type: string
description: "The Chatwoot account ID."
token:
type: string
description: "The Chatwoot token."
url:
type: string
description: "The Chatwoot URL."
sign_msg:
type: boolean
description: "Indicates whether to sign messages."
reopen_conversation:
type: boolean
description: "Indicates whether to reopen conversations."
conversation_pending:
type: boolean
description: "Indicates whether to mark conversations as pending."
merge_brazil_contacts:
type: boolean
description: "Indicates whether to merge Brazil numbers in case of numbers with and without ninth digit."
import_contacts:
type: boolean
description: "Indicates whether to import contacts from phone to Chatwoot when connecting."
import_messages:
type: boolean
description: "Indicates whether to import messages from phone to Chatwoot when connecting."
days_limit_import_messages:
type: number
description: "Indicates number of days to limit messages imported to Chatwoot."
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chatwoot/find/{instanceName}:
get:
tags:
- Chatwoot
summary: Retrieve the Chatwoot for a specific instance.
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/typebot/set/{instanceName}:
post:
tags:
- Typebot
summary: Set up or modify the Typebot for an instance.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
enabled:
type: boolean
description: "Indicates whether to enable the Typebot integration."
url:
type: string
description: "The Chatwoot URL."
typebot:
type: string
description: "The Typebot Name."
expire:
type: number
description: "The Typebot Expire."
keyword_finish:
type: string
description: "The Typebot Keyword Finish."
delay_message:
type: number
description: "The Typebot Delay Message."
unknown_message:
type: string
description: "The Typebot Unknown Message."
listening_from_me:
type: boolean
description: "Indicates whether to listening from me."
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/typebot/start/{instanceName}:
post:
tags:
- Typebot
summary: Start the Typebot for an instance.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
url:
type: string
description: "The Typebot URL."
typebot:
type: string
description: "The Typebot Name."
remoteJid:
type: string
description: "The Typebot RemoteJid."
startSession:
type: boolean
description: "Indicates whether to start session."
variables:
type: array
description: "List of variables."
items:
type: object
properties:
name:
type: string
description: "The variable name."
value:
type: string
description: "The variable value."
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/typebot/find/{instanceName}:
get:
tags:
- Typebot
summary: Retrieve the Typebot for a specific instance.
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/typebot/changeStatus/{instanceName}:
post:
tags:
- Typebot
summary: Change the status of the Typebot for an instance.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
remoteJid:
type: string
description: "The Typebot RemoteJid."
status:
type: string
description: "The Typebot Status."
enum: ["opened", "paused", "closed"]
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/proxy/set/{instanceName}:
post:
tags:
- Proxy
summary: Set up or modify the Proxy for an instance.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
enabled:
type: boolean
description: "Indicates whether to enable the Proxy integration."
proxy:
type: string
description: "The Proxy URI."
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/proxy/find/{instanceName}:
get:
tags:
- Proxy
summary: Retrieve the Proxy for a specific instance.
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chamaai/set/{instanceName}:
post:
tags:
- Chama AI
summary: Set up or modify the Chama AI for an instance.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
enabled:
type: boolean
description: "Indicates whether to enable the Chamai AI integration."
url:
type: string
description: "The Chamai AI URL."
token:
type: string
description: "The Chamai AI Token."
waNumber:
type: string
description: "The Chamai AI WhatsApp Number."
answerByAudio:
type: boolean
description: "Indicates whether to answer by audio."
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chamaai/find/{instanceName}:
get:
tags:
- Chama AI
summary: Retrieve the Chama AI for a specific instance.
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chat/fetchBusinessProfile/{instanceName}:
post:
tags:
- Profile Settings
summary: Fetch the business profile of a specific contact.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
number:
type: string
description: "- required - The phone number of the contact."
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chat/fetchProfile/{instanceName}:
post:
tags:
- Profile Settings
summary: Fetch the profile of a specific contact.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
number:
type: string
description: "- required - The phone number of the contact."
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chat/updateProfileName/{instanceName}:
post:
tags:
- Profile Settings
summary: Update the name of a specific contact.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: "- required - The new name of the contact."
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chat/updateProfileStatus/{instanceName}:
post:
tags:
- Profile Settings
summary: Update the status of a specific contact.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
status:
type: string
description: "- required - The new status of the contact."
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chat/updateProfilePicture/{instanceName}:
put:
tags:
- Profile Settings
summary: Update the profile picture of a specific contact.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
picture:
type: string
description: "- required - The new profile picture of the contact."
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chat/removeProfilePicture/{instanceName}:
delete:
tags:
- Profile Settings
summary: Remove the profile picture of a specific contact.
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chat/fetchPrivacySettings/{instanceName}:
get:
tags:
- Profile Settings
summary: Fetch the privacy settings of a specific contact.
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}
/chat/updatePrivacySettings/{instanceName}:
put:
tags:
- Profile Settings
summary: Update the privacy settings of a specific contact.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
privacySettings:
type: object
description: "- required - The new privacy settings of the contact."
properties:
readreceipts:
type: string
enum: ["all", "none"]
description: "- required - The new read receipts privacy setting of the contact."
profile:
type: string
enum: ["all", "contacts", "contact_blacklist", "none"]
description: "- required - The new profile privacy setting of the contact."
status:
type: string
enum: ["all", "contacts", "contact_blacklist", "none"]
description: "- required - The new status privacy setting of the contact."
online:
type: string
enum: ["all", "match_last_seen"]
description: "- required - The new online privacy setting of the contact."
last:
type: string
enum: ["all", "contacts", "contact_blacklist", "none"]
description: "- required - The new last seen privacy setting of the contact."
groupadd:
type: string
enum: ["all", "contacts", "contact_blacklist", "none"]
description: "- required - The new group add privacy setting of the contact."
parameters:
- name: instanceName
in: path
schema:
type: string
required: true
description: "- required"
example: "evolution"
responses:
"200":
description: Successful response
content:
application/json: {}