curl to Code
Convert a curl command into ready-to-use request code for Fetch, Axios, Python requests, Go and Java. Parses method, URL, headers, body and basic auth automatically.
How to use
Purpose
Online curl command converter. Translate `curl -X POST -H "Content-Type: application/json" -d "{...}" "https://..."` to JavaScript fetch / axios, Python requests / httpx, Java HttpClient, Go net/http, PHP cURL. Smart parsing of -X method, -H headers, -d data, -b cookie, -u auth, --data-urlencode, @file references. Reverse: code snippet back to curl command. Common for DevTools Network curl migration, API doc example generation. All conversion runs locally.
Steps
- Paste curl command (multi-line with backslash continuation supported)
- Pick target language: fetch / axios / Python requests / httpx / Java HttpClient / Go / PHP
- Right pane shows the converted code
- Preserves headers / body / auth / cookies
- Smart multi-line curl handling
- Environment variable extraction: tokens / API keys as constants for reuse
- Reverse: paste code snippet (fetch / axios) back to curl
- One-click copy code
FAQ
- Does the curl from browser DevTools work directly?
- Usually yes (macOS/Linux terminals). Windows PowerShell’s curl is an alias for Invoke-WebRequest and is incompatible — install real curl or use Git Bash. Note: Chrome’s curl includes all browser headers (User-Agent / Accept-Language / Cookie etc.). Keep what you need when porting; cookies are usually essential for auth.
- fetch or axios?
- fetch (browser-native): no install needed, but API is unfriendly (response.json() needs another await, no built-in timeout — use AbortController, errors do not throw, must check ok). axios (library): friendly API (one-line response), timeout / interceptors / progress callbacks. New projects: fetch (one less dep) + custom wrapper; legacy: stay with axios; Node.js: axios or undici.
- curl -d "key1=value1&key2=value2" → JS?
- -d defaults to application/x-www-form-urlencoded. fetch: `fetch(url, { method:"POST", headers:{"Content-Type":"application/x-www-form-urlencoded"}, body:"key1=value1&key2=value2" })`. axios: `axios.post(url, "key1=value1&key2=value2", { headers:{"Content-Type":"application/x-www-form-urlencoded"} })`. Cleaner: use URLSearchParams.
- File upload curl → JS?
- curl -F "file=@/path/to/file" is multipart/form-data. JS fetch: const fd = new FormData(); fd.append("file", fileBlob); fetch(url, { method:"POST", body: fd }); Do NOT manually set Content-Type — browser adds multipart boundary automatically.
- Complex curl (many headers / cookies) accuracy?
- Tool parses per shell syntax, correctly handling: 1) quote escaping (single / double / backslash); 2) line continuation; 3) multiple -H accumulation; 4) multiple -b cookies; 5) --data-urlencode. Known limits: 1) complex shell expressions ($(date), backticks) treated literally; 2) some curl options (--resolve / --interface) have no code equivalent and are skipped.
Use cases
- Browser Network migration: copy curl from DevTools → code
- API doc generation: one curl → multi-language examples
- Debug to prod: Postman / curl works → migrate to production code
- AI assistant prompts: convert curl to fetch for ChatGPT / Copilot
- Reverse: code snippet → curl command for terminal testing
Use cases
Browser curl migration, API doc multi-language, debug-to-prod, AI prompts, code-to-curl reverse. Frontend, backend, QA, technical writers. Multi-language, smart parsing, bidirectional are the differentiators.