N8n HTTP Request nodo avanzado es uno de los usos más prácticos de n8n. El nodo HTTP Request de n8n es el más versátil de toda la plataforma. Si n8n no tiene un nodo nativo para el servicio que necesitas, HTTP Request te permite conectar con cualquier API REST del mundo. En esta guía avanzada aprenderás todas sus capacidades: autenticación, paginación, manejo de errores y técnicas para APIs complejas.
Configuración básica del nodo HTTP Request
Parámetros principales
| Parámetro | Descripción |
|---|---|
| Method | GET, POST, PUT, PATCH, DELETE, HEAD |
| URL | La URL del endpoint de la API |
| Authentication | Tipo de autenticación |
| Headers | Cabeceras HTTP personalizadas |
| Body | Datos para POST/PUT (JSON, Form Data, Binary) |
| Response | Formato esperado (JSON, Text, Binary, File) |
Tu primera petición API
Para probar, usa la API pública de JSONPlaceholder:
- Method: GET
- URL:
https://jsonplaceholder.typicode.com/posts/1
n8n hará la petición y el resultado estará disponible en $json.
Autenticación: todos los métodos disponibles
API Key en header
La más común:
- Authentication: Header Auth
- Name:
Authorization - Value:
Bearer {{ $credentials.apiKey }}
O con las credenciales configuradas en n8n:
- Crea una credential de tipo Header Auth
- En el nodo: Authentication → Predefined Credential Type → Header Auth
Basic Auth
Para APIs que usan usuario/contraseña:
- Authentication: Basic Auth
- n8n codifica automáticamente
usuario:contraseñaen base64
OAuth 2.0
Para servicios como Google, Microsoft o Salesforce:
- Crea credenciales de tipo OAuth2
- Configura
Client ID,Client Secret,Auth URL,Token URL - n8n gestiona automáticamente el refresh token
AWS Signature (AWS APIs)
Para APIs de Amazon Web Services:
- Authentication: AWS
- Configura
Access Key ID,Secret Access Key,Region,Service
Enviar datos en el body
JSON body
Para crear un recurso en una API REST:
- Method: POST
- Body Content Type: JSON
- Body:
{
"title": "{{ $json.titulo }}",
"content": "{{ $json.contenido }}",
"status": "publish"
}
Form Data
Para APIs que esperan application/x-www-form-urlencoded:
- Body Content Type: Form-Data/URLEncoded
- Añade los campos con nombre y valor
Multipart/Form Data (subir archivos)
Para subir un archivo binario:
- Body Content Type: Multipart Form Data
- Añade un campo de tipo Binary
- Selecciona la propiedad binaria del item anterior
Paginación: extraer todos los resultados de una API
La mayoría de APIs pagina los resultados. n8n puede manejar la paginación automáticamente:
Activar la paginación en n8n
En el nodo HTTP Request, en la sección Pagination:
Tipo 1: Offset/Limit (lo más común)
- Pagination Mode: Update a Parameter in Each Request
- Parameter Type: Query
- Parameter Name:
pageooffset - Expression:
{{ $pageCount }} - Complete When: Expression →
{{ $response.data.length === 0 }}
Tipo 2: Cursor (APIs modernas)
- Guarda el cursor del resultado anterior:
Complete When: {{ !$response.body.next_cursor }}
Parameter Value: {{ $response.body.next_cursor }}
Tipo 3: Link Header (GitHub, etc.)
- n8n extrae el link "next" automáticamente con el modo Response Contains Next URL
- Next URL Expression:
{{ $response.headers.link?.match(/<([^>]+)>;\s*rel="next"/)?.[1] }}
Técnicas avanzadas
Reintentos automáticos
Para APIs con rate limiting:
- En el nodo: desplega Settings
- On Error: Retry on Fail
- Retry on Fail: actívalo
- Wait Between Retries: 1000ms (1 segundo)
- Max Tries: 3
Headers dinámicos
Cuando los headers cambian por petición (ej: firma HMAC):
// Nodo Code antes del HTTP Request:
const timestamp = Date.now().toString();
const signature = generateHmac(secret, timestamp + body);
return [{ timestamp, signature }];
En el HTTP Request:
- Header
X-Timestamp:{{ $json.timestamp }} - Header
X-Signature:{{ $json.signature }}
Procesar respuestas grandes
Para APIs que devuelven arrays de miles de elementos:
- Activa Always Output Data
- En Split Into Items: si la respuesta es un array, n8n crea un item por elemento
- Usa Split in Batches para procesarlos en grupos
Descargar archivos binarios
Para descargar PDFs, imágenes u otros archivos:
- Response Format: File
- Binary Property:
data(el nombre que usarás en nodos siguientes)
El archivo estará disponible como datos binarios en $binary.data.
Ejemplo completo: API de Typeform con paginación
Obtener todas las respuestas de un formulario:
URL: https://api.typeform.com/forms/{{ $json.form_id }}/responses
Method: GET
Authentication: Header Auth (Bearer TOKEN)
Query Parameters:
- page_size: 200
Pagination:
Mode: Response Contains Next URL
Next URL: {{ $response.body._links.next }}
Complete When: !$response.body._links.next
Esto descarga automáticamente todas las páginas de respuestas.
Depurar peticiones HTTP
Cuando algo falla, activa Continue on Fail y comprueba el error:
// Después del HTTP Request, en un nodo IF:
$json.error !== undefined
Para ver la petición exacta que envía n8n, activa temporalmente el log de debug:
N8N_LOG_LEVEL=debug docker compose restart n8n
Verás en los logs la petición completa con headers y body.
Conclusión
El nodo HTTP Request de n8n es la navaja suiza de las integraciones. Con los métodos de autenticación disponibles, el soporte de paginación automática y la capacidad de enviar cualquier tipo de datos, puedes conectar n8n con prácticamente cualquier API del mercado. Dominar este nodo significa que n8n nunca te quedará pequeño por falta de integraciones nativas.


