HTTP and scripting actions / Action reference
HTTP Request
Manual / Actions / HTTP and scripting
Send an HTTP GET, POST, or PUT request.
Read Shared action rules for disabling this action, outputs, error routing, and recovery. For requests that send a file, also read File sources and destinations.
Configuration and behavior
Ports: 2xx response and Failure / non-2xx.
| Parameter | Default | Notes |
|---|---|---|
| Method | POST | GET, POST, PUT. GET sends no body. |
| Authentication | None | Basic sends the username and password from a stored Basic auth credential. |
| Basic credential | - | Shown for Basic authentication. Select a Basic auth credential from Credentials. A manual Authorization header is refused. Redirects must keep the same scheme, host, and port. |
| URL * | - | |
| Send as | Custom body for new actions | Custom body is first in the menu and sends Custom body text instead of a file (text/plain unless you set Content-Type in Headers). File body sends the file's exact bytes (Content-Type inferred). Form upload is multipart with File field name (default file) and Additional fields. Base64 JSON wraps the file. Saved actions keep their chosen mode. An older action without a saved mode still sends a File body. |
| Source file | ${item.path} |
The file modes. |
| Custom body | - | Text or JSON; variables expand. Use `${x |
| Headers | - | Named rows whose values accept variables, Regex, and other chip processing. Cannot set Content-Type in Form upload mode. |
| Additional fields | - | Optional named rows sent with Form upload. Values accept variables and chip processing. Select Add field to add a row. |
| Max file size (MB) | 10 |
A larger file takes the error port instead of being sent. |
| Retry window | 2m |
How long Relay keeps retrying after a temporary failure, from 1 second through 1 hour. It counts from the first send and includes all retry waits, but not admission queue time. |
| Receiver safely deduplicates repeated writes | off | Advanced. For POST or PUT only. Turn this on only when the receiver prevents duplicate processing of the same idempotency key. |
| Idempotency key header | Idempotency-Key |
Shown after safe receiver deduplication is confirmed. Relay generates one stable value for the operation and keeps it across eligible retries and restart. |
New steps offer None and Basic authentication. Existing saved steps using Iconik authentication retain their prior behavior. In the editor, such a step shows iconik (unknown) in Authentication and no credential field. Changing Authentication removes Iconik, and you cannot select it again: None clears the stored Iconik credential, and Basic asks you to select a Basic auth credential. Use native Iconik actions for new Iconik work. See HTTP Request steps with Iconik authentication. Basic refuses a stored username that contains : or a line break, and a password that contains a line break. Basic accepts HTTP and HTTPS addresses; use HTTPS to protect the password in transit. Relay refuses malformed redirects and removes stored passwords from redirect errors.
Outputs: status, body (first 64 KiB). The timeout is 30 seconds per request and is shortened when less recovery-window time remains; Relay follows up to 10 redirects. Error values: ${error.http.kind} (configuration, request_body, transport, response) and, for response, ${error.http.status} and ${error.http.body}. Relay keeps safe status, request, failure-category, and Retry-After details even when a response body is malformed. It does not retain a raw response body as retry history. When a recorded body is a complete JSON object or array, Available data offers its observed nested fields. Invalid JSON and ordinary text remain one text value. Relay does not paginate responses.
Relay returns success only after it reads the response body completely. It keeps at most the first 64 KiB, but drains the rest. If the body ends with a read fault, a repeatable request can recover. A sent write without a safe duplicate-prevention contract reports an unknown outcome.
GET is a repeatable read. POST and PUT are not repeated after a send unless Receiver safely deduplicates repeated writes is on and the configured receiver really enforces that contract. A generated key alone does not make a receiver safe. If the receiving system does not provide that guarantee, leave the option off and check the target before manually repeating an unknown outcome.
Do not add the generated key header manually. Relay refuses a manual, authentication, or transport-managed header that conflicts with Idempotency key header.