How this converter works
cURL is shorthand for a raw HTTP request: method, URL, headers, and an optional body. The converter tokenizes the command the way your shell would (single, double and $'...' quotes, backslash continuations, and the ^ escapes of Windows "Copy as cURL (cmd)"), then rebuilds the request in the idioms of the target language instead of doing a mechanical string swap.
That matters because every client has different defaults. curl only follows redirects with -L, sends -d bodies as application/x-www-form-urlencoded, and never fails on a 404 unless told to. requests, fetch, Go and HttpClient follow redirects by default; httpx, PHP's curl extension and Java's HttpClient don't; Net::HTTP never does. The generated code sets the right flags and comments on any mismatch, so you don't ship a request that behaves differently from the command you tested.
Everything curl commonly sends is translated: JSON bodies become dicts or objects, -F builds real multipart uploads, -d @file and -T read the file, -u becomes basic auth, -b becomes cookies, -x a proxy, -k turns off certificate checks (with a warning), -m a timeout. Flags that can't be expressed are listed as warnings, and the Parsed request panel shows exactly what curl would send.
Commands copied from devtools are full of live tokens. Turn on "Secrets from env vars" and Authorization headers, API-key headers and query parameters, -u passwords and session cookies are replaced with environment variable lookups (os.environ, process.env, os.Getenv...), with the values listed so you can export them. Nothing is uploaded: the parser runs entirely in this tab.
Frequently asked
Is my cURL command sent to a server?
No. Parsing and code generation happen in your browser with JavaScript. That matters because cURL commands usually contain live API keys and bearer tokens.
Which languages and libraries are supported?
Python with requests, httpx, aiohttp or the standard library's urllib; JavaScript with fetch or axios (async/await or .then chains); Go net/http; Rust reqwest; PHP's curl extension; Ruby Net::HTTP; Java 11+ HttpClient; C# HttpClient; PowerShell Invoke-WebRequest/Invoke-RestMethod; and the HTTPie command line.
How do I keep tokens out of the generated code?
Enable "Secrets from env vars". Bearer and basic credentials, API-key style headers and query parameters, -u passwords and session-like cookies become environment variable lookups such as os.environ["API_TOKEN"]. The Environment variables panel lists each name with its value so you can export it.
Which cURL flags are supported?
Method, URL, headers, -d/--data-raw/--data-binary/--data-urlencode/--json (including @file), -F multipart fields and files, -T uploads, -G, --url-query, -u and URL credentials, --oauth2-bearer, -b cookies, -A, -e, -x/-U proxies, -k, -L, -I, -m and --compressed. Unsupported flags are listed as warnings instead of being silently dropped.
Does it handle multiple -d flags?
Yes. Multiple data flags are joined with ampersands, which is how curl builds a form body. If the content type is JSON, the payload is kept as one JSON document and turned into a native object where the language makes that idiomatic.
Why does the code fail on 404s when curl doesn't?
Raising on 4xx/5xx is what you almost always want in a program, so "Fail on HTTP errors" is on by default (curl behaves this way with -f). Turn it off to get curl's exact behaviour of returning the error response.