Todas las herramientas
Gratis

Una referencia de curl imprimible y con búsqueda — métodos HTTP, encabezados, datos y formularios, autenticación, descargas, cookies, TLS, proxys y depuración. Gratis.

Conceptos básicos

12
curl https://api.example.com
Enviar una petición GET e imprimir el cuerpo
curl -o page.html https://example.com
Guardar la respuesta en un archivo con nombre
curl -O https://example.com/file.zip
Guardar usando el nombre del archivo remoto
curl -i https://example.com
Mostrar las cabeceras de respuesta junto al cuerpo
curl -I https://example.com
Obtener solo las cabeceras de respuesta (HEAD)
curl -v https://example.com
Salida detallada de la petición/respuesta
curl -s https://example.com
Modo silencioso, oculta progreso y errores
curl -sS https://example.com
Silencioso pero mostrando los errores
curl -L https://example.com
Seguir las redirecciones HTTP (3xx)
curl https://a.com https://b.com
Solicitar varias URLs en una sola llamada
curl 'https://x.com/p?[1-5]'
Usar un rango numérico para recorrer URLs
curl --version
Mostrar la versión y funciones de curl

Métodos HTTP

9
curl -X GET https://api.example.com
Enviar explícitamente una petición GET
curl -X POST https://api.example.com
Enviar una petición POST
curl -X PUT https://api.example.com/1
Enviar una petición PUT para reemplazar un recurso
curl -X PATCH https://api.example.com/1
Enviar una petición PATCH para actualizar campos
curl -X DELETE https://api.example.com/1
Enviar una petición DELETE
curl -I https://api.example.com
Enviar una petición HEAD solo para cabeceras
curl -X OPTIONS https://api.example.com
Enviar una petición preflight OPTIONS
curl --head https://api.example.com
Forma larga de -I para una petición HEAD
curl --request POST https://x.com
Forma larga de -X para establecer el método

Cabeceras

10
curl -H 'Accept: application/json' https://x.com
Añadir una sola cabecera de petición
curl -H 'X-Token: abc' -H 'X-Env: dev' https://x.com
Añadir varias cabeceras
curl -H 'Content-Type: application/json' https://x.com
Declarar el tipo de contenido del cuerpo de la petición
curl -H 'Authorization: Bearer TOKEN' https://x.com
Enviar una cabecera de autorización bearer
curl -H 'Host: example.com' https://1.2.3.4
Sobrescribir la cabecera Host
curl -H 'Accept-Encoding: gzip' https://x.com
Solicitar una respuesta comprimida con gzip
curl -A 'MyAgent/1.0' https://x.com
Establecer la cadena User-Agent
curl -e 'https://ref.com' https://x.com
Establecer la cabecera Referer
curl -H 'X-Debug:' https://x.com
Quitar una cabecera por defecto dejándola vacía
curl --compressed https://x.com
Solicitar y descomprimir automáticamente la respuesta

Enviar datos

11
curl -d 'name=Jane&age=30' https://x.com
Enviar por POST datos de formulario URL-encoded
curl -d '@payload.json' https://x.com
Enviar por POST datos leídos de un archivo
curl --data-urlencode 'q=hello world' https://x.com
Enviar por POST un solo campo URL-encoded
curl --data-binary '@file.bin' https://x.com
Enviar por POST bytes en bruto sin procesar
curl -G --data-urlencode 'q=cats' https://x.com
Añadir los datos como cadena de consulta GET
curl -X POST -H 'Content-Type: application/json' -d '{"name":"Jane"}' https://x.com
Enviar por POST un cuerpo JSON
curl --json '{"name":"Jane"}' https://x.com
Enviar JSON por POST y establecer las cabeceras JSON automáticamente
curl -F 'name=Jane' https://x.com
Enviar un campo de formulario multipart
curl -F 'file=@photo.png' https://x.com
Subir un archivo como multipart form-data
curl -F 'file=@a.pdf;type=application/pdf' https://x.com
Subir un archivo con un tipo MIME explícito
curl -d '' https://x.com
Enviar por POST con un cuerpo vacío

Autenticación

9
curl -u user:pass https://x.com
Autenticación HTTP básica
curl -u user https://x.com
Auth básica, solicitar la contraseña
curl -H 'Authorization: Bearer TOKEN' https://x.com
Enviar una cabecera de token bearer
curl --oauth2-bearer TOKEN https://x.com
Enviar un token bearer OAuth 2.0
curl --digest -u user:pass https://x.com
Usar autenticación HTTP digest
curl --ntlm -u user:pass https://x.com
Usar autenticación NTLM
curl --netrc https://x.com
Leer las credenciales de ~/.netrc
curl --netrc-file creds https://x.com
Leer las credenciales de un archivo netrc personalizado
curl -H 'X-Api-Key: KEY' https://x.com
Enviar una cabecera de clave API

Descargar y subir

11
curl -O https://x.com/file.zip
Descargar usando el nombre del archivo remoto
curl -o out.zip https://x.com/file.zip
Descargar a un nombre de archivo elegido
curl -OL https://x.com/file.zip
Descargar siguiendo las redirecciones
curl -C - -O https://x.com/file.zip
Reanudar una descarga parcial
curl --limit-rate 200k -O https://x.com/f
Limitar la velocidad de transferencia
curl -r 0-1023 -o part https://x.com/f
Descargar solo un rango de bytes
curl --retry 3 -O https://x.com/f
Reintentar la descarga en caso de fallo
curl -T file.txt ftp://x.com/
Subir un archivo con PUT/FTP
curl -T file.txt https://x.com/up
Subir un archivo mediante HTTP PUT
curl --create-dirs -o a/b/f.txt https://x.com
Crear los directorios que falten para la salida
curl -# -O https://x.com/file.zip
Mostrar una barra de progreso simple

Cookies

8
curl -b 'session=abc123' https://x.com
Enviar una cookie inline
curl -b cookies.txt https://x.com
Enviar cookies desde un archivo
curl -c cookies.txt https://x.com
Escribir las cookies recibidas en un jar
curl -b jar.txt -c jar.txt https://x.com
Leer y actualizar el mismo jar de cookies
curl -b 'a=1; b=2' https://x.com
Enviar varias cookies a la vez
curl -c - https://x.com
Imprimir las cookies recibidas en stdout
curl --junk-session-cookies -b jar.txt https://x.com
Ignorar las cookies de sesión del jar
curl -L -c jar.txt -b jar.txt https://x.com/login
Mantener una sesión a través de las redirecciones

TLS / SSL

10
curl -k https://x.com
Permitir conexión insegura (omitir verificación de certificado)
curl --cacert ca.pem https://x.com
Verificar con un paquete de CA personalizado
curl --capath /etc/ssl/certs https://x.com
Usar un directorio de certificados CA
curl --cert client.pem https://x.com
Enviar un certificado de cliente
curl --cert client.pem --key client.key https://x.com
Usar un certificado de cliente y una clave privada
curl --tlsv1.2 https://x.com
Requerir al menos TLS 1.2
curl --tlsv1.3 https://x.com
Requerir al menos TLS 1.3
curl --tls-max 1.2 https://x.com
Limitar la versión máxima de TLS
curl --ciphers ECDHE-RSA-AES128-GCM-SHA256 https://x.com
Restringir los cifrados TLS permitidos
curl -vI https://x.com
Inspeccionar los detalles del handshake TLS

Proxies

9
curl -x http://proxy:8080 https://x.com
Enrutar la petición a través de un proxy HTTP
curl --proxy http://proxy:8080 https://x.com
Forma larga de -x para establecer un proxy
curl -x proxy:8080 -U user:pass https://x.com
Autenticarse en el proxy
curl --proxy-user user:pass -x proxy:8080 https://x.com
Forma larga de las credenciales del proxy
curl --socks5 127.0.0.1:1080 https://x.com
Usar un proxy SOCKS5
curl --socks5-hostname 127.0.0.1:1080 https://x.com
Proxy SOCKS5 con resolución DNS remota
curl --socks4 127.0.0.1:1080 https://x.com
Usar un proxy SOCKS4
curl --noproxy example.com https://x.com
Omitir el proxy para hosts determinados
curl -x '' https://x.com
Deshabilitar cualquier proxy configurado

Depuración y salida

11
curl -w '%{http_code}\n' -o /dev/null -s https://x.com
Imprimir solo el código de estado HTTP
curl -w '%{time_total}\n' -o /dev/null -s https://x.com
Imprimir el tiempo total de transferencia
curl -w '@format.txt' https://x.com
Leer el formato de write-out desde un archivo
curl -D headers.txt https://x.com
Volcar las cabeceras de respuesta a un archivo
curl -D - -o body.txt https://x.com
Cabeceras a stdout, cuerpo a un archivo
curl --trace trace.txt https://x.com
Traza hex completa de la transferencia
curl --trace-ascii - https://x.com
Traza ASCII a stdout
curl --trace-time -v https://x.com
Añadir marcas de tiempo a la salida detallada
curl -v https://x.com 2>&1 | less
Paginar el log detallado
curl -sS -o /dev/null -w '%{size_download}\n' https://x.com
Imprimir el recuento de bytes descargados
curl --libcurl out.c https://x.com
Emitir el código fuente C equivalente de libcurl

Tiempos de espera y reintentos

10
curl --connect-timeout 5 https://x.com
Limitar la fase de conexión en segundos
curl --max-time 30 https://x.com
Limitar el tiempo de toda la operación
curl --retry 3 https://x.com
Reintentar ante errores transitorios
curl --retry 3 --retry-delay 2 https://x.com
Esperar entre intentos de reintento
curl --retry 5 --retry-max-time 60 https://x.com
Acotar el tiempo total dedicado a reintentar
curl --retry-connrefused https://x.com
Reintentar también si se rechaza la conexión
curl --retry-all-errors https://x.com
Reintentar ante cualquier error, no solo los transitorios
curl --speed-limit 100 --speed-time 10 https://x.com
Abortar si es demasiado lento durante un periodo
curl --keepalive-time 60 https://x.com
Establecer el intervalo de keep-alive de TCP
curl --expect100-timeout 1 https://x.com
Limitar la espera de un 100-continue

Ninguna entrada coincide con “:q”.


¿Necesitas ayuda?
¿Encontraste un problema con esta herramienta? Avísanos.
Informar de un problema

Añade esta herramienta gratuita a tu propio sitio web: copia y pega el código de abajo.