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.

Armar un comando curl desde un formulario

Indique en el formulario el método, la URL, las cabeceras, el cuerpo y la autenticación y saldrá un comando curl listo para pegar en una terminal y ejecutar. **Esta herramienta nunca envía la petición de verdad, de modo que no la atan las restricciones CORS del navegador:** el comando puede armarse incluso para una API que rechazaría una petición hecha desde una página.

**Lo que hace tropezar en curl es la relación entre método y cuerpo.** Añada un cuerpo con `-d` y **el método pasa a ser POST automáticamente, aunque usted no haya escrito ninguno.** Pretender enviar un PUT o un PATCH aportando solo `-d` dispara, por tanto, un POST no querido. El otro error frecuente es enviar JSON olvidando `Content-Type: application/json`; curl lo manda entonces como `application/x-www-form-urlencoded` y **el servidor no lo lee como JSON en absoluto.** Al pegar el comando generado en una terminal, atienda también al entrecomillado del intérprete: **dentro de comillas simples las variables no se expanden, y dentro de comillas dobles sí.**

Cómo se usa

  1. Indique el método y la URL Elija GET para recuperar y POST para enviar.
  2. Añada sus cabeceras **Si envía JSON, no olvide `Content-Type: application/json`.**
  3. Escriba el cuerpo **Añadir un cuerpo convierte el método en POST automáticamente allí donde no se indicó ninguno.**
  4. Copie el comando y ejecútelo Pegarlo en una terminal es todo lo que hace falta.

Consejos para aprovecharla mejor

  • 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 -d sin -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 -k generado (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.

Cuándo resulta útil

Probar cómo se comporta una API

**Una API que no puede llamar desde el navegador aún puede probarse con curl, sin que CORS lo impida.**

Poner un comando en un documento de procedimiento

Puede dejar constancia de en qué consiste una petición de un modo que cualquiera reproduzca.

Compartir los pasos para reproducir un fallo

**Entregar a alguien un comando que ejecutar rinde una reproducción mucho menos afectada por las diferencias de entorno.**

Aprender las opciones de curl

Puede ver en qué opción se convierte cada campo del formulario.

Términos de curl

-X
Indica el método de forma explícita. **Como `-d` lo convierte en POST aunque se omita, esto es lo que hace falta para PUT o DELETE.**
-H
Añade una cabecera. Escríbalo varias veces y se adjuntarán otras tantas.
-d
Indica el cuerpo de la petición. **Escribirlo convierte el método en POST, y el tipo de contenido por defecto pasa a ser la codificación de formulario.**
-u
Indica el usuario y la contraseña de la autenticación básica, escritos como `usuario:contraseña`.
Token Bearer
El esquema que envía las credenciales como `Authorization: Bearer ...`. Muchísimas API adoptan esta forma.
-i y -v
Muestran las cabeceras de respuesta y los detalles del intercambio. **Ambas se ganan su sitio cuando algo no funciona.**

Preguntas frecuentes

No. Esta herramienta solo construye la cadena del comando y nunca envía una petición HTTP real. La petición solo se produce cuando copias el comando generado en una terminal y lo ejecutas tú mismo. Si quieres enviar la petición y ver el resultado, usa nuestra herramienta hermana, el "Probador de API REST".

Sí. Si introduces el método, la URL, las cabeceras y el cuerpo de una petición creada en Postman, esta herramienta genera un comando curl que puedes copiar y pegar directamente. Es útil para pegarlo en scripts de CI/CD o en documentación.

Técnicamente sí, pero hay que tener cuidado. Si a curl se le indica -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.

No. Toda la información de autenticación que introduces se procesa por completo mediante JavaScript en tu navegador y nunca se envía al servidor de toolbase.cc. Solo llega a la API real cuando ejecutas tú mismo el comando generado en tu propio entorno.

"-k (--insecure)" omite la verificación del certificado SSL y está pensada únicamente como solución temporal para entornos de desarrollo local con certificados autofirmados. No se recomienda su uso en producción ni en comunicaciones con información sensible, ya que abre la puerta a ataques de intermediario.
Tool-kun

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.