Inicio › Herramientas para desarrolladores › Generador de comandos cURL

Generador de comandos cURL

Crea un comando curl correcto sin memorizar opciones: elige el método, introduce la URL, añade parámetros de consulta, encabezados, un cuerpo JSON, de formulario, multipart o de archivo, la autenticación y las opciones. El comando se actualiza mientras escribes, se entrecomilla correctamente para Bash, CMD de Windows o PowerShell e incluye una vista previa de la petición HTTP sin procesar.

Última actualización:

Empezar desde:

Los valores se codifican como URL automáticamente. Las cadenas de consulta escritas en la URL se mueven aquí automáticamente.

Tu comando curl


Vista previa de la petición HTTP

El comando se crea localmente en tu navegador. No se envía nada: esta página nunca contacta con la URL que introduces.

Publicidad
Publicidad

Cómo usar Generador de comandos cURL

  1. Elige un punto de partida como API JSON con GET, POST JSON o Subir un archivo, o empieza en blanco.
  2. Define el método y la URL y luego añade parámetros de consulta y encabezados en sus pestañas.
  3. Añade un cuerpo en la pestaña Cuerpo: JSON, un formulario, campos y archivos multipart, texto sin procesar o un archivo binario.
  4. Configura la autenticación y las opciones, como seguir redirecciones, tiempos de espera, reintentos o un archivo de salida.
  5. Elige tu shell (Bash, CMD o PowerShell), revisa los avisos, pulsa Copiar comando y pégalo en tu terminal.

Opciones comunes de curl de un vistazo

CortaLargaQué hace
-X--requestDefine el método HTTP (PUT, PATCH, DELETE…)
-H--headerAñade un encabezado a la petición; -H 'Name;' lo envía con un valor vacío
-d--dataEnvía un cuerpo codificado como formulario y cambia a POST
--jsonEnvía JSON con los encabezados Content-Type y Accept correctos (curl 7.82+)
-F--formCampo multipart; name=@file sube un archivo
-u--userCredenciales de autenticación Basic como user:password
-L--locationSigue las redirecciones 3xx
-i--includeMuestra los encabezados de la respuesta antes del cuerpo
-I--headEnvía una petición HEAD y muestra solo los encabezados
-o--outputGuarda la respuesta en un archivo
-f--failSale con un error (código 22) ante HTTP 400 o superior, útil en scripts
-sS--silent --show-errorOculta el indicador de progreso, pero sigue mostrando los errores
-m--max-timeSe rinde tras este número total de segundos
-w--write-outMuestra variables como %{http_code} o %{time_total} después de la transferencia

Reglas de entrecomillado por shell

  • Bash y zsh: las comillas simples mantienen todo literal, así que el JSON se puede pegar tal cual. Una comilla simple dentro del valor se escribe como '\''. Las variables como $API_TOKEN solo se expanden dentro de comillas dobles.
  • CMD de Windows: solo funcionan las comillas dobles, y las comillas dobles internas se convierten en \". Usa ^ al final de una línea para continuar el comando. Los cuerpos JSON largos son más fáciles de mantener en un archivo: -d @body.json.
  • PowerShell: llama a curl.exe, no a curl. Las comillas simples son literales (una comilla interna se duplica), un acento grave continúa la línea y $env:NAME lee una variable de entorno. Antes de PowerShell 7.3, las comillas dobles incrustadas también deben escaparse como \".

¿Necesitas la misma petición en Python, JavaScript o PHP? Pega el comando terminado en el Conversor de cURL a código.

Preguntas frecuentes

¿Cómo envío JSON con curl?

Define el encabezado Content-Type y pasa el cuerpo con --data-raw (o -d): curl -H 'Content-Type: application/json' --data-raw '{"name":"Ada"}' https://api.example.com/users. Desde curl 7.82 puedes usar --json '{...}', que además define Accept: application/json y usa POST automáticamente.

¿Por qué no hay -X POST en mi comando?

curl cambia a POST por sí solo cuando pasas -d, --data-raw, --data-urlencode o -F, así que -X POST es redundante. Añadir -X POST no hace daño, pero combinar -X con -L puede mantener el método incorrecto tras una redirección, por eso el generador solo añade -X cuando cambia algo.

¿Qué diferencia hay entre -d, --data-raw, --data-urlencode y -F?

-d envía los datos como application/x-www-form-urlencoded y trata una @ inicial como nombre de archivo. --data-raw es igual, pero nunca lee archivos. --data-urlencode codifica el valor por ti. -F envía multipart/form-data, necesario para subir archivos con name=@ruta.

¿Por qué falla mi comando curl en PowerShell?

En Windows PowerShell 5.1, curl es un alias de Invoke-WebRequest, así que debes llamar a curl.exe. Las versiones de PowerShell anteriores a la 7.3 también eliminan las comillas dobles de los argumentos que se pasan a los programas, por lo que el JSON necesita escapes \". Elige la opción de PowerShell adecuada y el generador se encarga de ambas cosas.

¿Cómo subo un archivo con curl?

Para una subida de formulario al estilo HTML usa multipart: curl -F 'file=@./photo.jpg' -F 'title=Holiday' https://example.com/upload. Para enviar el archivo como cuerpo de la petición sin procesar usa --data-binary @archivo con un encabezado Content-Type, o -T archivo para una subida con PUT.

¿Es seguro poner tokens en un comando curl?

Funciona, pero el comando, incluido el token, se guarda en el historial de tu shell y puede aparecer en las listas de procesos. Marca Usar variables de entorno para hacer referencia a $API_TOKEN, $API_PASSWORD o $API_KEY y defínelas antes en tu sesión.

¿Esta herramienta envía la petición?

No. Solo crea el texto del comando en tu navegador y nunca contacta con la URL. Ejecuta el comando en tu propia terminal o usa un probador de peticiones API si quieres enviarla desde el navegador.

¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?

Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.

Herramientas relacionadas

Ver todas las de Generadores de código →