Convert cURL to JavaScript fetch
Parse cURL without executing it and generate code by selecting from eight supported languages and libraries. You can also check secret masking and warnings for unsupported options.
Open cURL code conversion toolConclusion: Choose JavaScript fetch and compare request elements one by one
Paste cURL and select JavaScript or Node.js fetch. Even if method, headers, and body are generated, separately check credentials settings in the browser and CORS response headers on the server.
First compare the URL, Method, Header, and Body, then check Authentication, Cookies, Redirects, Timeouts, and execution-environment-specific constraints.
Do not put generated code directly into production. Check the parsing result and unsupported Options, then compare Requests in a Test environment.
Check the correspondence between cURL and fetch
The URL is the first argument of fetch, and Method, Header, and Body go in options. Check the JSON Body's Content-Type together with its string contents, and do not confuse Query Parameters with the Body.
fetch does not directly reproduce curl CLI network controls such as proxies, client certificates, --resolve, or --insecure. Forbidden headers and cookies are also managed by the browser.
| Account to check | Points to check during conversion | Actions after conversion |
|---|---|---|
| URL / Query | First argument to fetch | Check with URL Class, etc. |
| Method | -X and Body Option | options.method |
| Header | -H | Check Header constraints |
| Body | JSON, Raw, Form | Content-Type and compatibility |
How to process with the cURL code converter
- Replace actual Tokens and Cookies with Placeholders, then paste cURL into the input field.
- Choose the Shell format matching the Copy source from automatic detection, Bash, PowerShell, and cmd.
- Select JavaScript / Node.js fetch as the Target, enable Secret Mask, and convert.
- Compare the parsed method, URL, headers, Body Type, and warnings with the original cURL.
- Copy or save the generated code, then incorporate it into application settings, exception handling, and tests.
When running as browser fetch, check CORS, credentials, and restricted headers separately from generated code.
How to isolate issues when converted code does not work
If cURL succeeds but fetch fails, separate request differences from browser security differences.
Compare the method, request headers, payload, redirects, and response CORS headers actually sent in the Network Panel.
- Check whether the preflight OPTIONS request has failed.
- Is this cookie authentication that requires credentials?
- Whether the browser is rejecting the header
- Whether the body has been JSON.stringify'd twice
Supported scope of the current cURL code conversion tool
DevelopTools does not execute cURL strings as a shell. It tokenizes them in the browser, normalizes them into request information such as URL, method, headers, body, authentication, cookies, redirects, and timeouts, then generates code. It does not send input to APIs, expand environment variables, or read local files specified by @file.
| Category | Support in the current Tool |
|---|---|
| Input shell | Automatic detection, Bash, PowerShell, cmd. Parse single lines and continued lines |
| output | JavaScript / Node.js fetch, TypeScript fetch, Python requests, Java HttpClient, C# HttpClient, PHP cURL, Go net/http, Ruby Net::HTTP |
| Main options | -X, -H, -d, --data-raw, --data-binary, --data-urlencode, -F, -u, -b, -A, -e, -G, -L, --url, Timeout |
| Security features | Secret Mask, analysis result Preview, unsupported Option warnings, Copy, Download, and Reset |
| Unsupported examples | Axios, --json, --form-string, proxies, client certificates, --resolve, --upload-file, arbitrary file loading, and network request execution |
Common checklist to check after conversion
- The effective method, URL, and query parameters match the original request
- Header names, values, duplicate headers, and Content-Type are as intended
- The body string, encoding, line endings, Unicode, and JSON structure are preserved.
- Cookie, authentication, redirect, and timeout correctly correspond to the APIs of the execution environment
- Check that unsupported options, file placeholders, and secret-masking locations have not been overlooked.
- Checked CORS and credentials in the browser, and proxies, TLS, certificates, and network paths server-side separately.
Handle Secrets and Shell syntax safely.
Commands in Copy as cURL or API documentation can contain Authorization, Cookie, X-API-Key, Session ID, internal URLs, and bodies containing personal information. Even with Secret Mask enabled, visually inspect generated headers, queries, bodies, and comments, and replace values intended for publication with placeholders such as TOKEN or API_KEY.
$(command), backticks, semicolons, pipes, &&, and similar text in the input are not executed as shell commands. $API_URL and $TOKEN are not obtained from environment variables on your device. Manually connect variable expressions remaining in the conversion result to the configuration method of the application that uses them.
Treat @secret.json and @photo.png as strings that indicate paths; do not automatically access files on the device from the browser. For requests that require file contents, replace placeholders in generated code with processing appropriate to the environment, such as a file picker, stream, or buffer.
Before pasting generated code into a ticket or chat, recheck authorization, cookies, query parameters, and the request body.
Check differences in options and execution environments with official documentation
Prioritize the official curl man page for cURL options, MDN and the Fetch Standard for browser request restrictions, Chrome DevTools for Copy as cURL, and official library documentation for each language's API. Converter output is a request foundation and does not guarantee API behavior for the version in use or server-side acceptance conditions.
Example: convert a JSON POST to fetch
Use a POST with --data-raw that includes Content-Type: application/json and Authorization.
Check the generated fetch URL, POST, header, and body strings, and consider adding CORS and credentials only when using it in a browser.
- Replace the real token with TOKEN
- Convert to JavaScript fetch
- Compare the parsed Body Type and generated body
- Check the Network Panel in the Test environment
CORS cannot be removed through client code alone. The API must allow the origin, method, headers, and credentials.
Frequently asked questions
- Is the entered cURL executed or sent externally?
- No. It only parses a cURL string in the browser to generate code; it does not send Requests to the input URL or evaluate Shell Commands, environment variables, or local files.
- Will generated code always produce the same result as the original cURL?
- Not guaranteed. You must check runtime environment differences such as unsupported Options, Library defaults, Browser CORS/Credentials, Cookie Store, Redirects, Proxy, and TLS.