Conversor cURL a Código
Convierte curl a fetch, Python, PHP, Node, Java, C# y más. Pega un 'Copy as cURL' de Chrome DevTools y oculta las API keys con un clic. 100% local.
Sobre el Conversor cURL a Código
Pega un comando cURL y obtén al instante código equivalente en JavaScript (fetch / axios / XHR), Python (requests), PHP (cURL), Node.js (https), Go (net/http), Ruby (Net::HTTP), Java (HttpClient), C# (HttpClient), Rust (reqwest) o Swift (URLSession). La herramienta interpreta fielmente los flags de cURL — -X, -H, -d, --data-urlencode, -F, -u, -b, --cookie, -A, --compressed, -L, -k, -G — para que el código generado coincida exactamente con la petición que enviaría tu terminal.
¿Cómo funciona el conversor cURL a código?
Tokeniza tu comando cURL exactamente como lo haría una shell (respetando comillas, escapes y continuaciones de línea), interpreta los flags como un objeto de petición (URL, método, cabeceras, cuerpo, auth, cookies) y luego renderiza ese objeto como código idiomático en el lenguaje destino. Todo el proceso ocurre en el navegador — sin viaje al servidor y sin que tus datos salgan de tu máquina.
¿Qué flags de cURL están soportados?
-X / --request, -H / --header, -d / --data / --data-ascii / --data-raw / --data-binary, --data-urlencode, -F / --form, -u / --user, -b / --cookie, -A / --user-agent, -e / --referer, -L / --location, -k / --insecure, -G / --get, --compressed, --url. Los flags que no afectan al código generado (-s, -v, -i, -I, -o, --http2) se reconocen y se ignoran de forma segura.
¿Puedo pegar un cURL con saltos de línea (\)?
Sí. El parser colapsa los pares barra-invertida-nueva-línea antes de tokenizar, así que puedes pegar directamente un comando cURL multilínea copiado de Chrome DevTools, Postman o el historial de tu terminal.
¿Detecta los cuerpos JSON?
Cuando el cuerpo parece un objeto o array JSON y se parsea correctamente, el conversor añade automáticamente la cabecera Content-Type: application/json en el código generado (a menos que ya la hayas puesto con -H). En Python usa json= en lugar de data= para que requests serialice el cuerpo por ti.
¿Cómo se gestionan las subidas multipart (-F)?
El conversor emite FormData (JS), un par {data, files} (Python), entradas CURLFile (PHP) o la construcción multipart equivalente en cada lenguaje. Los campos que empiezan por @ se reconocen como rutas a archivos y el código generado incluye una línea de placeholder para adjuntarlo.

¿Y -u para HTTP basic auth?
-u usuario:contraseña se traduce al API de auth idiomático de cada lenguaje: Basic + base64 en fetch/XHR/Node, auth=(user,pass) en Python, CURLOPT_USERPWD en PHP, SetBasicAuth en Go, basic_auth() en Ruby/Rust, AuthenticationHeaderValue en C#, y cabecera Authorization base64 en Java/Swift.
¿Por qué la salida para -G es diferente?
Cuando cURL ve -G (o --get), traslada los datos de -d al URL como query string en lugar de enviarlos como cuerpo. El conversor hace lo mismo: los datos de -d se añaden al URL con ? o & y la petición se convierte en GET sin cuerpo — coincidiendo con el comportamiento real de cURL.
¿Puedo copiar un cURL de Chrome DevTools y convertirlo?
Sí — es el caso de uso más común. Abre DevTools → pestaña Network → clic derecho en una petición → Copy → Copy as cURL (bash). Pégalo en el cuadro de entrada. La herramienta gestiona todo el escapado, cabeceras, cookies y cuerpos que genera Chrome y produce código limpio en el lenguaje de tu elección.
¿Es seguro pegar un cURL con API keys o tokens?
Sí. La conversión es 100% en el cliente — tu comando cURL, las cabeceras Authorization, las cookies y las credenciales Basic-auth se analizan completamente en tu navegador y nunca se envían a ningún servidor. Para mayor seguridad cuando vayas a subir o compartir el snippet, marca la casilla 'Ocultar credenciales': enmascara Authorization, api-key, token, cookie y las credenciales de -u y las reescribe como un acceso a variable de entorno (process.env.API_TOKEN en JS/Node, os.environ['API_TOKEN'] en Python, getenv('API_TOKEN') en PHP, os.Getenv en Go, ENV[] en Ruby, System.getenv en Java, etc.), de modo que ningún secreto real acabe en el código generado.
fetch vs axios vs XHR — ¿cuál elegir?
Usa fetch para navegadores modernos y entornos edge/serverless — viene integrado, se basa en promesas y no necesita dependencias. Usa axios cuando quieras parseo automático de JSON, interceptores de petición/respuesta, timeouts y soporte amplio en Node y navegador (añade una dependencia). Elige XHR solo para entornos antiguos sin fetch. Para el destino Node.js (https) obtienes el módulo nativo sin dependencias, mientras que axios en Node también funciona en el servidor — elige axios por más funciones, o fetch nativo / https por el menor peso.
Características
- 12 lenguajes y librerías de destino — fetch, axios, XHR, Python requests, PHP cURL, Node.js, Go, Ruby, Java, C#, Rust, Swift
- Maneja el escapado de shell: comillas simples, dobles, escapes, continuación de línea (\), cadenas ANSI $'...'
- Reconoce más de 25 flags de cURL incluyendo -X, -H, -d, --data-raw, --data-urlencode, --data-binary, -F, --form, -u, --user, -b, --cookie, -A, -e, -L, -k, -G, --compressed
- Detecta automáticamente cuerpos JSON y emite el Content-Type correcto
- Multipart form-data (-F) genera FormData / files = {} / CURLFile listo para usar
- Basic auth (-u usuario:contraseña) se mapea al API idiomático de cada lenguaje
- Consolidación de cookies de múltiples flags -b en una única cabecera Cookie
- -G + -d traslada los datos al query string igual que hace cURL
- Conversión en tiempo real — cambia de pestaña y el código se actualiza al instante
- Copia y descarga el snippet generado con un clic
- 100% en cliente: tu comando cURL y cabeceras nunca salen del navegador
- Disponible en inglés, español, vietnamita, portugués y francés
