How to Use the HTTP Request Node
Making API calls to any service. GET, POST, auth headers, body mapping.
How to Use the HTTP Request Node
The HTTP Request node is n8n's Swiss Army knife for API integration. You'll use it to connect to Clio, QuickBooks, Salesforce, or any service with a REST API
No theory. Just the specific settings you need to make API
When to Use the HTTP Request Node
Use the HTTP Request node when:
- n8n doesn't have a pre-built node for your service
- You need custom APIendpoints the pre-built node doesn't supportAPIClick to read the full definition in our AI & Automation Glossary.
- You're building internal integrations with your firm's custom systems
- You need precise control over headers, authentication, or request formatting
Skip it when a dedicated node exists (Slack, Google Sheets, etc.). Those nodes handle authentication and data formatting automatically.
Core Configuration Fields
Open any HTTP Request node and you'll see these sections:
Method: GET (retrieve data), POST (create records), PUT (update entire records), PATCH (update specific fields), DELETE (remove records).
URL: The full APIhttps://api.clio.com/v4/matters.json
Authentication: Where you configure API
Headers: Key-value pairs for content type, custom authorization, or API
Body: The data payload for POST/PUT/PATCH requests.
Query Parameters: URL parameters like ?status=active&limit=50
Options: Timeout settings, redirect handling, SSL verification toggles.
Making a GET Request
GET requests retrieve data. Here's how to pull active matters from Clio:
- Add HTTP Request node to your canvas
- Set Method to GET
- Enter URL:
https://app.clio.com/api/v4/matters.json - Click Add Authentication > Header Auth
- Set Header Name:
Authorization - Set Header Value:
Bearer YOUR_ACCESS_TOKEN - Under Query Parameters, click Add Parameter
- Set Name:
fields, Value:id,display_number,description,status - Add another parameter: Name:
status, Value:Open
Execute the node. You'll get a JSON array of open matters with only the fields you specified.
Common GET mistakes:
- Forgetting to URL-encode query parameters with special characters
- Not setting the
Accept: application/jsonheader when APIssupport multiple formatsAPIsClick to read the full definition in our AI & Automation Glossary. - Hardcoding pagination limits instead of using loop nodes for complete data pulls
Making a POST Request
POST requests create new records. Here's how to create a time entry in Clio:
- Add HTTP Request node
- Set Method to POST
- Enter URL:
https://app.clio.com/api/v4/activities.json - Configure authentication (same as GET example)
- Under Headers, click Add Header
- Set Name:
Content-Type, Value:application/json - Under Body, select JSON
- Enter this structure:
{
"data": {
"type": "TimeEntry",
"date": "`{{$now.format('yyyy-MM-dd')}}`",
"quantity": "`{{$json.hours}}`",
"price": "`{{$json.rate}}`",
"matter": {
"id": "`{{$json.matter_id}}`"
},
"user": {
"id": "`{{$json.user_id}}`"
},
"note": "`{{$json.description}}`"
}
}
This assumes previous nodes output hours, rate, matter_id, user_id, and description fields.
POST request checklist:
- Always set
Content-Type: application/jsonheader - Wrap your data in the API's required structure (some useAPIClick to read the full definition in our AI & Automation Glossary.
data, others usepayloador no wrapper) - Test with static values first, then replace with dynamic expressions
- Check the APIdocs for required vs. optional fieldsAPIClick to read the full definition in our AI & Automation Glossary.
Authentication Methods
API APIClick to read the full definition in our AI & Automation Glossary. Key in Header
Most modern APIs
- Authentication: Header Auth
- Header Name:
X-API-Key(orAuthorization, check docs) - Header Value:
YOUR_API_KEY
Bearer Token
OAuth2 APIs
- Authentication: Header Auth
- Header Name:
Authorization - Header Value:
Bearer YOUR_ACCESS_TOKEN
Basic Auth
Older APIs
- Authentication: Basic Auth
- Username:
your_username - Password:
your_password
n8n automatically encodes these as Base64 in the Authorization header.
OAuth2
For services like Microsoft Graph or QuickBooks:
- Authentication: OAuth2
- Grant Type: Authorization Code
- Authorization URL:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize - Access Token URL:
https://login.microsoftonline.com/common/oauth2/v2.0/token - Client ID: From your app registration
- Client Secret: From your app registration
- Scope:
https://graph.microsoft.com/.default
Click Connect my account and complete the OAuth flow. n8n stores and refreshes tokens automatically.
Dynamic Body Mapping
Pull data from previous nodes using expressions. If a Webhook node receives this JSON:
{
"client_name": "Acme Corp",
"email": "legal@acme.com",
"matter_type": "Corporate"
}
Map it to your API
{
"contact": {
"name": "`{{$json.client_name}}`",
"email_addresses": [
{
"address": "`{{$json.email}}`",
"default_email": true
}
]
},
"matter": {
"description": "`{{$json.matter_type}}` matter for `{{$json.client_name}}`"
}
}
Expression tips:
- Use
{{$json.field_name}}for data from the previous node - Use
{{$node["Node Name"].json.field}}to reference specific nodes - Use
{{$now.format('yyyy-MM-dd')}}for current date - Use
{{$json.amount.toFixed(2)}}for number formatting
Handling Arrays and Loops
APIs
- HTTP Request node fetches array of matters
- Add Split In Batches node after it
- Set Batch Size to 1
- Process each matter individually in subsequent nodes
- Loop back to Split In Batches until complete
For sending arrays in POST bodies:
{
"time_entries": [
{{$json.entries.map(e => `{
"date": "${e.date}",
"hours": ${e.hours},
"matter_id": ${e.matter_id}
}`).join(',')}}
]
}
This maps an array from a previous node into the API
Response Handling
By default, n8n passes the entire API
Option 1: Use Set node
After HTTP Request, add a Set node:
- Keep only:
data.id,data.attributes.name,data.attributes.status
Option 2: Use expressions in subsequent nodes
Reference nested response data:
{{$json.data[0].attributes.client_name}}{{$json.included.find(i => i.type === 'User').attributes.email}}
Option 3: Enable "Ignore SSL Issues" for internal APIs
Under Options > SSL Certificates, toggle Ignore SSL Issues if you're hitting internal APIs
Error Handling
Add an Error Trigger node to catch failed requests:
- Add Error Trigger node to canvas
- Connect it to a Slack or email notification node
- In the HTTP Request node, under Options, set:
- Timeout: 30000 (30 seconds)
- Retry on Fail: Yes
- Max Tries: 3
- Wait Between Tries: 5000 (5 seconds)
This retries transient failures (network hiccups, rate limits) before triggering your error handler.
Rate Limiting
APIs
- Add Wait node between HTTP Request and loop nodes
- Set wait time based on APIlimits (e.g., 1000ms for 60 requests/minute)APIClick to read the full definition in our AI & Automation Glossary.
- For burst limits, use Split In Batches with appropriate batch sizes
Example: QuickBooks allows 500 requests per minute. Set batch size to 400 and wait 60 seconds between batches.
Testing Checklist
Before deploying:
- [ ] Test with invalid authentication (should fail gracefully)
- [ ] Test with malformed request body (check error messages)
- [ ] Test with missing required fields
- [ ] Verify response data structure matches your expectations
- [ ] Check that dynamic expressions resolve correctly
- [ ] Test error handling with intentionally broken requests
- [ ] Confirm rate limiting doesn't break your workflow
Use n8n's Execute Node button to test individual nodes without running the entire workflow.
Common Patterns
Pagination loop:
- HTTP Request with
?page=1&limit=100 - Set node to increment page counter
- IF node: Does response have data?
- Loop back to HTTP Request if yes
- Continue workflow if no
Conditional requests:
- IF node checks condition
- True branch: HTTP Request to APIAAPIClick to read the full definition in our AI & Automation Glossary.
- False branch: HTTP Request to APIBAPIClick to read the full definition in our AI & Automation Glossary.
- Merge node combines results
Batch processing:
- Trigger pulls 500 records
- Split In Batches (50 per batch)
- HTTP Request processes batch
- Wait 10 seconds
- Loop until complete
The HTTP Request node handles 90% of API

Reviewed by Revenue Institute
This guide is actively maintained and reviewed by the implementation experts at Revenue Institute. As the creators of The AI Workforce Playbook, we test and deploy these exact frameworks for professional services firms scaling without new headcount.
Revenue Institute
Need help turning this guide into reality? Revenue Institute builds and implements the AI workforce for professional services firms.