Skip to main content
API & Network · 100% Client-Side Engine

cURL to n8n & Make.com HTTP Node Converter

Convert cURL commands into ready-to-paste n8n HTTP Request Node v4.2 JSON workflows, Make.com HTTP blueprints, or n8n Code Node scripts 100% locally.

cURL to n8n & Make.com100% Client-Side Engine
Output Configuration Options
Choose n8n canvas node JSON, n8n JS Code node, or Make.com blueprint (Experimental / untested)
Remove sec-ch-ua, sec-fetch-*, and priority headers from Copy as cURL
Input (bash)4 lines
Output (json)46 lines

Example Output (cURL to n8n & Make.com)

SAMPLE INPUT (BASH)
curl -X POST 'https://api.castov.com/v1/orders?notify=true' \
  -H 'Authorization: Bearer sk_test_dummy_token' \
  -H 'Content-Type: application/json' \
  --data-raw '{"customerId":"cus_9921","items":[{"sku":"PRO-PLAN","qty":1}]}'
GENERATED OUTPUT (JSON)
{
  "nodes": [
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.castov.com/v1/orders",
        "authentication": "none",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "notify",
              "value": "true"
            }
          ]
        },
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer sk_test_dummy_token"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "{\n  \"customerId\": \"cus_9921\",\n  \"items\": [\n    {\n      \"sku\": \"PRO-PLAN\",\n      \"qty\": 1\n    }\n  ]\n}",
        "options": {}
      },
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        260,
        300
      ]
    }
  ],
  "connections": {}
}

Understanding the cURL to n8n & Make.com Transformation

Workflow automation engineers using n8n frequently need to translate API documentation examples or Chrome DevTools `Copy as cURL` requests into visual `HTTP Request` nodes. While n8n includes a basic cURL import modal, it often struggles with shell-escaped JSON quotes, `-u` Basic Auth flags, `-b` cookie headers, multipart `-F` uploads, and bloated browser telemetry headers (`sec-ch-ua`, `sec-fetch-*`). Because the output of this converter is a complete `n8n-nodes-base.httpRequest` (typeVersion 4.2) workflow envelope, you can simply click Copy and press `Ctrl+V` (`Cmd+V`) directly onto your n8n canvas to spawn a pre-configured node without exposing your API keys to any server. Note: The Make.com (`http:ActionSendData` v3) blueprint mode is currently marked as Experimental / untested against a live Make.com canvas.

Key Architectural Benefits

  • •Produces a complete `nodes` workflow JSON envelope that pastes (`Ctrl+V` / `Cmd+V`) directly onto the n8n visual canvas as an `HTTP Request` v4.2 node.
  • •Automatically separates URL query string parameters (`?notify=true&limit=50`) into n8n's structured `queryParameters.parameters` list.
  • •Strips 14 noisy browser telemetry headers (`sec-ch-ua`, `sec-fetch-mode`, `upgrade-insecure-requests`) when importing Chrome DevTools `Copy as cURL` commands.
  • •Supports n8n JavaScript Code Node (`this.helpers.httpRequest`) snippets and an Experimental / untested Make.com (`http:ActionSendData` v3) blueprint output.

Common Conversion Pitfalls & Fixes

⚠️ Pitfall: Pasting raw Chrome DevTools cURL commands into n8n with 15+ browser-only headers
Solution: Chrome's `Copy as cURL` attaches `sec-ch-ua`, `sec-fetch-site`, and `accept-language` headers that clutter your n8n node and can trigger anti-bot blocks when sent from a server IP. Enable 'Strip Chrome DevTools Noise Headers' to keep only essential API headers.
⚠️ Pitfall: Leaving query parameters hardcoded inside the n8n URL string instead of Query Parameters
Solution: Splitting `?page=1&limit=100` into n8n's `queryParameters` section makes it easy to bind dynamic expressions (`={{ $json.page }}`) without manual URL encoding issues.
⚠️ Pitfall: Using raw fetch() inside an n8n Code Node when n8n credentials or proxies are needed
Solution: In n8n Code Nodes, prefer `await this.helpers.httpRequest({ method, url, headers, body, json: true })` so n8n handles JSON parsing, proxy settings, and error logging consistently.

Verified Edge Cases & Complex Scenarios

Real payloads often contain edge cases that break naive generators. Here is how our engine handles them:

1. Multipart Form Uploads (-F) and File Fields

A cURL command uploads form fields and files using `-F 'file=@invoice.pdf'` and `-F 'purpose=tax'`.

INPUT (BASH)
curl -X POST https://api.example.com/upload -F 'purpose=tax' -F 'file=@invoice.pdf'
OUTPUT (JSON)
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
  "parameters": [
    { "name": "purpose", "value": "tax", "parameterType": "formData" },
    { "name": "file", "value": "invoice.pdf", "parameterType": "formBinaryData" }
  ]
}
Why: Fields prefixed with `@` are mapped to `formBinaryData` in n8n while regular fields map to `formData`.
2. Basic Authentication (-u user:pass) with UTF-8 Characters

A cURL command uses `-u 'client_id:secret_key'` instead of an explicit `Authorization` header.

INPUT (BASH)
curl -u 'my_app:p@ssw0rd' https://api.example.com/token -d 'grant_type=client_credentials'
OUTPUT (JSON)
{
  "name": "Authorization",
  "value": "Basic bXlfYXBwOnBAc3N3MHJk"
}
Why: The `-u` flag is UTF-8 Base64-encoded into a standard `Authorization: Basic ...` header parameter.

Frequently Asked Questions

How do I import the generated JSON into my n8n workflow?
Click the 'Copy n8n Node JSON' button, open your n8n workflow canvas in the browser, and press `Ctrl+V` (or `Cmd+V` on macOS). n8n automatically recognizes the clipboard JSON and places the configured HTTP Request node onto your canvas.
Are my Bearer tokens or Cookies in the cURL command sent to any server?
Never. Castov parses the cURL command and builds the n8n / Make.com JSON 100% locally in your browser.
Does this support n8n HTTP Request node v4.2?
Yes, the generator outputs `typeVersion: 4.2` of `n8n-nodes-base.httpRequest`, compatible with all modern self-hosted and cloud n8n instances.
Browse All