Docs / Contact / connectors/http
HTTP Connector
Direction: Read / Write | Type: http
Send and receive data from any HTTP endpoint including REST APIs, webhooks, and HTTP-based services. Supports multiple authentication methods, SSL/TLS, and request customization.
Operations
| Operation | Direction | Description |
|---|---|---|
GET |
Read | Retrieve data from the API endpoint |
POST |
Write | Send data to the API endpoint |
PUT |
Write | Replace data at the API endpoint |
PATCH |
Write | Partially update data at the API endpoint |
DELETE |
Write | Delete data at the API endpoint |
Connector Configuration
| Field | Required | Default | Description |
|---|---|---|---|
| URL | Yes | - | Base URL for the API (e.g., https://api.example.com) |
| Default Method | No | POST |
Default HTTP method for requests |
| Default Headers | No | - | Headers included in all requests (supports Jinja2) |
| Auth | No | none |
Authentication configuration (see below) |
| Timeout | No | 30 |
Request timeout in seconds (1–300) |
| Follow Redirects | No | true |
Automatically follow HTTP redirects |
| Max Redirects | No | 10 |
Maximum number of redirects to follow |
| Verify SSL | No | true |
Verify SSL/TLS certificates |
Authentication Options
None
No authentication (default).
Basic Authentication
json
{
"type": "basic",
"username": "${secrets.api_user}",
"password": "${secrets.api_pass}"
}
Bearer Token
json
{
"type": "bearer",
"token": "${secrets.api_token}"
}
API Key
json
{
"type": "api_key",
"api_key_header": "X-API-Key",
"api_key_value": "${secrets.api_key}",
"api_key_location": "header"
}
Location options: header (default), query
OAuth2
json
{
"type": "oauth2",
"oauth2": {
"token_url": "https://oauth.example.com/token",
"client_id": "${secrets.oauth_client_id}",
"client_secret": "${secrets.oauth_client_secret}",
"scope": "read write",
"grant_type": "client_credentials"
}
}
Grant types: client_credentials (default), authorization_code
Custom Headers
json
{
"type": "custom",
"custom_headers": {
"X-Custom-Auth": "{{ payload.token }}",
"X-API-Version": "v2"
}
}
Per-Operation Configuration
These settings apply per request when the connector dispatches a matched message:
| Field | Required | Description |
|---|---|---|
| Endpoint | No | Path appended to the base URL (supports Jinja2) |
| Method | No | HTTP method override |
| Headers | No | Additional headers merged with connector defaults |
| Body | No | Request body (supports Jinja2 templating) |
| Query Parameters | No | URL query parameters |
Output
The flow step records the standardized result, with the HTTP response details in data:
json
{
"status": "completed",
"statusCode": 200,
"data": {
"method": "GET",
"url": "https://api.example.com/users",
"status": "200 OK",
"statusCode": 200,
"body": "{\"id\":123,\"name\":\"John\"}",
"duration": 84
}
}
The response body is returned as a string in data.body. Access it in subsequent nodes:
jinja2
{{ payload.data.body }}
{{ payload.data.statusCode }}
Example
Connector Setup:
json
{
"url": "https://api.example.com",
"default_method": "POST",
"auth": {
"type": "bearer",
"token": "${secrets.api_token}"
},
"default_headers": {
"Content-Type": "application/json"
}
}
Node Usage:
- Endpoint:
/users/{{ payload.user_id }} - Method:
GET - Additional Headers:
{"X-Request-ID": "{{ meta.run_id }}"}
Result: GET https://api.example.com/users/123 with Bearer token and custom headers.
Tendrl