cURL to n8n Node Converter
Convert a cURL command into an n8n HTTP Request node you can paste straight onto the canvas, with JavaScript fetch and Python requests equivalents generated at the same time. Runs entirely in your browser.

{
"nodes": [
{
"parameters": {
"method": "POST",
"url": "https://api.example.com/v1/contacts",
"authentication": "none",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "locationId",
"value": "abc123"
}
]
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bear•••••••• sk_l••••••••"
}
]
},
"sendBody": true,
"contentType": "json",
"specifyBody": "json",
"jsonBody": "{\"firstName\":\"Sarah\",\"email\":\"sarah@example.com\",\"tags\":[\"inbound\"]}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
0,
0
],
"id": "00000000-0000-4000-8000-000000000000",
"name": "Create Contact"
}
],
"connections": {},
"pinData": {}
}Paste a cURL command and get back an n8n HTTP Request node you can paste directly onto the canvas, along with fetch and Python equivalents. The parser handles quoted headers, multi-line commands, JSON bodies, basic auth and query strings. Everything runs in your browser.
What this tool does
The converter takes a cURL command — the kind you copy out of Chrome DevTools with Copy as cURL, or paste from an API vendor's documentation — and turns it into three things: a JSON node you can paste straight onto an n8n canvas, a JavaScript fetch() call, and a Python requests snippet. It parses flags properly rather than pattern-matching, so quoted headers, multi-line commands with trailing backslashes, --data-raw bodies, basic auth and query strings all survive the trip.
Everything runs in your browser. No command, header or bearer token is ever sent to a server.
A worked example
Paste a POST that sends JSON with a bearer token and a content-type header. What comes back is an n8n-nodes-base.httpRequest node at typeVersion 4.2 with the method set to POST, the URL populated, sendHeaders and sendBody switched on, both headers mapped into headerParameters, and the JSON body placed in jsonBody with specifyBody set to json. Copy it, click an empty spot on your n8n canvas, and press Ctrl+V. The node appears ready to connect.
How to use it
- Copy the cURL command. In Chrome DevTools, right-click the request in the Network tab and choose Copy → Copy as cURL.
- Paste it into the input box.
- Pick the output you want: n8n node, fetch, or Python.
- Copy the result onto your canvas or into your editor.
What each cURL flag maps to
| cURL flag | n8n equivalent |
|---|---|
-X, --request |
Node method |
-H, --header |
headerParameters entries, sendHeaders: true |
-d, --data, --data-raw |
jsonBody or bodyParameters |
-u, --user |
Basic auth header |
--url |
Node url |
-k, --insecure |
allowUnauthorizedCerts |
-F, --form |
Multipart body — set up manually |
Where people go wrong
Leaving the live key in the node. A pasted cURL usually carries a real bearer token. Move it into an n8n credential or an expression before you save the workflow, otherwise the secret ends up in your workflow JSON and in every export you share. The n8n JSON sanitiser will strip credentials out of an export if you have already shipped one.
Assuming the body is JSON when it is not. Plenty of APIs still expect application/x-www-form-urlencoded. If the original command used -d with key=value&key2=value2 and no JSON content type, switch the node's body type to form-urlencoded rather than forcing JSON.
Copying a browser request wholesale. A Copy as cURL from DevTools drags along cookies, client hint headers and referrers that the API neither needs nor wants. Delete everything that is not authentication and content type.
Ignoring the node's own reliability settings. The converter maps the request, not your error strategy. Open the node's settings tab and turn on Retry On Fail for anything hitting a third-party API. HTTP semantics for which methods are safe to retry are set out in RFC 9110 — idempotent methods such as GET and PUT are safe to repeat, POST usually is not.
FAQ
Does this send my cURL command anywhere?
No. The parser runs in your browser as JavaScript. Nothing is uploaded, logged or stored, which is why it is safe to paste a command that still carries a live key — though you should still rotate that key if the command has been shared elsewhere.
Which n8n node version does it produce?
n8n-nodes-base.httpRequest at typeVersion 4.2, which is the current HTTP Request node. Older instances may open it in compatibility mode; the fields still map across.
Can I paste the output straight onto the canvas?
Yes. n8n reads workflow JSON from the clipboard. Copy the output, click empty canvas space, press Ctrl+V (Cmd+V on macOS) and the node appears.
Does it handle multipart form uploads?
Not fully. A -F upload needs a binary property in n8n, and which property depends on how the file arrives in your workflow, so the converter flags it rather than guessing.
Why does the query string get split out of the URL?
Because n8n's HTTP Request node has a dedicated query parameters section, and putting values there means you can drop expressions into individual parameters later without rebuilding the whole URL.
Next steps
If you are wiring your first workflow, the walkthrough in How to Build an n8n Workflow covers the canvas basics, and the n8n Webhook Tutorial covers the other half — receiving requests rather than making them. For the official reference on deployment options and plan differences, see the n8n deployment guide and the n8n pricing page.
Need the workflow built rather than the node converted? Book a discovery call.

Want this built against your real numbers?
A 30-minute call to scope the workflow, agent, or automation you actually need.
More developer tools
All tools.env Manager
Validate, compare, and generate templates for your .env files — without exposing secrets
.gitignore Generator
Build a .gitignore for your stack in seconds. Covers dependencies, build output, IDE files and the .env patterns that keep secrets out of a public repository.
API Mock Server
Create a live mock REST endpoint with your own path, method, status code, headers, delay and JSON body — so you can build and test a frontend or automation before the real API is ready.
API Request Tester
Send REST API requests from your browser with custom headers, auth and a JSON body, and inspect the status, headers and response. Includes a guide to reading status codes and diagnosing CORS.
Base64 Encoder/Decoder
Encode or decode any Base64 string instantly — no install, no login
Cron Expression Generator
Build cron expressions visually and get the correct string for crontab, GitHub Actions, EventBridge, Kubernetes, Make or n8n — with a field reference and the common gotchas explained.
Have a workflow that's burning hours every week?
Bring me one real bottleneck. I'll tell you whether it's worth automating, and what it would take.