Skip to content

HTTP Step

The HTTP step makes requests to external APIs. The step editor has a familiar HTTP Client interface with tabs for Params, Headers, Body, and Advanced.

HTTP step editor showing URL, method, and tabbed configuration
FieldDescriptionExample
URLThe endpoint to call. Supports templates.https://api.example.com/users/{{ initial.userId }}
MethodHTTP method dropdownGET, POST, PUT, PATCH, DELETE

Params tab — Add query parameters as key-value pairs. These are merged with any parameters already in the URL.

Headers tab — Add request headers as key-value pairs:

HeaderValue
AuthorizationBearer {{ $env.API_TOKEN }}
X-Custom-Header{{ initial.tenantId }}

Select a body type from the dropdown:

JSON — A JSON editor for structured request bodies. Content-Type is set automatically.

HTTP step body tab with JSON editor for structured request bodies
KeyValue
customerId{{ initial.customerId }}
actionsync

Form — URL-encoded key-value pairs (application/x-www-form-urlencoded):

KeyValue
grant_typeclient_credentials
client_id{{ $env.CLIENT_ID }}

Raw — A text editor for XML, plain text, or any custom format. Set the Content-Type header manually in the Headers tab.

Multipart — For file uploads. Add fields with a name, value, and optional filename/content type.

FieldDefaultDescription
Timeout30 secondsMax wait time (up to 30 minutes)
Follow RedirectsonAutomatically follow 3xx redirects
Max Redirects10Maximum redirect hops
Retry Attempts2Retries on transient errors (timeouts, 429, 5xx)

After the step runs, reference the response in later steps:

{{ my-http-step.status }} // HTTP status code (200, 404, etc.)
{{ my-http-step.ok }} // true if 2xx status
{{ my-http-step.body }} // Parsed response (JSON/XML auto-detected)
{{ my-http-step.body.users }} // Access nested fields from JSON response
{{ my-http-step.text }} // Raw response text
{{ my-http-step.headers }} // Response headers

Response bodies are automatically parsed as JSON or XML based on content type. If parsing fails, the raw text is returned in body.

The HTTP step doesn’t use connections directly. Instead, reference credentials in the Headers tab via templates:

HeaderValue
AuthorizationBearer {{ $env.API_TOKEN }}
Authorization{{ $connections.my-api.apiKey }}

For OAuth-based API calls with automatic token refresh, use the dedicated integration steps (e.g., Salesforce, Google Sheets) which handle token refresh on 401/403 automatically.