
  # ┌──────────────────────────────────────────────────────────────────────────────┐
  # │ @author jrCleber                                                             │
  # │ @filename main.ts                                                            │
  # │ Developed by: Cleber Wilson                                                  │
  # │ Creation date: Aug 13, 2023                                                  │
  # │ Contact: contato@codechat.dev                                                │
  # ├──────────────────────────────────────────────────────────────────────────────┤
  # │ @copyright © Cleber Wilson 2022. All rights reserved.                        │
  # │ Licensed under the Apache License, Version 2.0                               │
  # │                                                                              │
  # │  @license "https://github.com/code-chat-br/whatsapp-api/blob/main/LICENSE"   │
  # │                                                                              │
  # │ You may not use this file except in compliance with the License.             │
  # │ You may obtain a copy of the License at                                      │
  # │                                                                              │
  # │    http://www.apache.org/licenses/LICENSE-2.0                                │
  # │                                                                              │
  # │ Unless required by applicable law or agreed to in writing, software          │
  # │ distributed under the License is distributed on an "AS IS" BASIS,            │
  # │ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.     │
  # │                                                                              │
  # │ See the License for the specific language governing permissions and          │
  # │ limitations under the License.                                               │
  # │                                                                              │
  # ├──────────────────────────────────────────────────────────────────────────────┤
  # │ @important                                                                   │
  # │ For any future changes to the code in this file, it is recommended to        │
  # │ contain, together with the modification, the information of the developer    │
  # │ who changed it and the date of modification.                                 │
  # └──────────────────────────────────────────────────────────────────────────────┘


openapi: 3.0.0
info:
  title: CodeChat - WhatsApp 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">

    [![Telegram Group](https://img.shields.io/badge/Group-Telegram-%2333C1FF)](https://t.me/codechatBR)
    [![Whatsapp Group](https://img.shields.io/badge/Group-WhatsApp-%2322BC18)](https://chat.whatsapp.com/HyO8X8K0bAo0bfaeW8bhY5)
    [![License](https://img.shields.io/badge/license-GPL--3.0-orange)](https://github.com/code-chat-br/whatsapp-api/blob/main/LICENSE)
    [![Support](https://img.shields.io/badge/Buy%20me-coffe-orange)](https://app.picpay.com/user/cleber.wilson.oliveira)

    </div>
      
    <div align="center"><img src="https://raw.githubusercontent.com/code-chat-br/whatsapp-api/main/public/images/cover.png"></div>

    <font size='3'>
      CodeChat is an advanced WhatsApp integration API that seamlessly merges the popularity of WhatsApp with modern business applications. With comprehensive features, the CodeChat API empowers businesses to expand their digital presence, reach customers more directly, and provide personalized and efficient support, all through the world's most widely used messaging platform.

      The CodeChat API opens doors to more effective and engaging business communication, offering a modern approach to customer support, direct marketing, and real-time interactions. By combining WhatsApp's popularity with the functionality of the CodeChat API, businesses can build stronger and more authentic relationships with their customers, generating lasting satisfaction and loyalty.
    </font>
  
    [![Run in Postman](https://run.pstmn.io/button.svg)](https://www.postman.com/codechat/workspace/codechat-whatsapp-api/api/fbe06c7b-7647-4c71-81ee-841f5b2e90d8?action=share&creator=14064846)
  version: 1.2.6
  contact:
    name: jrCleber
    email: cleber@codechat.dev
    url: https://www.apache.org/licenses/LICENSE-2.0
  license:
    name: Apache License - Version 2.0, January 2004
    url: https://www.exemplo.com/licenca
servers: []
components:
  securitySchemes:
    apikeyAuth:
      type: apiKey
      in: header
      name: apikey
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
security:
  - bearerAuth: []
tags:
  - name: Instance Controller
  - name: Instance Controller > Views
  - name: Send Message Controller
  - name: Chat Controller
  - name: Group Controller
  - name: JWT
  - name: Webhook
paths:
  /instance/qrcode/{instanceName}:
    get:
      tags:
        - Instance Controller > Views
      summary: QrCode
      parameters:
        - name: instanceName
          in: path
          description: Name of the instance for which the QR Code needs to be fetched.
          required: true
          schema:
            type: string
            example: 'codechat'
      responses:
        '200':
          description: Successful response
          content:
            application/html: {}
  /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).
              example:
                instanceName: 'exampleInstance'
      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: 'codechat'
      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
                    auth:
                      type: object
                      properties:
                        jwt:
                          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: 'codechat'
      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/reload/{instanceName}:
    get:
      tags:
        - Instance Controller
      summary: Instance Reload
      parameters:
        - name: instanceName
          in: path
          required: true
          schema:
            type: string
          description: Reload to your instance.
          example: 'codechat'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  instance:
                    type: string
                  state:
                    type: string
                  statusReason:
                    type: string
  /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: 'codechat'
      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: 'codechat'
      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: 'codechat'
      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.
              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: 'codechat'
      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.
      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: 'codechat'
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /message/sendMediaFile/{instanceName}:
    post:
      tags:
        - Send Message Controller
      summary: Send a media file (image, video, document, audio) directly to a specified instance.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                number:
                  type: string
                  description: The recipient's phone number.
                  example: '1234567890'
                caption:
                  type: string
                  description: Caption to accompany the media (optional).
                attachment:
                  type: string
                  format: binary
                  description: The media file to be sent.
                mediatype:
                  type: string
                  enum: ['image', 'document', 'video', 'audio']
                  description: Type of the media content.
                presence:
                  type: string
                  enum: ['composing', 'recording', 'paused']
                  description: Indicates the sender's action/status (optional).
                delay:
                  type: integer
                  description: Delay time before sending the message (optional).
              required:
                - number
                - attachment
                - mediatype
      parameters:
        - name: instanceName
          in: path
          required: true
          schema:
            type: string
          description: The name of the instance to which the media file should be sent.
          example: 'codechat'
      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.
              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: 'codechat'
      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.
                    required:
                      - fullName
                      - wuid
                      - phoneNumber
                options:
                  type: object
                  properties:
                    delay:
                      type: integer
                      description: Delay time before sending the contact.
                    presence:
                      type: string
                      enum: ['composing', 'recording', 'paused']
                      description: Indicates the sender's action/status.
              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: 'codechat'
      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: 'codechat'
      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 audio message.
              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: 'codechat'
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /message/sendWhatsAppAudioFile/{instanceName}:
    post:
      tags:
        - Send Message Controller
      summary: Upload and send a WhatsApp audio file to a specified instance.
      description: This endpoint allows users to upload and send an audio file via WhatsApp.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                number:
                  type: string
                  description: The recipient's phone number.
                  example: '1234567890'
                attachment:
                  type: string
                  description: Audio file to be sent.
                  format: binary
                delay:
                  type: integer
                  description: Delay time before sending the audio message.
                  example: 5
              required:
                - number
                - attachment
      parameters:
        - name: instanceName
          in: path
          required: true
          schema:
            type: string
          description: The name of the instance to which the reaction should be sent.
          example: 'codechat'
      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: 'codechat'
      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:
                readMessages:
                  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:
                - readMessages
      parameters:
        - name: instanceName
          in: path
          required: true
          schema:
            type: string
          description: The name of the instance to which the reaction should be sent.
          example: 'codechat'
      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: 'codechat'
      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: 'codechat'
      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: 'codechat'
      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: 'codechat'
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /chat/getBase64FromMediaMessage/{instanceName}:
    post:
      tags:
        - Chat Controller
      summary: Convert media message content to Base64.
      description: '**[Deprecated]** This endpoint retrieves the Base64 representation of the content of a media message for the specified instance.'
      deprecated: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                key:
                  type: object
                  properties:
                    id:
                      type: string
                      description: Unique ID of the media message to be converted.
                  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: 'codechat'
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /chat/retrieverMediaMessage/{instanceName}:
    post:
      tags:
        - Chat Controller
      summary: Retriever Media Message.
      description: This endpoint retrieves a media file from a given instance.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                key:
                  type: object
                  properties:
                    id:
                      type: string
                      description: Unique ID of the media message to be converted.
                  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: 'codechat'
      responses:
        '200':
          description: Successful response
          content:
            application/octet-stream: {}
  /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: 'codechat'
      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: 'codechat'
      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: 'codechat'
      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: 'codechat'
      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: 'codechat'
      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: 'codechat'
      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: 'codechat'
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /group/inviteCode/{instanceName}:
    get:
      tags:
        - Group Controller
      summary: Retrieve the group's invite link.
      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: 'codechat'
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
  /group/revokeInviteCode/{instanceName}:
    put:
      tags:
        - Group Controller
      summary: Invalidate the existing group invite link.
      requestBody:
        content: {}
      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: 'codechat'
      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: 'codechat'
      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: 'codechat'
      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:
                enabled:
                  type: boolean
                  description: 'Indicates whether the webhook is active.'
                url:
                  type: string
                  format: uri
                  description: 'The endpoint URL where the webhook data will be sent.'
      parameters:
        - name: instanceName
          in: path
          schema:
            type: string
          required: true
          description: '- required'
          example: 'codechat'
      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: 'codechat'
      responses:
        '200':
          description: Successful response
          content:
            application/json: {}
