We use cookies to enhance your experience and measure how the site performs. Choose "Essential Only" to disable analytics. Read our Privacy Policy.

    Odeus Docs

    HTTP Request

    Make HTTP requests to external APIs for custom integrations and data fetching.

    HTTP Request

    Make HTTP requests to external APIs for custom integrations and data fetching.

    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 three input modes:

    Manual mode: Enter the URL directly with optional variables

    https://api.example.com/users/{{trigger.output.user_id}}/orders
    

    Auto mode: AI automatically determines the URL based on workflow context

    Prompt AI mode: Provide instructions for the AI to generate the URL

    Construct the API URL for fetching user {{trigger.output.user_id}} from our CRM system
    

    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.structured.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.output.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.output.title}}",
      "category": "{{agent.output.structured.category}}",
      "priority": "{{agent.output.structured.priority}}"
    }
    

    Search with Parameters (GET)

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

    Update Status (PATCH)

    Method: PATCH
    URL: https://api.app.com/items/{{trigger.output.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.output.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

    • Webhook Trigger — Receive HTTP requests

    • Code Node — Transform API responses