Connecting External APIs (HTTP)
How to connect external APIs to your workflow with secure authentication. Bearer auth, Basic auth, timeouts, and limitations explained.
Written By pvdyck
Last updated 19 minutes ago
Connecting External APIs
If a service doesn't have a native integrations node, you can still connect to it using standard HTTP protocols.
indie.money provides two primary nodes for HTTP communication:
- HTTP Request Node: For making outbound calls to other services.
- Webhook Trigger: For receiving inbound calls from other services.
1. Outbound Calls (HTTP Request Node)
The HTTP Request Node makes outbound HTTP/HTTPS calls to any external API or web service.
Methods
GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS
Send Parameters
Body Content Types
Response Format
Auto-detect (default), JSON, Text, File (binary)
Options
Authentication
The HTTP Request Node supports secure, Vault-managed authentication for calling any API that uses Bearer tokens or Basic auth.
π‘ Note:Your credentials never appear in the workflow. They are stored in the Secure Vault and injected at execution time via the secure proxy. Builders, producers, and the execution engine never see your actual keys.
How It Works
- Set Authentication to Generic Credential Type
- Choose Bearer Auth or Basic Auth
- Connect your credential via the Secure Vault
At execution time, the Secure Vault proxy injects the correct Authorization header into your request. Your API key or password never leaves the vault.
Supported Auth Types
Per-Credential Target URL
Each credential is linked to a specific API base URL. This means:
- A Bearer token for
https://api.stripe.comonly works for Stripe requests - A Bearer token for
https://api.github.comonly works for GitHub requests - You can have multiple credentials for different APIs in the same workflow
The target URL is set when you configure the credential in the Secure Vault. Enter the full URL (e.g., https://api.stripe.com/v1/charges) in the HTTP Request node's URL field. The credential's target URL is used for credential scoping and matching, not for URL construction.
Auth Types NOT Supported
Key Limitations
Because indie.money runs on a strict serverless architecture (Cloudflare Workers), the HTTP Request node has specific boundaries compared to standard n8n:
- 10-second timeout: If the external API takes longer than 10 seconds, the request fails. Use APIs with fast response times.
- In-memory binary support (~50MB limit): Binary downloads and uploads work via in-memory base64 encoding. Files over 50MB are rejected. No streaming by ID.
- HTTPS only recommended: HTTP URLs may be blocked.
- Simplified pagination expressions: Supports
$response.body.*,$response.headers.*,$pageCountwith arithmetic. Complex expressions (ternary, method calls) require the Code node.
Workarounds for Limitations
2. Inbound Calls (Webhook)
For answering inbound requests, you will use the Webhook Trigger.(See the Triggers Reference for more details).
Example: Call a REST API with Bearer Auth
- Add an HTTP Request node
- Set Authentication to Generic Credential Type
- Set Generic Auth Type to Bearer Auth
- Connect your Bearer token credential (configured in Secure Vault with target URL
https://api.example.com) - Set URL to the endpoint path:
https://api.example.com/v1/data - Set Method to
GET
The Secure Vault injects Authorization: Bearer <your-token> automatically. Your token never appears in the workflow definition.
Example: Call an API without Auth
URL: https://api.example.com/public/dataMethod: GETAuthentication: NoneHeaders: Accept: application/json