Pega un comando cURL, revisa la petición normalizada (método, URL, cabeceras y cuerpo) y copia el código cURL, fetch o axios. Lo que la página no puede reproducir se avisa antes de copiar.
Se ejecuta localmente en tu navegadorSupports common -X, -H, -d, --url, -u, e -b opciones. Solo lee el comando que pegas.
Import a cURL command or complete the request fields.
Import a cURL command or complete the request fields.
Import a cURL command or complete the request fields.
La conversión conserva el método, la URL, las cabeceras y el body introducidos. Revisa credenciales, cookies, redirecciones, tratamiento de respuestas y URL específicas del entorno antes de añadir el código a tu aplicación.
Pega un comando cURL y la página rellena los campos de la petición que están sobre los paneles de código: método, URL, una cabecera por línea y el cuerpo. Los tres paneles muestran después la misma petición como comando cURL, como código fetch del navegador y como llamada a axios, de modo que puedes pasar a JavaScript un comando que ya probaste en la terminal.
El análisis, la codificación y la generación del código se ejecutan en esta pestaña. La página no envía la petición ni llama a la URL: mientras la herramienta trabaja no sale ninguna petición del navegador. Un comando pegado suele llevar una cabecera Authorization, una cookie de sesión o una clave de API, así que trátalo como un secreto: se queda en la página, pero también queda visible en los campos y en el código generado.
El importador lee las opciones que definen la petición: -X/--request para el método, -H/--header, -d/--data con sus variantes -raw, -binary y -ascii, --data-urlencode, --json, --url, -u/--user para HTTP Basic, -b/--cookie, -A/--user-agent, -e/--referer e -I/--head. Las opciones cortas admiten el valor pegado, así que -XPOST y -H'Accept: text/html' funcionan, y las banderas se pueden agrupar, como en -sS o -kL. Varios valores -d se unen con & igual que en curl, y --data-urlencode codifica en porcentaje todo lo que queda fuera del conjunto no reservado, de modo que --data-urlencode 'q=a b&c' produce el cuerpo q=a%20b%26c.
Las banderas que solo afectan a cómo se ejecuta curl —-o/--output, -m/--max-time, --retry, -L, -k, -s, --compressed, --http2 y similares— se aceptan y se ignoran, porque el código generado no tiene equivalente. Todo lo que cambiaría la petición de un modo que los fragmentos no pueden expresar se avisa en lugar de descartarse en silencio: -F/--form, -T/--upload-file, -G/--get, -x/--proxy, certificados de cliente, --netrc, valores con @file en -d, -H y -b, una cabecera sin dos puntos y las opciones desconocidas aparecen en la lista «Se omitió:».
El panel de cURL se compone desde los campos, no se copia: una opción por línea con --request, --url, --header para cada cabecera y --data para el cuerpo, con comillas simples en cada valor. El panel de fetch emite fetch(url, {…}) con el método, un objeto de cabeceras y un cuerpo; cuando una cabecera Content-Type contiene «json», el cuerpo se escribe como JSON.stringify({…}) para que la petición conserve su forma y, si no, se emite como cadena JSON. El panel de axios sigue las mismas reglas con el método en minúsculas, url, headers y data, de modo que los dos fragmentos de JavaScript se pueden comparar línea a línea.
El método sale del comando: GET por defecto, POST cuando hay cuerpo, y -I pone HEAD salvo que un -X explícito lo sustituya. Los nombres de cabecera repetidos se unen en una sola clave en el objeto de los paneles de fetch y axios, mientras que el panel de cURL conserva todas las líneas. La validación de la URL acepta lo que un navegador puede llamar: una URL absoluta con esquema. Si el esquema no es http:// o https://, los fragmentos se generan igualmente pero la línea de estado avisa de que solo cURL podrá ejecutar la petición.
La conversión va en una sola dirección. Un comando cURL (o una petición escrita a mano) se convierte en código cURL, fetch y axios; la página no puede leer código fetch o axios y devolverlo a un comando cURL. Tampoco ejecuta la petición, así que aquí no se comprueba si un endpoint responde, qué código de estado devuelve ni si un token sigue siendo válido.
Hay partes de un comando que no pueden pasar a un fragmento del navegador. curl puede leer un cuerpo, una cabecera o una cookie de un archivo, construir un formulario multipart, usar un proxy o presentar un certificado de cliente; una página no llega a tu sistema de archivos ni a tu configuración de proxy, y un cuerpo multipart escrito a mano necesitaría un boundary. Esas opciones se enumeran en lugar de adivinarse, así que el código generado conserva solo lo reproducible y el resto se queda en tu terminal. Cuando un comando use una de ellas, ejecuta curl para esa parte y usa esta página para lo que sí se puede trasladar.