Tech

Conversor de cURL a código

Pegá un comando cURL y te devolvemos el código equivalente en JavaScript (fetch), Node.js o Python (requests). Método, headers, body JSON, auth y cookies incluidos.

Instantáneo🔒En tu navegadorSin registro
En vivo
Código generado

Pasá un comando cURL a código en segundos

Casi toda la documentación de APIs muestra los ejemplos como comandos cURL: son cortos, universales y funcionan desde cualquier terminal. El problema aparece cuando querés llevar esa petición a tu aplicación real y tenés que traducir a mano el método, cada cabecera, el cuerpo y la autenticación. Esta herramienta hace ese trabajo por vos: pegás el curl tal cual lo copiaste de la documentación, de Postman o del "Copy as cURL" de Chrome DevTools, elegís el lenguaje de destino y obtenés el snippet listo para pegar. Soporta los flags más habituales (-X, -H, -d, -u, -b, --compressed, -F, -L), detecta cuándo el body es JSON y lo formatea, y arma la autenticación básica cuando encuentra -u. Todo corre en tu navegador, así que podés convertir peticiones con tokens sin que nada salga de tu equipo. Ideal para probar rápido un endpoint, migrar un ejemplo de la doc a tu backend o entender qué hace un comando que te pasaron.

Cómo lee tu comando

El conversor tokeniza el comando respetando las comillas simples y dobles, igual que lo haría una terminal, y también entiende la continuación de línea con barra invertida. Es decir, un comando escrito en varias líneas como este se interpreta como uno solo:

curl https://api.example.com/login \\
  -H "Content-Type: application/json" \\
  -d '{"user":"ana","pass":"1234"}'

A partir de los tokens, el parser separa la URL, el método (si no hay -X, usa GET, o POST cuando hay body), las cabeceras y el cuerpo. Si el body arranca con o [ y es JSON válido, lo formatea con indentación para que quede prolijo en el código generado.

Qué genera para cada lenguaje

  • JavaScript (fetch): estilo navegador, con fetch(url, options) y encadenado .then() / .catch(). La autenticación básica usa btoa().
  • Node.js: el fetch nativo de Node 18 o superior, dentro de una función async con await. La auth básica usa Buffer.from(...).
  • Python (requests): usa la librería requests, con json= cuando el body es JSON, data= cuando es texto plano, auth=(user, pass) para -u y files= para -F.

Tabla de referencia: flags de cURL y su equivalente

FlagQué haceEquivalente en fetch / requests
-X, --requestFija el método HTTP (GET, POST, PUT...).method: "POST" / requests.post()
-H, --headerAgrega una cabecera Clave: Valor.clave en headers / dict headers
-d, --dataCuerpo de la petición (implica POST).body / data= o json=
-u, --userAutenticación básica user:pass.Authorization: Basic / auth=(u, p)
-b, --cookieEnvía cookies con la petición.cabecera Cookie / cookies=
--compressedPide la respuesta comprimida (gzip).Accept-Encoding (fetch lo maneja solo)
-F, --formEnvío multipart/form-data.FormData / files=
-L, --locationSigue las redirecciones (3xx).redirect: "follow" / allow_redirects=True

Para qué sirve en el día a día

  • Migrar un ejemplo de la documentación de una API a tu backend o frontend.
  • Reproducir en código una petición que capturaste con "Copy as cURL" en DevTools.
  • Pasar una petición de Postman o Insomnia a un script de Python.
  • Entender qué hace un comando curl largo que te compartieron.
  • Probar rápido un endpoint sin escribir el boilerplate de fetch o requests a mano.

Preguntas frecuentes

¿Cómo saco el comando cURL desde Chrome DevTools?

Abrí DevTools (F12) > pestaña Network, recargá y reproducí la acción. Clic derecho sobre la petición > "Copy" > "Copy as cURL". Pegá ese comando acá.

¿Se sube mi comando cURL a algún servidor?

No. Todo el parseo ocurre en tu navegador con JavaScript. El comando nunca sale de tu equipo, así que podés convertir peticiones con tokens sin riesgo.

¿Soporta subidas de archivos con -F (multipart)?

Sí. Los flags -F / --form se traducen a FormData en JavaScript y Node, y a files= en Python. Los campos con @ generan un placeholder para tu archivo.

¿Qué pasa con las cookies y la autenticación?

-u user:pass se vuelve una cabecera Authorization Basic (o auth=() en Python) y -b / --cookie se traduce a una cabecera Cookie. Las cabeceras de -H se copian tal cual.

¿Por qué mi comando con caracteres especiales falla?

El parser respeta comillas y la continuación de línea, pero si mezclás comillas sin escapar o pegaste un fragmento sin la URL, el resultado queda incompleto. Revisá que las comillas estén balanceadas.

¿Qué lenguajes puedo generar?

Tres: JavaScript con fetch (navegador), Node.js con fetch nativo (async/await) y Python con requests. Cambiás con las pestañas y se regenera al instante.

¿Puedo pegar un cURL de Postman o Insomnia?

Sí. Esas herramientas exportan la petición como cURL; ese comando funciona igual que uno escrito a mano.

¿Qué método HTTP usa si no hay -X?

GET por defecto, igual que cURL. Pero si hay body (-d) o formulario (-F), asume POST. Podés forzar cualquier método con -X.

¿Te sirvió este generador?