Skip to main content

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

  1. Add an action step
  2. Search for "HTTP" and select HTTP Request
  3. 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 }];