O nó API permite que você se comunique com serviços externos a partir do seu fluxo de conversa. Você pode consultar dados, enviar informações, autenticar contra APIs e processar respostas — tudo sem escrever código.
Pense neste nó como um mensageiro: você diz a ele para onde ir (URL), o que carregar (body) e o que trazer de volta (resposta).
URL e método HTTP
Na parte superior do painel você configura os dois campos essenciais:
Método HTTP — define que tipo de operação você vai realizar:
| Método | Finalidade | Exemplo |
|---|
| GET | Recuperar dados | Consultar o saldo de um cliente |
| POST | Criar um recurso | Registrar um novo pedido |
| PUT | Substituir um recurso completo | Atualizar todos os dados de um perfil |
| PATCH | Atualização parcial | Alterar apenas o e-mail de um usuário |
| DELETE | Excluir um recurso | Cancelar uma assinatura |
URL — o endereço do serviço. Você pode injetar variáveis diretamente:
https://api.example.com/users/{{$user.id}}/orders/{{$memory.orderId}}
Se você colar uma URL que já contém parâmetros (como ?key=value), o nó os extrai automaticamente e os move para a aba Parâmetros.
Importar a partir de cURL
Se você tiver um comando cURL pronto (por exemplo, da documentação de uma API), pode colá-lo diretamente no campo URL. O nó interpreta automaticamente o método, cabeçalhos, body e autenticação do comando.
Abas de configuração
O painel tem 5 abas para configurar todos os aspectos da requisição:
Parâmetros
Adicione parâmetros de query string como pares chave-valor. Cada parâmetro tem uma caixa de seleção para ativar ou desativar sem excluí-lo.
user: {{$user.id}}
date: {{$context.date}}
Os parâmetros são automaticamente adicionados à URL no formato ?param1=value1¶m2=value2.
Autenticação
Dois métodos de autenticação disponíveis:
| Método | Configuração |
|---|
| Basic Auth | Nome de usuário e senha. Codificados automaticamente em base64 |
| Bearer Token | Token de acesso enviado no cabeçalho Authorization: Bearer <token> |
Ambos os métodos suportam variáveis nos seus campos, permitindo o uso de credenciais armazenadas dinamicamente.
As credenciais são mantidas no contexto durante a execução do fluxo. Você pode editá-las a partir do modal de credenciais se já estiverem armazenadas.
Cabeçalhos
Adicione cabeçalhos HTTP personalizados como pares chave-valor. Cada cabeçalho tem uma caixa de seleção para ativar ou desativar.
Content-Type: application/json
X-API-Key: {{$memory.apiKey}}
O cabeçalho Content-Type é atualizado automaticamente quando você altera o tipo de body.
Body
Para métodos que enviam dados (POST, PUT, PATCH), configure o body da requisição em diferentes formatos:
| Formato | Uso típico |
|---|
| JSON | O mais comum para APIs REST. Editor com validação em tempo real |
| XML | APIs SOAP ou serviços legados |
| Texto simples | Dados não estruturados |
| Multipart Form | Envio de arquivos junto com dados de texto |
| Form URL Encoded | Formulários web tradicionais |
O editor JSON valida a estrutura em tempo real e suporta variáveis dentro do conteúdo:
{
"user_id": "{{$user.id}}",
"email": "{{$memory.email}}",
"name": "{{$user.names}}"
}
Configurações
Configurações avançadas para controlar o comportamento da requisição:
Certificado SSL
Ativa a verificação SSL/TLS para conexões seguras. Inclui um campo de timeout em milissegundos (padrão 3000ms).
Certificados mTLS
Autenticação TLS mútua com o servidor. Esta opção só aparece se a sua empresa tiver pelo menos um certificado configurado.
- Quando mTLS está ativado, o certificado SSL é automaticamente desativado (são mutuamente exclusivos)
- Se existir um certificado primário, ele é automaticamente selecionado
- Você pode escolher qualquer certificado da lista disponível
Ver gerenciamento de certificados mTLS
Tentativas
Configure tentativas automáticas quando uma requisição falhar:
| Opção | Descrição |
|---|
| Condição de tentativa | Apenas erros de rede (padrão) ou sempre tentar novamente |
| Número de tentativas | Número de tentativas adicionais |
| Tipo de espera | Sem espera, exponencial ou personalizado (em milissegundos) |
| Redefinir timeout | Redefine o tempo de espera em cada tentativa |
Salvando a resposta
Ative o toggle “Salvar resposta” na parte superior e defina um nome de variável. A resposta completa da API será armazenada nessa variável.
Acessando a resposta sem manipulação
Use a variável diretamente em outros nós:
Manipulando a resposta em um nó de Código
Se você precisar extrair dados específicos do JSON:
let apiResponse = $context.getHttpResponse('apiResponse')
apiResponse = apiResponse.json()
let name = apiResponse.data.user.name
$memory.set('name', name)
A chave que você usa em $context.getHttpResponse('apiResponse') deve corresponder exatamente à que você especificou no campo “Salvar resposta”.
Resposta de teste
Após executar um teste a partir do painel, a resposta é exibida em uma seção expansível com:
- Código de status (por exemplo,
200 OK)
- Aba Body — Resposta formatada como JSON com botão de cópia
- Aba Headers — Cabeçalhos de resposta do servidor