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:
Los valores se codifican como URL automáticamente. Las cadenas de consulta escritas en la URL se mueven aquí automáticamente.
Para un campo de archivo, elige Archivo e introduce la ruta local tal como debe aparecer en el comando (por ejemplo, ./photo.jpg).
Se envía byte a byte con --data-binary @file. Usa PUT con -T file marcando "Subir con -T" en Opciones.
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.
Cómo usar Generador de comandos cURL
- Elige un punto de partida como API JSON con GET, POST JSON o Subir un archivo, o empieza en blanco.
- Define el método y la URL y luego añade parámetros de consulta y encabezados en sus pestañas.
- Añade un cuerpo en la pestaña Cuerpo: JSON, un formulario, campos y archivos multipart, texto sin procesar o un archivo binario.
- Configura la autenticación y las opciones, como seguir redirecciones, tiempos de espera, reintentos o un archivo de salida.
- 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
| Corta | Larga | Qué hace |
|---|---|---|
-X | --request | Define el método HTTP (PUT, PATCH, DELETE…) |
-H | --header | Añade un encabezado a la petición; -H 'Name;' lo envía con un valor vacío |
-d | --data | Envía un cuerpo codificado como formulario y cambia a POST |
--json | Envía JSON con los encabezados Content-Type y Accept correctos (curl 7.82+) | |
-F | --form | Campo multipart; name=@file sube un archivo |
-u | --user | Credenciales de autenticación Basic como user:password |
-L | --location | Sigue las redirecciones 3xx |
-i | --include | Muestra los encabezados de la respuesta antes del cuerpo |
-I | --head | Envía una petición HEAD y muestra solo los encabezados |
-o | --output | Guarda la respuesta en un archivo |
-f | --fail | Sale con un error (código 22) ante HTTP 400 o superior, útil en scripts |
-sS | --silent --show-error | Oculta el indicador de progreso, pero sigue mostrando los errores |
-m | --max-time | Se rinde tras este número total de segundos |
-w | --write-out | Muestra 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_TOKENsolo 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 acurl. Las comillas simples son literales (una comilla interna se duplica), un acento grave continúa la línea y$env:NAMElee 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.