Custom HTTP Requests
For services without a pre-built integration, use the HTTP Request node to call any REST API.
Flow Builder — HTTP Request Piece
- Add an action step
- Search for "HTTP" and select HTTP Request
- Configure:
- Method — GET, POST, PUT, PATCH, DELETE
- URL — The API endpoint
- Headers — Custom headers (e.g., Authorization, Content-Type)
- Body — JSON, form data, or raw body
- Authentication — None, Bearer Token, Basic Auth, API Key
Example: Call a Custom API
Method: POST
URL: https://api.example.com/v1/users
Headers:
Content-Type: application/json
Authorization: Bearer {{connections.myApiKey.token}}
Body:
{
"name": "{{trigger.body.name}}",
"email": "{{trigger.body.email}}"
}
Workflow Builder — HTTP Request Node
The Workflow Builder's HTTP Request node offers advanced configuration:
- Retry on Fail — Automatic retries with configurable delay
- Timeout — Custom timeout in milliseconds
- Proxy — Route requests through a proxy server
- SSL Certificates — Custom CA certificates for self-signed endpoints
- Pagination — Automatically handle paginated responses
- Batching — Send multiple requests in parallel
Pagination Example
Automatically fetch all pages from a paginated API:
Pagination Type: Response Contains Next URL
Next URL Parameter: $.next_page_url
Max Pages: 100
FlowStack will keep fetching pages until there's no next URL or the max page limit is reached.
Response Handling
The HTTP Request node returns:
{
"status": 200,
"statusText": "OK",
"headers": {
"content-type": "application/json",
"x-rate-limit-remaining": "98"
},
"body": {
"id": 12345,
"name": "John Doe",
"created_at": "2026-04-21T10:30:00Z"
}
}
Access response data in subsequent nodes:
{{ $json.body.id }} // 12345
{{ $json.headers['x-rate-limit-remaining'] }} // "98"
{{ $json.status }} // 200
Authentication Methods
Bearer Token
Authorization: Bearer your-token-here
API Key (Header)
X-API-Key: your-api-key
API Key (Query Parameter)
https://api.example.com/data?api_key=your-api-key
Basic Auth
Authorization: Basic base64(username:password)
OAuth 2.0 (Manual)
For OAuth APIs without a pre-built piece, use the HTTP Request with a manually obtained access token and implement token refresh in a preceding Code node.
Error Handling
Handle HTTP errors gracefully:
// In a Code node after HTTP Request
const response = $input.first().json;
if (response.status >= 400) {
throw new Error(`API returned ${response.status}: ${JSON.stringify(response.body)}`);
}
// Process successful response
return [{ json: response.body }];