Generador de comandos curl
Especifica el método HTTP, la URL, las cabeceras, el cuerpo y el método de autenticación en el formulario para generar un comando curl listo para copiar y ejecutar. Como la petición nunca se envía realmente, no hay restricciones de CORS.
Opciones de curl más usadas
| Opción | Descripción |
|---|---|
| -X, --request <method> | Especifica el método HTTP (GET, POST, PUT, PATCH, DELETE, etc.). Si se omite, se usa GET cuando no hay cuerpo y POST cuando sí lo hay. |
| -H, --header <header> | Añade una cabecera de petición. Repite -H para añadir varias. |
| -d, --data <data> | Envía un cuerpo de petición. Si no se especifica -X, se envía automáticamente como POST con Content-Type: application/x-www-form-urlencoded. |
| -u, --user <user:password> | Especifica el usuario y la contraseña para la autenticación Basic en formato "user:password". |
| -k, --insecure | Omite la verificación del certificado SSL. Pensado para entornos de desarrollo con certificados autofirmados. No recomendado en producción. |
| -L, --location | Sigue automáticamente el destino indicado por la cabecera Location cuando el servidor responde con una redirección 3xx. |
| -v, --verbose | Muestra el intercambio detallado de la petición y la respuesta, incluidas las cabeceras, en la salida de error estándar. Útil para depurar. |
| --compressed | Añade una cabecera Accept-Encoding, solicitando y descomprimiendo automáticamente respuestas comprimidas con gzip u otros métodos. |
| -o, --output <file> | Guarda el cuerpo de la respuesta en el archivo indicado en lugar de la salida estándar. |
| -F, --form <name=content> | Envía datos de formulario o archivos en formato multipart/form-data. Especifica "@ruta_del_archivo" para subir archivos. |
Consejos
- El comando generado se puede pegar directamente en una terminal, script de shell o archivo de configuración de CI/CD y ejecutarse tal cual. Todos los valores ya están escapados con comillas simples.
- Aparece una advertencia si introduces un cuerpo mientras el método sigue siendo GET. Esto se debe a que curl envía automáticamente la petición como POST cuando se usa
-dsin-X, por lo que el aviso ayuda a evitar comportamientos no deseados. - Al marcar "Añadir automáticamente Content-Type: application/json" se agrega la cabecera Content-Type que suele olvidarse al llamar a una API JSON.
- Tanto los valores de autenticación Basic como los del token Bearer se procesan por completo dentro de tu navegador y nunca se envían a ningún servidor.
- El
-kgenerado (omitir la verificación del certificado) es una solución temporal pensada solo para desarrollo local con certificados autofirmados. Evita usarlo de forma permanente contra APIs de producción.
Preguntas frecuentes
-d (datos del cuerpo) sin la opción -X, envía automáticamente la petición como POST. Para el caso poco frecuente en que necesites mantener GET enviando un cuerpo, añade manualmente -X GET al comando generado.
A propósito — por qué curl es la herramienta que todos usan pero casi nadie conoce
curl es una herramienta de línea de comandos para transferir datos mediante URLs, creada en 1996 por el ingeniero sueco Daniel Stenberg. Se originó a partir de un pequeño script que obtenía tipos de cambio para un bot de chat de IRC, y desde entonces ha crecido hasta convertirse en un proyecto enorme compatible con más de 25 protocolos, incluidos HTTP, FTP y SMTP.
curl se considera uno de los programas más utilizados del mundo. Está integrado en prácticamente todos los dispositivos conectados a internet —teléfonos, coches, electrodomésticos, consolas e incluso naves espaciales (se ha usado en misiones de la NASA a Marte)—, con una base instalada estimada en decenas de miles de millones de unidades. A pesar de esta enorme presencia, sigue siendo un ejemplo clásico de infraestructura invisible que casi nadie fuera del ámbito de la programación conoce.
En 2019, Stenberg fue reconocido por la Linux Foundation por sus contribuciones a la tecnología web fundamental. Sigue siendo el mantenedor principal que dirige el desarrollo de curl hoy en día, conocido por preservar cuidadosamente la compatibilidad hacia atrás durante más de dos décadas.
Incluso ahora que herramientas gráficas como Postman están muy extendidas, los comandos curl se siguen usando en archivos README, documentación oficial y pasos de verificación de APIs. La razón es sencilla: curl no requiere instalación y viene preinstalado en casi todos los entornos Linux y macOS, lo que permite ejecutar un solo comando al momento y compartir el resultado con un nivel de reproducibilidad difícil de igualar.