HTTP Request

Node catalog Actions
On this page

Calls an external HTTP API. URL, body and auth fields support expressions.

Usage and specifics

Technical type : http. Runtime : nodulz.

Guided example

To read a resource, choose GET, enter your test API’s URL, keep Include status enabled and Body only disabled. If the API returns JSON { "id": "customer-42", "active": true } with status 200, output contains:

json
{
  "body": { "id": "customer-42", "active": true },
  "status": 200,
  "ok": true
}

Headers are added if Include headers is enabled. In a later node, read the identifier with {{ nodes.http1.body.id }}, adapting http1 to your node’s technical name.

To send an object as JSON:

  1. Choose POST and a test resource URL that accepts this method.
  2. Add the Content-Type header with value application/json.
  3. In the body, use {{ JSON.stringify(input) }} for a manual payload, or {{ JSON.stringify(input.body) }} for a webhook request body.
  4. Choose the authentication expected by the API. Do not put a production secret in a shared example.

GET does not send a body. For a URL containing a dynamic value, expression encoding is enabled by default: this helps with a parameter value. If the expression represents a complete URL, check Encode URL values, which could also encode its separators.

To inspect a 404 in a branch instead of failing the node, disable Fail on HTTP errors, keep the status and use an IF on nodes.http1.status. Add a failure path; with this option, a node that finishes without error may contain ok: false.

Credentials and prerequisites

This node defines no dedicated external credential. Remote sources or execution targets may still need their own access credentials.

See the credentials guide if a remote source or execution target requires access.

Parameters

Names below are technical keys. Defaults are not a ready-to-run configuration: complete fields required by your operation. Paths containing [] describe list items; some fields depend on the selected mode.

Parameter Type Default Values / limits
method enum "GET" GET, POST, PUT, PATCH, DELETE
url string "" -
encodeUrlValues boolean true -
authentication enum "none" none, bearer, basic
headers record - -
body string - -
token string - -
username string - -
password string - -
returnOnlyBody boolean false -
returnStatus boolean true -
returnHeaders boolean true -
failOnHttpError boolean true -

Configuration help

method
HTTP Method
HTTP verb used for the request (GET, POST, PUT, PATCH, DELETE).
url
URL
Use double curly braces for dynamic values, e.g. {{ nodes.http1.body.id }}
encodeUrlValues
Encode values in the URL
On: each {{ }} in the URL is percent-encoded (safe for a ?q= parameter). Off: the value is inserted as is, to build a path or a full URL.
authentication
Authentication
Authentication method sent with the request.
token
Bearer token
Use double curly braces for dynamic values, e.g. {{ nodes.http1.body.id }}
username
Username
Username for HTTP Basic authentication.
password
Password
Password for HTTP Basic authentication.
failOnHttpError
Fail on HTTP errors
Non-2xx responses fail the node and activate retries and error handling. Disable to inspect these responses in a branch.
returnOnlyBody
Body only
Return the response body directly, without status or headers.
returnStatus
Return status
Include HTTP status code and ok flag in the output.
returnHeaders
Return headers
Include response headers in the output.
headers
Headers
Static headers (not templated). Authorization is set via Authentication above.
body
Request body
Use double curly braces for dynamic values, e.g. {{ nodes.http1.body.id }}

Examples

Initial configuration

Initial catalog configuration example, to adapt before running. Keep secrets in credentials.

json
{
  "method": "GET",
  "url": "",
  "authentication": "none",
  "returnOnlyBody": false,
  "failOnHttpError": true,
  "returnStatus": true,
  "returnHeaders": true
}

Verification

Test an existing resource and a missing resource in your test API. Check the status and downstream paths. Toggle Body only: the example path becomes nodes.http1.id and status disappears. Before retrying a POST after a timeout, check whether the write already happened.

See also : Expressions and data, Executions, Node catalog.