Developer tool
cURL to Code Converter
Free, no sign-up. Runs in your browser; nothing is uploaded.
Options
curl command
Code
The result appears here.
How to use the curl to code converter
Convert a curl command in three steps
- Paste the command. Chrome and Firefox both offer Copy as cURL in the network panel, which gives a full request you can drop in.
- Pick the target language: JavaScript fetch, axios, Python requests, PHP cURL or Go net/http.
- Copy the generated code. Warnings appear above the output when something could not be converted.
What carries over
- The URL, including the query string, and the HTTP method. With
-dand no method, curl sends a POST, and so does the tool. - Every
-Hheader, plus cookies, user agent and referer shortcuts. - Request bodies. JSON is turned into a proper object for fetch, axios and Python, and form fields from
-FbecomeFormDataor a form dictionary. - Basic auth from
-u user:pass, sent as anAuthorizationheader.
Before you ship the code
- Secrets: replace tokens and passwords with environment variables. Generated code contains whatever you pasted.
- Error handling: the examples check the status code, but add retries and timeouts that fit your app.
- Files: a field like
-F file=@photo.pngneeds a real file handle in your language. The output marks the spot. - Redirects: browsers' fetch follows redirects by default. curl only does so with
-L.
When the result looks different
If the server answers differently from code than from curl, compare the headers. Browsers add headers you cannot set, and some libraries add a default User-Agent or Accept-Encoding. Copying the exact headers from the network panel is the quickest way to reproduce a request.
Frequently asked questions
Which curl options are understood?
Method (-X), headers (-H), data (-d, --data-raw, --data-binary, --data-urlencode, --json), forms (-F), basic auth (-u), cookies (-b), user agent (-A), -G and -I. Options that only change how curl behaves, such as -L or --compressed, are accepted and ignored. Anything else is listed as a warning.
Why was my -k flag not copied into the code?
-k turns off TLS certificate checks. Copying it into source code is a security risk, so the tool leaves it out, except in the Python output where verify=False is added so the behaviour matches. Fix the certificate instead where you can.
How is a JSON body handled?
When the Content-Type header says JSON and the body parses, the code uses a real object: JSON.stringify in fetch, a dict with json= in Python. Otherwise the body is sent as the raw string.
Are my credentials sent to a server?
No. The command is parsed in your browser. Even so, avoid pasting live production tokens into any tool; replace them with placeholders first.
Can it handle Chrome's Copy as cURL output?
Yes. Multi-line commands with backslashes, single and double quotes, and the $'...' form used for special characters are all supported.