Skip to main content
HTTP Request

Overview

The HTTP Request node lets you call any external API - fetch data, send updates, trigger actions, or integrate with services that don’t have native integrations.
Best for: Custom API integrations, fetching external data, sending webhooks, and connecting to any HTTP-based service.

Configuration

Import from cURL

Click “Import from cURL” to paste a cURL command and automatically populate all fields (URL, method, headers, parameters). Great for quickly setting up requests from API documentation.

URL (Required)

The API endpoint to call. Supports Auto, Manual, and Prompt AI modes. Manual mode example:
https://api.example.com/users/{{trigger.output.user_id}}/orders

Method

Select the HTTP method:
  • GET: Fetch data
  • POST: Create new resources
  • PUT: Replace existing resources
  • PATCH: Update existing resources
  • DELETE: Remove resources

Headers

Add custom headers as key-value pairs. Common headers: Authentication:
Key: Authorization
Value: Bearer {{trigger.output.api_token}}
Content Type:
Key: Content-Type
Value: application/json
Click “Add header” to include multiple headers.

Query Parameters

Add URL query parameters as key-value pairs instead of including them in the URL. Example:
URL: https://api.example.com/search
Parameters:
  - Key: query, Value: {{trigger.output.search_term}}
  - Key: limit, Value: 10

Results in: https://api.example.com/search?query=laptops&limit=10

Body (POST/PUT/PATCH only)

The request payload, typically JSON format. Supports variables from previous nodes.
{
  "name": "{{trigger.output.name}}",
  "email": "{{trigger.output.email}}",
  "status": "{{agent.output.category}}",
  "metadata": {
    "source": "workflow",
    "processed_at": "{{trigger.output.timestamp}}"
  }
}

Example Use Cases

Fetch User Data (GET)

Method: GET
URL: https://api.crm.com/users/{{trigger.user_id}}
Headers:
  - Authorization: Bearer YOUR_TOKEN

Create Record (POST)

Method: POST
URL: https://api.system.com/records
Headers:
  - Content-Type: application/json
Body:
{
  "title": "{{trigger.title}}",
  "category": "{{agent.category}}",
  "priority": "{{agent.priority}}"
}

Search with Parameters (GET)

Method: GET
URL: https://api.example.com/search
Query Parameters:
  - q: {{trigger.search_term}}
  - limit: 20
  - format: json

Update Status (PATCH)

Method: PATCH
URL: https://api.app.com/items/{{trigger.id}}
Headers:
  - Content-Type: application/json
Body:
{
  "status": "completed",
  "updated_by": "workflow"
}

Accessing Response Data

After the HTTP Request executes, access the response in subsequent nodes:
{{http_node.output.status}}              → Status code (200, 404, etc.)
{{http_node.output.data}}                 → Response body
{{http_node.output.data.user.name}}       → Nested response data
{{http_node.output.data.items[0].id}}     → Array items
{{http_node.output.headers}}              → Response headers

Response Status Codes

Use the status code to check if the request succeeded:
{{ http_node.output.status === 200 }}     → Success
{{ http_node.output.status >= 400 }}      → Error occurred

Best Practices

If you have a working cURL command from API docs, use “Import from cURL” to automatically set up all fields correctly.
Always add error handling. Use a Condition node after the HTTP Request to check {{ http_node.status === 200 }}.
Add query parameters in the Parameters section instead of hardcoding them in the URL. This makes them easier to manage.
Use the node’s test button to verify the request works before building the rest of your workflow.

Next Steps