> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wppfy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Criar/Editar função para integração com APIs externas

> # Configuração de Funções de API para Agentes IA

Documentação para criar/editar funções utilizadas pelos agentes de IA para integração com APIs externas. Inclui validação automática e controle de ativação.

## 1. Estrutura Base da Função

### Campos Principais
```json
{
  "name": "nomeDaFuncao",
  "description": "Descrição detalhada",
  "isActive": true,
  "method": "POST",
  "endpoint": "https://api.exemplo.com/recurso",
  "headers": {},
  "body": {},
  "parameters": []
}
```

### Detalhamento dos Campos

#### `name`
- Identificador único e descritivo
- Sem espaços ou caracteres especiais
- Ex: "createProduct", "updateUserStatus"

#### `description`
- Propósito e funcionamento da função
- Inclua casos de uso e resultados esperados
- Ex: "Cria produto no catálogo com nome, preço e categoria"

#### `isActive`
- Controla disponibilidade da função
- Desativa automaticamente se houver erros
- Default: false

#### `method`
- GET: buscar dados
- POST: criar recurso
- PUT: atualizar completo
- PATCH: atualização parcial
- DELETE: remover recurso

#### `endpoint`
- URL completa da API
- Aceita placeholders: {{variavel}}
- Exemplos:
  ```
  https://api.exemplo.com/produtos
  https://api.exemplo.com/usuarios/{{userId}}
  https://api.exemplo.com/busca?q={{query}}&limit={{limit}}
  ```

#### `headers`
```json
{
  "Authorization": "Bearer {{apiKey}}",
  "Content-Type": "application/json",
  "Accept": "application/json"
}
```

#### `body` (POST/PUT/PATCH)
```json
{
  "name": "{{productName}}",
  "price": "{{price}}",
  "metadata": {
    "tags": "{{tags}}"
  }
}
```

## 2. Configuração de Parâmetros

### Estrutura do Parâmetro
```json
{
  "name": "nomeParametro",
  "type": "string",
  "description": "Descrição do uso",
  "required": true,
  "enum": "valor1,valor2,valor3",
  "minimum": 0,
  "maximum": 100
}
```

### Tipos de Parâmetros

#### String
```json
{
  "name": "status",
  "type": "string",
  "description": "Status do pedido",
  "required": true,
  "enum": "pending,processing,completed"
}
```

#### Número
```json
{
  "name": "price",
  "type": "number",
  "description": "Preço em reais",
  "required": true,
  "minimum": 0.01,
  "maximum": 99999.99
}
```

#### Inteiro
```json
{
  "name": "quantity",
  "type": "integer",
  "description": "Quantidade",
  "minimum": 0,
  "maximum": 1000
}
```

#### Boolean
```json
{
  "name": "active",
  "type": "boolean",
  "description": "Status de ativação"
}
```

## 3. Sistema de Validação

### Validações Automáticas
1. JSON
  - Headers e body devem ser válidos
  - Erros desativam a função

2. Placeholders ({{variavel}})
  - Case-sensitive
  - Devem ter parâmetro correspondente

3. Parâmetros
  - Nomes únicos
  - Tipos corretos
  - Limites numéricos válidos
  - Enums sem valores vazios

### Erros e Avisos
- Função desativa se houver:
  - JSON inválido
  - Parâmetros não documentados
  - Violações de tipo
- Erros aparecem em `undocumentedParameters`

## 4. Exemplo Completo

```json
{
  "name": "createProduct",
  "description": "Criar novo produto no catálogo",
  "isActive": true,
  "method": "POST",
  "endpoint": "https://api.store.com/v1/products",
  "headers": {
    "Authorization": "Bearer {{apiKey}}",
    "Content-Type": "application/json"
  },
  "body": {
    "name": "{{productName}}",
    "price": "{{price}}",
    "category": "{{category}}"
  },
  "parameters": [
    {
      "name": "apiKey",
      "type": "string",
      "description": "Chave de API",
      "required": true
    },
    {
      "name": "productName",
      "type": "string",
      "description": "Nome do produto",
      "required": true
    },
    {
      "name": "price",
      "type": "number",
      "description": "Preço em reais",
      "required": true,
      "minimum": 0.01
    },
    {
      "name": "category",
      "type": "string",
      "description": "Categoria do produto",
      "required": true,
      "enum": "electronics,clothing,books"
    }
  ]
}
```




## OpenAPI

````yaml openapi-pt-BR.json post /function/edit
openapi: 3.1.0
info:
  title: WppFy -  WhatsApp API
  version: 1.0.0
  description: >
    API para gerenciamento de instâncias do WhatsApp e comunicações.


    ## ⚠️ Recomendação Importante: WhatsApp Business

    **É ALTAMENTE RECOMENDADO usar contas do WhatsApp Business** em vez do
    WhatsApp normal para integração, o WhatsApp normal pode apresentar
    inconsistências, desconexões, limitações e instabilidades durante o uso com
    a nossa API.


    ## Autenticação

    - Endpoints regulares requerem um header 'token' com o token da instância

    - Endpoints administrativos requerem um header 'admintoken'


    ## Estados da Instância

    As instâncias podem estar nos seguintes estados:

    - `disconnected`: Desconectado do WhatsApp

    - `connecting`: Em processo de conexão

    - `connected`: Conectado e autenticado com sucesso


    ## Limites de Uso

    - O servidor possui um limite máximo de instâncias conectadas

    - Quando o limite é atingido, novas tentativas receberão erro 429

    - Servidores gratuitos/demo podem ter restrições adicionais de tempo de vida
servers:
  - url: https://api.wppfy.com
security:
  - token: []
tags:
  - name: Admininstração
    description: |
      Endpoints para **administração geral** do sistema.
      Requerem um `admintoken` para autenticação.
  - name: Instancia
    description: |
      Operações relacionadas ao ciclo de vida de uma instância, como conectar,
      desconectar e verificar o status.
  - name: Perfil
    description: |
      Operações relacionadas ao perfil da instância do WhatsApp, como alterar
      nome e imagem de perfil.
  - name: Chamadas
    description: |
      Operações relacionadas a chamadas peloWhatsApp.
      Permite realizar e rejeitar chamadas programaticamente.
  - name: Webhooks e SSE
  - name: Enviar Mensagem
    description: >
      Endpoints para envio de mensagens do WhatsApp com diferentes tipos de
      conteúdo.


      ## Campos Opcionais Comuns


      Todos os endpoints de envio de mensagem suportam os seguintes campos
      opcionais:


      - **`delay`** *(integer)*: Atraso em milissegundos antes do envio
        - Durante o atraso aparecerá "Digitando..." ou "Gravando áudio..." dependendo do tipo
        - Exemplo: `5000` (5 segundos)

      - **`readchat`** *(boolean)*: Marcar chat como lido após envio
        - Remove o contador de mensagens não lidas do chat
        - Exemplo: `true`

      - **`readmessages`** *(boolean)*: Marcar últimas mensagens recebidas como
      lidas
        - Marca as últimas 10 mensagens **recebidas** (não enviadas por você) como lidas
        - Útil para confirmar leitura de mensagens pendentes antes de responder
        - Diferente do `readchat` que apenas remove contador de não lidas
        - Exemplo: `true`

      - **`replyid`** *(string)*: ID da mensagem para responder
        - Cria uma resposta vinculada à mensagem original
        - Suporte varia por tipo de mensagem
        - Exemplo: `"3A12345678901234567890123456789012"`

      - **`mentions`** *(string)*: Números para mencionar (apenas para envio em
      grupos)
        - Números específicos: `"5511999999999,5511888888888"`
        - Mencionar todos: `"all"`

      - **`forward`** *(boolean)*: Marca a mensagem como encaminhada no WhatsApp
        - Adiciona o indicador "Encaminhada" na mensagem
        - Exemplo: `true`

      - **`track_source`** *(string)*: Origem do rastreamento da mensagem
        - Identifica o sistema ou fonte que está enviando a mensagem
        - Útil para integrações (ex: "chatwoot", "crm", "chatbot")
        - Exemplo: `"chatwoot"`

      - **`track_id`** *(string)*: ID para rastreamento da mensagem
        - Identificador livre para acompanhar a mensagem em sistemas externos
        - Permite correlacionar mensagens entre diferentes plataformas
        - **Nota**: O sistema aceita valores duplicados - não há validação de unicidade
        - Use o mesmo ID em várias mensagens se fizer sentido para sua integração
        - Exemplo: `"msg_123456789"`

      ### Envio para Grupos

      - **`number`** *(string)*: Para enviar mensagem para grupo, use o ID do
      grupo que termina com `@g.us`
        - Exemplo: `"120363012345678901@g.us"`
        - **Como obter o ID do grupo:**
          - Use o `chatid` do webhook recebido quando alguém envia mensagem no grupo
          - Use o endpoint `GET /group/list` para listar todos os grupos e seus IDs

      ## Placeholders Disponíveis


      Todos os endpoints de envio de mensagem suportam placeholders dinâmicos
      para personalização automática:


      ### Campos de Nome

      - **`{{name}}`**: Nome consolidado do chat, usando a primeira opção
      disponível:
        1. Nome do lead (`lead_name`)
        2. Nome completo do lead (`lead_fullName`)
        3. Nome do contato no WhatsApp (`wa_contactName`)
        4. Nome do perfil do WhatsApp (`wa_name`)

      - **`{{first_name}}`**: Primeira palavra válida do nome consolidado
      (mínimo 2 caracteres)


      ### Campos do WhatsApp

      - **`{{wa_name}}`**: Nome do perfil do WhatsApp

      - **`{{wa_contactName}}`**: Nome do contato como salvo no WhatsApp


      ### Campos do Lead

      - **`{{lead_name}}`**: Nome do lead

      - **`{{lead_fullName}}`**: Nome completo do lead

      - **`{{lead_personalid}}`**: ID pessoal (CPF, CNPJ, etc)

      - **`{{lead_email}}`**: Email do lead

      - **`{{lead_status}}`**: Status atual do lead

      - **`{{lead_notes}}`**: Anotações do lead

      - **`{{lead_assignedAttendant_id}}`**: ID do atendente designado


      ### Campos Personalizados

      Campos adicionados via custom fields são acessíveis usando
      `{{lead_field01}}` à `{{lead_field20}}` ou usar `{{nomedocampo}}` definido
      em `/instance/updateFieldsMap`.


      ### Exemplo de Uso

      ```

      Olá {{name}}! Vi que você trabalha na {{company}}.

      Seu email {{lead_email}} está correto?

      ```


      **💡 Dica**: Use `/chat/find` para buscar dados do chat e ver os campos
      disponíveis antes de enviar mensagens com placeholders.
  - name: Ações na mensagem e Buscar
  - name: Chats
  - name: Contatos
  - name: Bloqueios
  - name: Etiquetas
  - name: Grupos e Comunidades
  - name: Respostas Rápidas
    description: >
      Gerenciamento de respostas rápidas para agilizar o atendimento.


      **⚠️ Importante**: Este recurso tem serventia apenas se você utilizar um
      sistema frontend/interface

      personalizada para registrar e utilizar as respostas. A API apenas
      armazena as respostas, 

      mas não as aplica automaticamente.


      ### Como funciona:

      - **Criar**: Cadastre respostas pré-definidas com títulos e conteúdo

      - **Listar**: Recupere todas as respostas cadastradas para exibir na sua
      interface

      - **Usar**: Seu sistema frontend pode usar essas respostas para agilizar
      digitação


      ### Casos de uso:

      - Interfaces web personalizadas de atendimento

      - Apps mobile com sugestões de resposta

      - Sistemas CRM com templates de mensagem

      - Ferramentas de produtividade para atendentes


      **Não é um chatbot**: Para respostas automáticas, use os recursos de
      Chatbot.
  - name: CRM
    description: >
      Sistema completo de gestão de relacionamento com clientes integrado à API.


      **💾 Armazenamento interno**: Todos os dados dos leads ficam salvos
      diretamente na API,

      eliminando a necessidade de bancos de dados externos. Sua aplicação pode
      focar apenas

      na interface e lógica de negócio.


      ### Recursos disponíveis:

      - **📋 20+ campos personalizáveis**: Nome, telefone, email, empresa,
      observações, etc.

      - **🏷️ Sistema de etiquetas**: Organize e categorize seus contatos

      - **🔍 Busca avançada**: Filtre por qualquer campo ou etiqueta

      - **📊 Histórico completo**: Todas as interações ficam registradas
      automaticamente


      ### 🎯 Placeholders em mensagens:

      Use variáveis dinâmicas nas mensagens para personalização automática:


      ```

      Olá {{nome}}! Vi que você trabalha na {{empresa}}.

      Seu email {{email}} está correto?

      Observações: {{observacoes}}

      ```


      ### Fluxo típico:

      1. **Captura**: Leads chegam via WhatsApp ou formulários

      2. **Enriquecimento**: Adicione dados usando `/chat/editLead`

      3. **Segmentação**: Organize com etiquetas

      4. **Comunicação**: Envie mensagens personalizadas com placeholders

      5. **Acompanhamento**: Histórico fica salvo automaticamente


      **Ideal para**: Vendas, marketing, atendimento, qualificação de leads
  - name: Mensagem em massa
  - name: Chatbot Configurações
  - name: Chatbot Trigger
  - name: Configuração do Agente de IA
  - name: Conhecimento dos Agentes
  - name: Funções API dos Agentes
  - name: Integração Chatwoot
    description: >
      **🚧 INTEGRAÇÃO BETA - Sistema de integração com Chatwoot para atendimento
      unificado**


      **⚠️ AVISO**: Esta integração está em fase BETA. Use por sua conta e
      risco. Recomendamos testes em ambiente não-produtivo antes do uso em
      produção.


      Esta categoria contém recursos para configurar e gerenciar a integração
      com o Chatwoot, uma plataforma de atendimento ao cliente open-source. A
      integração permite centralizar conversas do WhatsApp no Chatwoot.


      ### Recursos disponíveis:

      - 🔧 **Configuração Completa**: Configure URL, tokens e credenciais do
      Chatwoot

      - 📬 **Sincronização Bidirecional**: Mensagens novas entre WhatsApp e
      Chatwoot são sincronizadas automaticamente

      - 📱 **Gerenciamento de Contatos**: Sincronização automática de nomes e
      telefones

      - 🔄 **Atualização LID→PN**: Migração automática de Local ID para Phone
      Number

      - 🏷️ **Nomes Inteligentes**: Sistema de nomes com til (~) para
      atualização automática

      - 🚫 **Separação de Grupos**: Opção para ignorar grupos na sincronização

      - 👤 **Assinatura de Mensagens**: Identificação do agente nas mensagens
      enviadas

      - 🔗 **Webhook Automático**: URL gerada automaticamente para configurar no
      Chatwoot


      ### 🏷️ Sistema de Nomes Inteligentes:

      - **Nomes com til (~)**: Atualizados automaticamente quando contato
      modifica nome no WhatsApp

      - **Nomes específicos**: Para nome fixo, remover til (~) do nome no
      Chatwoot

      - **Exemplo**: "~João Silva" = automático, "João Silva" = fixo

      - **Migração LID→PN**: Sem duplicação de conversas durante a transição

      - **Respostas nativas**: Aparecem diretamente no Chatwoot sem marcações
      externas


      ### ⚠️ Limitações conhecidas:

      - **Sincronização de histórico**: Não implementada - apenas mensagens
      novas são sincronizadas


      ### Casos de uso:

      - Atendimento centralizado no Chatwoot

      - Equipes de suporte com múltiplos agentes

      - Integração com CRM via Chatwoot

      - Centralização de canais de comunicação

      - Gestão automática de contatos e nomes


      **Ideal para**: Empresas com equipes de atendimento, call centers, suporte
      técnico (em ambiente de testes)


      **Requer**: Instância do Chatwoot configurada, tokens de API e ambiente de
      testes


      **🚧 Lembre-se**: Integração em BETA - funcionalidades podem mudar sem
      aviso prévio
paths:
  /function/edit:
    post:
      tags:
        - Funções API dos Agentes
      summary: Criar/Editar função para integração com APIs externas
      description: >
        # Configuração de Funções de API para Agentes IA


        Documentação para criar/editar funções utilizadas pelos agentes de IA
        para integração com APIs externas. Inclui validação automática e
        controle de ativação.


        ## 1. Estrutura Base da Função


        ### Campos Principais

        ```json

        {
          "name": "nomeDaFuncao",
          "description": "Descrição detalhada",
          "isActive": true,
          "method": "POST",
          "endpoint": "https://api.exemplo.com/recurso",
          "headers": {},
          "body": {},
          "parameters": []
        }

        ```


        ### Detalhamento dos Campos


        #### `name`

        - Identificador único e descritivo

        - Sem espaços ou caracteres especiais

        - Ex: "createProduct", "updateUserStatus"


        #### `description`

        - Propósito e funcionamento da função

        - Inclua casos de uso e resultados esperados

        - Ex: "Cria produto no catálogo com nome, preço e categoria"


        #### `isActive`

        - Controla disponibilidade da função

        - Desativa automaticamente se houver erros

        - Default: false


        #### `method`

        - GET: buscar dados

        - POST: criar recurso

        - PUT: atualizar completo

        - PATCH: atualização parcial

        - DELETE: remover recurso


        #### `endpoint`

        - URL completa da API

        - Aceita placeholders: {{variavel}}

        - Exemplos:
          ```
          https://api.exemplo.com/produtos
          https://api.exemplo.com/usuarios/{{userId}}
          https://api.exemplo.com/busca?q={{query}}&limit={{limit}}
          ```

        #### `headers`

        ```json

        {
          "Authorization": "Bearer {{apiKey}}",
          "Content-Type": "application/json",
          "Accept": "application/json"
        }

        ```


        #### `body` (POST/PUT/PATCH)

        ```json

        {
          "name": "{{productName}}",
          "price": "{{price}}",
          "metadata": {
            "tags": "{{tags}}"
          }
        }

        ```


        ## 2. Configuração de Parâmetros


        ### Estrutura do Parâmetro

        ```json

        {
          "name": "nomeParametro",
          "type": "string",
          "description": "Descrição do uso",
          "required": true,
          "enum": "valor1,valor2,valor3",
          "minimum": 0,
          "maximum": 100
        }

        ```


        ### Tipos de Parâmetros


        #### String

        ```json

        {
          "name": "status",
          "type": "string",
          "description": "Status do pedido",
          "required": true,
          "enum": "pending,processing,completed"
        }

        ```


        #### Número

        ```json

        {
          "name": "price",
          "type": "number",
          "description": "Preço em reais",
          "required": true,
          "minimum": 0.01,
          "maximum": 99999.99
        }

        ```


        #### Inteiro

        ```json

        {
          "name": "quantity",
          "type": "integer",
          "description": "Quantidade",
          "minimum": 0,
          "maximum": 1000
        }

        ```


        #### Boolean

        ```json

        {
          "name": "active",
          "type": "boolean",
          "description": "Status de ativação"
        }

        ```


        ## 3. Sistema de Validação


        ### Validações Automáticas

        1. JSON
          - Headers e body devem ser válidos
          - Erros desativam a função

        2. Placeholders ({{variavel}})
          - Case-sensitive
          - Devem ter parâmetro correspondente

        3. Parâmetros
          - Nomes únicos
          - Tipos corretos
          - Limites numéricos válidos
          - Enums sem valores vazios

        ### Erros e Avisos

        - Função desativa se houver:
          - JSON inválido
          - Parâmetros não documentados
          - Violações de tipo
        - Erros aparecem em `undocumentedParameters`


        ## 4. Exemplo Completo


        ```json

        {
          "name": "createProduct",
          "description": "Criar novo produto no catálogo",
          "isActive": true,
          "method": "POST",
          "endpoint": "https://api.store.com/v1/products",
          "headers": {
            "Authorization": "Bearer {{apiKey}}",
            "Content-Type": "application/json"
          },
          "body": {
            "name": "{{productName}}",
            "price": "{{price}}",
            "category": "{{category}}"
          },
          "parameters": [
            {
              "name": "apiKey",
              "type": "string",
              "description": "Chave de API",
              "required": true
            },
            {
              "name": "productName",
              "type": "string",
              "description": "Nome do produto",
              "required": true
            },
            {
              "name": "price",
              "type": "number",
              "description": "Preço em reais",
              "required": true,
              "minimum": 0.01
            },
            {
              "name": "category",
              "type": "string",
              "description": "Categoria do produto",
              "required": true,
              "enum": "electronics,clothing,books"
            }
          ]
        }

        ```
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - id
                - delete
                - function
              properties:
                id:
                  type: string
                  description: >-
                    ID da função. Vazio para criar nova, preenchido para editar
                    existente.
                delete:
                  type: boolean
                  description: Se true, deleta a função especificada pelo ID.
                function:
                  type: object
                  required:
                    - name
                    - description
                    - method
                    - endpoint
                  properties:
                    name:
                      type: string
                      description: Nome da função
                      example: createProduct
                    isActive:
                      type: boolean
                      description: Status de ativação da função
                      default: false
                    description:
                      type: string
                      description: Descrição detalhada da função e seu propósito
                      example: Cria um novo produto no catálogo
                    method:
                      type: string
                      description: Método HTTP da requisição
                      enum:
                        - GET
                        - POST
                        - PUT
                        - DELETE
                        - PATCH
                      example: POST
                    endpoint:
                      type: string
                      description: URL do endpoint da API
                      example: https://api.example.com/products
                    headers:
                      type: object
                      description: >-
                        Cabeçalhos da requisição. Suporta placeholders no
                        formato {{variavel}}
                      example:
                        Authorization: Bearer {{apiKey}}
                        Content-Type: application/json
                    body:
                      type: object
                      description: >-
                        Corpo da requisição. Suporta placeholders no formato
                        {{variavel}}
                      example:
                        name: '{{productName}}'
                        price: '{{price}}'
                        category: '{{category}}'
                    parameters:
                      type: array
                      description: Lista de parâmetros aceitos pela função
                      items:
                        type: object
                        required:
                          - name
                          - type
                          - description
                        properties:
                          name:
                            type: string
                            description: Nome do parâmetro
                          type:
                            type: string
                            enum:
                              - string
                              - number
                              - integer
                              - boolean
                              - array
                              - object
                            description: Tipo do parâmetro
                          description:
                            type: string
                            description: Descrição do parâmetro
                          required:
                            type: boolean
                            description: Indica se o parâmetro é obrigatório
                          enum:
                            type: string
                            description: >-
                              Lista de valores permitidos para parâmetros do
                              tipo string, separados por vírgula
                          minimum:
                            type: number
                            description: Valor mínimo para parâmetros numéricos
                          maximum:
                            type: number
                            description: Valor máximo para parâmetros numéricos
                      example:
                        - name: apiKey
                          type: string
                          description: Chave de API para autenticação
                          required: true
                        - name: price
                          type: number
                          description: Preço do produto
                          minimum: 0.01
                          maximum: 999999.99
                          required: true
      responses:
        '200':
          description: Função atualizada com sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatbotAIFunction'
        '201':
          description: Nova função criada com sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatbotAIFunction'
        '400':
          description: Erro de validação nos dados fornecidos
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '404':
          description: Função não encontrada
        '500':
          description: Erro interno do servidor
components:
  schemas:
    ChatbotAIFunction:
      type: object
      properties:
        id:
          type: string
          description: ID único da função gerado automaticamente
        name:
          type: string
          description: Nome da função
        description:
          type: string
          description: Descrição da função
        active:
          type: boolean
          default: false
          description: Indica se a função está ativa
        method:
          type: string
          description: Método HTTP da requisição
        endpoint:
          type: string
          description: Endpoint da API
        headers:
          type: string
          nullable: true
          description: Cabeçalhos da requisição
        body:
          type: string
          nullable: true
          description: Corpo da requisição
        parameters:
          type: string
          nullable: true
          default: '[]'
          description: Parâmetros da função
        undocumentedParameters:
          type: string
          description: Parâmetros não documentados
        header_error:
          type: boolean
          default: false
          description: Indica erro de formatação nos cabeçalhos
        body_error:
          type: boolean
          default: false
          description: Indica erro de formatação no corpo
        owner:
          type: string
          description: Proprietário da função
        created:
          type: string
          format: date-time
          default: strftime('%Y-%m-%d %H:%M:%fZ')
          description: Data de criação
        updated:
          type: string
          format: date-time
          default: strftime('%Y-%m-%d %H:%M:%fZ')
          description: Data de atualização
      required:
        - name
        - description
        - method
        - endpoint
  securitySchemes:
    token:
      name: token
      type: apiKey
      in: header

````