HTTP Request

output.http-request Output v0.1.0

Sends workflow data to an HTTP endpoint.

Ports

DirectionPortLabel
InputinputPayload
OutputsuccessSuccess
OutputerrorError

Properties

PropertyTypeDefaultDescription
Method
method
select "POST" HTTP method for the outbound request.
GETPOSTPUTPATCHDELETE
URL
url
string Static target URL (or use the dynamic key below).
Target URL
targetUrl
string Resolved target URL.
Target URL config key
targetUrlConfigKey
string "targetUrl" Config/secret key the target URL is read from at run time.
Request body type
contentType
select "application/json" Content-Type for the request body you SEND (POST/PUT/PATCH). Ignored on GET. Does NOT control how the response is parsed — the response always comes back as { statusCode, ok, contentType, body }.
application/jsonapplication/cbortext/plainapplication/xmltext/htmlapplication/x-www-form-urlencodedmultipart/form-dataimage/pngimage/jpegimage/gifimage/webpimage/svg+xmlapplication/pdfapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheettext/csvaudio/mpegvideo/mp4application/octet-stream
Headers
headers
json Additional request headers as a JSON object.
Body path
bodyPath
string Dotted path to the value used as the request body.
Expect 2xx
expectOk
boolean true Fail the node on non-2xx responses.
Return response body
includeResponseBody
boolean true Output the response body (the fetched data) as this node's result. Turn off to emit only the status code.
Parse JSON responses
parseResponse
boolean true When the response Content-Type is JSON, output `body` as the PARSED value (and `bodyText` as the raw string) — no script needed to use the data. Malformed JSON keeps the string body and sets `parseFailed` instead of failing. On by default for new nodes; workflows saved without this option keep the original string `body`.

Examples

Fetch and use a JSON API — no glue code

With Parse JSON responses on (the default for new nodes), the response body arrives as a parsed value, so the next node can use {{ $json.body.… }} directly:

{
  "id": "fetch",
  "type": "output.http-request",
  "config": { "method": "GET", "url": "https://api.example.com/orders/{{ $json.orderId }}" }
}

Downstream: {{ $json.body.status }}, {{ $json.body.items.length }} — no script node, no JSON.parse.

Scrape, then shape (the shipped Scrape Headlines demo)

{ "method": "GET", "url": "https://example.com/" }

…feeding HTML Extract (CSS selectors) → Split OutSortLimit. The whole pipeline is list nodes; the request node just delivers body.

Tips

  • parseResponse keeps the raw string in bodyText alongside the parsed body; malformed JSON sets parseFailed instead of failing the node. Workflows saved before this option keep their original string-body behavior.
  • The URL, headers and body fields all take {{ }} expressions.
  • Outbound requests pass an SSRF guard — private-range targets are refused unless the engine is configured to allow them.
  • Binary responses (images, PDFs) become first-class binary items that S3 / Write File / Telegram media operations consume directly.

This page is generated from the node registry by gen-node-docs.mjs on every site build — ports, properties, defaults and visibility rules cannot drift from the code. The examples above are hand-authored and merged in.