Paste a curl command and get the fetch() call that makes the same request
Runs in your browser. Nothing you type is sent anywhere. Updated on 25 Oct 2026.Copy a request out of your browser's Network tab as cURL, paste it here, and get the fetch call that sends the same thing. Headers become an object, a JSON body becomes JSON.stringify with the object laid out, a form becomes FormData, and -u becomes a Basic header built with btoa. Where a browser genuinely cannot do what curl did, such as -k or setting Cookie, the code says so in a comment.
In your browser's DevTools, right-click the request in the Network tab and copy it as cURL.
Paste it into the curl command box; fetch (browser) is already selected.
Read the comments in the code for anything a browser cannot do, such as -k or setting Cookie.
Press Copy, or download the code as request.js.
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.
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.
The rest of the article, and all 6 questions about curl Converter, are on the curl Converter page.
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.
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.
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.
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.