Turn a curl command into fetch, Node, Python, PowerShell or HTTPie code
Runs in your browser. Nothing you type is sent anywhere. Updated on 25 Oct 2026.A curl command copied from documentation has to be rewritten before it runs in your code. This turns one into fetch, Node, Python, PowerShell or HTTPie, 5 targets, keeping the headers and body intact. The command stays in your browser, so a bearer token is never sent.
Paste a curl command into the curl command box, or choose one under "Or start from a common command".
Pick a language under "Convert to": fetch (browser), fetch (Node.js), Python requests, PowerShell or HTTPie.
Check the summary under the box for the method, URL, header count and body type, and read any warnings.
Press Copy, or Ctrl+Enter, or use the download button to save the code as a file.
Paste a curl command and get the same request written as browser fetch, Node fetch, Python requests, PowerShell Invoke-RestMethod or HTTPie. The command is split the way a shell would split it, so quoted values, escaped characters and lines joined with a backslash, a caret or a backtick all survive.
The flags people actually paste are handled: -X, -H, -d and every --data variant, --data-urlencode, --json, -u, -F and --form, -G, --compressed, -k, -b, -A, -e, -L, -I, -T, -x and --max-time. A JSON body is laid out as a real object rather than a long string, a form becomes FormData or files=, and -G moves the data into the query string without encoding it twice.
Where a target cannot do what curl did, the generated code says so instead of quietly producing something wrong. A page cannot turn off certificate checking or set a Cookie header, so those become comments. Multipart uploads drop an explicit Content-Type, because only the library knows the boundary. PowerShell switches that need version 6 are labelled.
Nothing is ever executed and no request is made. The parser and every generator run in this page, which matters because a pasted command usually contains a live bearer token, a session cookie or a password. It stays in your browser. Even so, swap the secret for an environment variable before the generated code goes into a repository.
Paste the whole command, starting with the word curl, and pick fetch. Headers become an object, -d becomes the body, a JSON body is written as JSON.stringify with the object laid out, and -u becomes an Authorization header built with btoa. Copy the result with one click.
No. The parser and every code generator are JavaScript running in this page, and the tool makes no network request of any kind. Nothing you paste is uploaded, logged or stored. Even so, replace the secret with an environment variable before committing the generated code.
Never. The command is only ever read as text and split the way a shell would split it. No request is made, no file is opened and nothing is executed, so it is safe to paste a command you have not read carefully yet.
In Windows PowerShell, curl is an alias for Invoke-WebRequest, which takes completely different arguments, so -H and -d are read as something else entirely. Convert the command to PowerShell here to get a real Invoke-RestMethod call, or install curl.exe and call it by its full name.
The --json flag is shorthand, added in curl 7.82, for three things at once: send this text as the body, add Content-Type: application/json, and add Accept: application/json. This converter expands it, so the generated code shows both headers explicitly.
Yes. Right-click a request in the Network tab and choose Copy as cURL. Those commands use --data-raw, --compressed and a long list of lower-case headers, and are often one very long line or several joined with backslashes. All of that is handled, including the $'...' form Chrome uses when a value contains newlines.
Still stuck? Ask about curl Converter and anybody who knows can answer. No account needed.
Same job, other tools: HEX to RGB – Turn a hex colour code into rgb() values you can paste into CSS.
On the related tools: TSV to JSON – Convert tab-separated values, such as a paste from Excel, into JSON · Query String Parser – Split a URL query string into a table of decoded parameters.
In the collection Developer Converters.