Advanced HTTP Request icon

Advanced HTTP Request

Makes HTTP requests with advanced type conversion and validation

Overview

This node performs advanced HTTP requests with flexible configuration options and enhanced type conversion for request data. It supports all common HTTP methods (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS) and allows users to specify URLs, headers, and request bodies either statically or dynamically from incoming JSON data.

Typical use cases include:

  • Integrating with REST APIs where dynamic request parameters are needed.
  • Sending complex JSON payloads with automatic type validation and conversion.
  • Handling HTTP redirects and SSL validation flexibly.
  • Retrieving full HTTP responses including headers and status codes for debugging or advanced workflows.

For example, you can use this node to send a POST request with a JSON body constructed dynamically from previous workflow data, or perform a GET request with custom headers and timeout settings.

Properties

Name Meaning
Method The HTTP method to use. Options: DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT
URL The target URL for the HTTP request. Must be a valid HTTP or HTTPS URL
Use Dynamic Data Whether to use dynamic data from incoming JSON input with automatic type conversion
Headers Custom HTTP headers to send with the request (only when not using dynamic data). Multiple name-value pairs allowed
Body JSON body to send with POST, PUT, or PATCH requests (only when not using dynamic data)
Options Additional request options:
- Follow Redirects Whether to follow HTTP redirects (default: true)
- Max Redirects Maximum number of redirects to follow (default: 5)
- Return Full Response Whether to return the full HTTP response including headers and status code (default: false)
- Timeout Request timeout in milliseconds (default: 30000)
- Validate SSL Certificate Whether to validate SSL certificates (default: true)

Output

The node outputs an array of items corresponding to each input item processed. Each output item contains a json field structured as follows:

  • If "Return Full Response" option is false (default):

    {
      "data": <response_body>
    }
    

    Where <response_body> is the parsed JSON or raw response body returned by the HTTP request.

  • If "Return Full Response" option is true:

    {
      "statusCode": <HTTP_status_code>,
      "headers": { <response_headers> },
      "body": <response_body>,
      "url": <requested_url>,
      "method": <HTTP_method_used>
    }
    

    The headers redact sensitive authorization tokens and cookies for security.

The node does not output binary data.

Dependencies

  • Requires an internet connection to make HTTP requests.
  • Supports optional API authentication via credentials configured in n8n (e.g., basic auth or header-based auth), but these are not mandatory.
  • No external libraries beyond standard Node.js HTTP request helpers and n8n workflow utilities.

Troubleshooting

  • Invalid URL error: The node validates the URL format strictly. Ensure the URL starts with http:// or https:// and is well-formed.
  • Timeouts: Requests may fail if the server is slow or unresponsive. Adjust the "Timeout" option accordingly.
  • SSL Validation errors: If connecting to servers with self-signed or invalid certificates, disable "Validate SSL Certificate" to avoid failures.
  • Type conversion errors: When using dynamic data, malformed JSON or incorrect types in the input can cause conversion errors. Verify input data structure matches expected types.
  • Authentication issues: If using credentials, ensure they are correctly configured and authorized for the target API.
  • Redirect loops: Excessive redirects may cause errors; adjust "Max Redirects" or disable following redirects if necessary.

Links and References

Discussion