Por Que HTTP Request?
O N8N tem +400 nodes nativos, mas nem toda API tem node dedicado. O HTTP Request permite conectar com qualquer servico que tenha uma API REST, GraphQL ou webhook.
APIs sem Node
Integre com servicos que nao tem node nativo no N8N
Funcoes Avancadas
Acesse endpoints que nodes nativos nao suportam
APIs Proprias
Conecte com backends e microservicos internos
Webhooks
Dispare webhooks em servicos externos
Metodos HTTP
Entenda quando usar cada metodo
Buscar dados
Ler recursos. Nao modifica nada. Parametros vao na URL.
Criar dados
Criar novo recurso. Dados vao no body.
Substituir dados
Substituir recurso completamente.
Atualizar parcial
Modificar apenas campos especificos.
Remover dados
Deletar recurso. Cuidado - geralmente irreversivel!
Tipos de Autenticacao
Como APIs verificam quem voce e
API Key
O mais comum. Uma chave secreta enviada em cada request.
// Via Header (mais comum):
Header Name: Authorization
Header Value: Bearer sk-xxxxxxxxxxxxx
// Ou:
Header Name: X-API-Key
Header Value: sua-api-key-aqui
// Via Query Parameter (menos seguro):
URL: https://api.exemplo.com/dados?api_key=xxxxx
Bearer Token
Token temporario obtido via login/OAuth.
Header Name: Authorization
Header Value: Bearer eyJhbGciOiJIUzI1NiIs...
Basic Auth
Usuario e senha codificados em base64.
// No N8N, selecione "Basic Auth" e preencha:
User: seu_usuario
Password: sua_senha
// Equivale ao header:
Authorization: Basic dXN1YXJpbzpzZW5oYQ==
OAuth 2.0
Autorizacao delegada (Google, Facebook, etc).
// Use "Generic OAuth2 API" credential no N8N
Client ID: seu-client-id
Client Secret: seu-client-secret
Authorization URL: https://api.exemplo.com/oauth/authorize
Token URL: https://api.exemplo.com/oauth/token
Scope: read write
Tipos de Body
Formatos para enviar dados
JSON (application/json)
O mais comum para APIs modernas.
Content-Type: application/json
{
"nome": "{{ $json.nome }}",
"email": "{{ $json.email }}",
"dados": {
"plano": "pro"
}
}
Form URL-Encoded (application/x-www-form-urlencoded)
Formato de formularios HTML tradicionais.
Content-Type: application/x-www-form-urlencoded
// No N8N, use "Form URL-Encoded" body type
nome=Joao&email=joao@email.com&plano=pro
Multipart Form Data (multipart/form-data)
Para upload de arquivos.
Content-Type: multipart/form-data
// No N8N, selecione "Multipart Form Data"
// e configure o campo de arquivo com binary data
file: [binary data from previous node]
description: "Meu arquivo"
Raw (text/plain, text/xml, etc)
Texto puro, XML, ou outros formatos.
// XML exemplo:
Content-Type: text/xml
<request>
<nome>{{ $json.nome }}</nome>
<email>{{ $json.email }}</email>
</request>
Exemplos Praticos
1. Buscar CEP (GET simples)
GET https://viacep.com.br/ws/01310100/json/
// Resposta:
{
"cep": "01310-100",
"logradouro": "Avenida Paulista",
"bairro": "Bela Vista",
"localidade": "Sao Paulo",
"uf": "SP"
}
2. Criar registro no Supabase (POST + Bearer)
POST https://xxx.supabase.co/rest/v1/usuarios
// Headers:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
apikey: sua-anon-key
Content-Type: application/json
Prefer: return=representation
// Body (JSON):
{
"nome": "{{ $json.nome }}",
"email": "{{ $json.email }}",
"criado_em": "{{ $now.toISO() }}"
}
3. Buscar todos registros com paginacao
// Use Loop Over Items ou recursao
// Primeira pagina:
GET https://api.exemplo.com/items?page=1&limit=100
// Resposta:
{
"data": [...],
"page": 1,
"total_pages": 5,
"next": "https://api.exemplo.com/items?page=2"
}
// No N8N: use Loop Until para iterar ate next == null
4. Query GraphQL (GitHub API)
POST https://api.github.com/graphql
// Headers:
Authorization: Bearer ghp_xxxxxxxxxxxx
Content-Type: application/json
// Body:
{
"query": "query { viewer { login repositories(first: 10) { nodes { name stargazerCount } } } }"
}
5. Upload de arquivo
POST https://api.exemplo.com/upload
// Body Type: Multipart Form Data
// Configure no N8N:
Parameter Name: file
Input Data Field Name: data // nome do campo binario
// Campos adicionais:
description: "Arquivo enviado via N8N"
6. Disparar webhook externo (Zapier, Make, etc)
POST https://hooks.zapier.com/hooks/catch/xxxxx/yyyyyy
// Body:
{
"evento": "nova_venda",
"valor": {{ $json.valor }},
"cliente": "{{ $json.email }}",
"timestamp": "{{ $now.toISO() }}"
}
Opcoes Avancadas
Timeout
Tempo maximo de espera (ms). Padrao: 300000 (5 min). Aumente para APIs lentas.
Retry on Fail
Tentar novamente em caso de erro. Configure max retries e wait between.
Ignore SSL Issues
Ignorar erros de certificado SSL. Use apenas para APIs internas.
Proxy
Rotear requests atraves de proxy HTTP/HTTPS.
Response Format
Autodetect, JSON, Text, File (para downloads).
Full Response
Incluir headers, status code, e body na resposta.
Troubleshooting
401 Unauthorized
Credenciais incorretas ou expiradas. Verifique API key, token, ou usuario/senha.
403 Forbidden
Autenticado mas sem permissao. Verifique scopes, roles, ou IP whitelisting.
404 Not Found
URL incorreta ou recurso nao existe. Verifique a documentacao da API.
422 Unprocessable Entity
Dados invalidos no body. Verifique campos obrigatorios e tipos (string vs number).
429 Too Many Requests
Rate limit atingido. Adicione node Wait ou reduza frequencia das requisicoes.
500 Internal Server Error
Erro no servidor da API. Nao e problema seu - tente novamente mais tarde.
ETIMEDOUT / Timeout
API demorou demais. Aumente o timeout nas opcoes ou verifique conectividade.
ECONNREFUSED
Servidor recusou conexao. URL incorreta, servidor offline, ou firewall bloqueando.
Dicas Pro
Use Credentials Reutilizaveis
Crie uma "Header Auth" credential com sua API key e reutilize em multiplos nodes. Assim, quando trocar a chave, atualiza em um lugar so.
Teste no Postman/Insomnia Primeiro
Antes de configurar no N8N, teste a API em um cliente HTTP. Assim voce sabe exatamente o que funciona.
Sempre Leia a Documentacao
Cada API tem suas peculiaridades. Rate limits, formatos, autenticacao. 5 minutos lendo docs economiza horas de debug.
Use "Full Response" para Debug
Ative "Full Response" para ver headers e status code. Util para entender erros ou pegar headers de paginacao.
APIs Populares (Sem Node Nativo)
Estas APIs nao tem node nativo mas funcionam perfeitamente com HTTP Request:
Parabens!
Voce completou a Trilha Tecnico! Agora pode integrar qualquer API.
Ver Todas as Conexoes