The HTTP node allows you to make HTTP requests to any external API directly within your flow, with support for dynamic URLs, headers, query parameters, request bodies, and Vault-based authentication.Documentation Index
Fetch the complete documentation index at: https://hypha-docs.plinqx.app/llms.txt
Use this file to discover all available pages before exploring further.
Overview
HTTP nodes enable:- Dynamic HTTP Requests: Make GET, POST, PUT, PATCH, DELETE requests
- Expression Support: Use expressions in URLs, headers, query params, and body
- Vault Authentication: Automatically apply credentials from Vault
- Success/Error Routing: Separate output paths for success (2xx) and error (4xx/5xx) responses
- Retry Logic: Configurable retry with exponential backoff
- Response Access: Store and access response data in subsequent nodes
How It Works
Configuration
Basic Configuration
HTTP Method:- GET, POST, PUT, PATCH, DELETE
- Full URL with optional expression support
- Example:
https://api.example.com/users/{{input.userId}}
- Unique identifier for this step
- Used in expressions:
{{http_step_name.output}}
Headers
Add custom headers with expression support:- Enable/disable individual headers
- Expression support in header values
- Automatic Content-Type handling for request body
Query Parameters
Add query parameters with expression support:- Enable/disable individual parameters
- Expression support in parameter values
- Automatically URL-encoded
Request Body
Configure request body for POST, PUT, PATCH, DELETE methods: Content Types:application/json- JSON formatapplication/x-www-form-urlencoded- Form datatext/plain- Plain text
Authentication
Select a Vault credential to automatically apply authentication: Supported Auth Types:- API Key: Applied as
X-API-Keyheader - Bearer Token: Applied as
Authorization: Bearer <token> - Basic Auth: Applied as
Authorization: Basic <credentials> - OAuth2 Client Credentials: Automatically retrieves and applies access token
- OAuth2 Authorization Code: Uses stored access token
Output Variable
Store the HTTP response in a variable for use in subsequent nodes: Variable Name:httpResult
Response Structure:
Advanced Options
Timeout:- Default: 30,000ms (30 seconds)
- Maximum time to wait for response
- Max Attempts: Number of retry attempts (default: 1, no retry)
- Backoff (ms): Delay between retries with exponential backoff
Success and Error Routing
HTTP nodes have two output paths: Success Path (2xx):- Followed when response status is 200-299
- Use for normal processing
- Followed when response status is 400-599
- Use for error handling
Expression Support
HTTP nodes support expressions in all fields: URL Expressions:Response Structure
HTTP node output includes:Use Cases
API Integration
Integrate with external REST APIs
Webhook Callbacks
Send callbacks to external systems
Data Fetching
Fetch data from external services
Service Orchestration
Orchestrate calls to microservices
Examples
Example 1: Fetch User Data
Configuration:- Method: GET
- URL:
https://api.example.com/users/{{input.userId}} - Headers:
Authorization: Bearer {{vault.apiToken}} - Output Variable:
userData
Example 2: Create Resource
Configuration:- Method: POST
- URL:
https://api.example.com/resources - Headers:
Content-Type: application/json - Body:
- Vault Credential: API Key
- Output Variable:
createdResource
Example 3: Update with Retry
Configuration:- Method: PUT
- URL:
https://api.example.com/users/{{input.userId}} - Body:
{{steps.prepare_update.output}} - Retry Policy:
- Max Attempts: 3
- Backoff: 1000ms
- Output Variable:
updateResult
Best Practices
Use Expressions
Use expressions for dynamic URLs and parameters instead of hardcoding values
Handle Errors
Always connect the error path to handle failures gracefully
Set Timeouts
Configure appropriate timeouts based on expected response times
Use Vault
Store credentials in Vault instead of hardcoding in flows
Retry Wisely
Only enable retries for idempotent operations (GET, PUT, DELETE)
Log Responses
Use LOG nodes after HTTP calls to debug responses
Error Handling
HTTP nodes handle errors gracefully: Network Errors:- Connection refused
- Timeout
- DNS resolution failure
- 4xx: Client errors (bad request, unauthorized, not found)
- 5xx: Server errors (internal server error, service unavailable)
Next Steps
Transform Node
Transform HTTP response data
TRY Node
Handle HTTP errors with try/catch
Validate Node
Validate HTTP response structure
Vault
Learn about Vault credential management