Folha de referência cURL
Uma referência curl pesquisável e imprimível — métodos HTTP, cabeçalhos, dados e formulários, autenticação, transferências, cookies, TLS, proxies e depuração. Grátis.
Básico
12curl https://api.example.com
Envia um pedido GET e imprime o corpo
curl -o page.html https://example.com
Guarda a resposta num ficheiro nomeado
curl -O https://example.com/file.zip
Guarda usando o nome do ficheiro remoto
curl -i https://example.com
Mostra os cabeçalhos da resposta mais o corpo
curl -I https://example.com
Obtém só os cabeçalhos da resposta (HEAD)
curl -v https://example.com
Saída detalhada do pedido/resposta
curl -s https://example.com
Modo silencioso, oculta progresso e erros
curl -sS https://example.com
Silencioso mas ainda mostra erros
curl -L https://example.com
Segue redirecionamentos HTTP (3xx)
curl https://a.com https://b.com
Pede múltiplas URLs numa só chamada
curl 'https://x.com/p?[1-5]'
Usa um intervalo numérico para percorrer URLs
curl --version
Imprime a versão e recursos do curl
Métodos HTTP
9curl -X GET https://api.example.com
Envia explicitamente um pedido GET
curl -X POST https://api.example.com
Envia um pedido POST
curl -X PUT https://api.example.com/1
Envia um pedido PUT para substituir um recurso
curl -X PATCH https://api.example.com/1
Envia um pedido PATCH para atualizar campos
curl -X DELETE https://api.example.com/1
Envia um pedido DELETE
curl -I https://api.example.com
Envia um pedido HEAD só para cabeçalhos
curl -X OPTIONS https://api.example.com
Envia um pedido OPTIONS de preflight
curl --head https://api.example.com
Forma longa de -I para um pedido HEAD
curl --request POST https://x.com
Forma longa de -X para definir o método
Cabeçalhos
10curl -H 'Accept: application/json' https://x.com
Adiciona um único cabeçalho de pedido
curl -H 'X-Token: abc' -H 'X-Env: dev' https://x.com
Adiciona múltiplos cabeçalhos
curl -H 'Content-Type: application/json' https://x.com
Declara o tipo de conteúdo do corpo do pedido
curl -H 'Authorization: Bearer TOKEN' https://x.com
Envia um cabeçalho de autorização bearer
curl -H 'Host: example.com' https://1.2.3.4
Sobrepõe o cabeçalho Host
curl -H 'Accept-Encoding: gzip' https://x.com
Pede uma resposta comprimida em gzip
curl -A 'MyAgent/1.0' https://x.com
Define a string User-Agent
curl -e 'https://ref.com' https://x.com
Define o cabeçalho Referer
curl -H 'X-Debug:' https://x.com
Remove um cabeçalho padrão deixando-o vazio
curl --compressed https://x.com
Pede e descomprime automaticamente a resposta
Enviar dados
11curl -d 'name=Jane&age=30' https://x.com
POST de dados de formulário codificados em URL
curl -d '@payload.json' https://x.com
POST de dados lidos de um ficheiro
curl --data-urlencode 'q=hello world' https://x.com
POST de um único campo codificado em URL
curl --data-binary '@file.bin' https://x.com
POST de bytes brutos sem processamento
curl -G --data-urlencode 'q=cats' https://x.com
Anexa os dados como query string GET
curl -X POST -H 'Content-Type: application/json' -d '{"name":"Jane"}' https://x.com
POST de um corpo JSON
curl --json '{"name":"Jane"}' https://x.com
POST de JSON e define cabeçalhos JSON automaticamente
curl -F 'name=Jane' https://x.com
Envia um campo de formulário multipart
curl -F 'file=@photo.png' https://x.com
Envia um ficheiro como form-data multipart
curl -F 'file=@a.pdf;type=application/pdf' https://x.com
Envia um ficheiro com tipo MIME explícito
curl -d '' https://x.com
POST com um corpo vazio
Autenticação
9curl -u user:pass https://x.com
Autenticação básica HTTP
curl -u user https://x.com
Auth básica, solicita a palavra-passe
curl -H 'Authorization: Bearer TOKEN' https://x.com
Envia um cabeçalho de token bearer
curl --oauth2-bearer TOKEN https://x.com
Envia um token bearer OAuth 2.0
curl --digest -u user:pass https://x.com
Usa autenticação HTTP digest
curl --ntlm -u user:pass https://x.com
Usa autenticação NTLM
curl --netrc https://x.com
Lê credenciais de ~/.netrc
curl --netrc-file creds https://x.com
Lê credenciais de um ficheiro netrc personalizado
curl -H 'X-Api-Key: KEY' https://x.com
Envia um cabeçalho de chave de API
Download e upload
11curl -O https://x.com/file.zip
Baixa usando o nome do ficheiro remoto
curl -o out.zip https://x.com/file.zip
Baixa para um nome de ficheiro escolhido
curl -OL https://x.com/file.zip
Baixa e segue redirecionamentos
curl -C - -O https://x.com/file.zip
Retoma um download parcial
curl --limit-rate 200k -O https://x.com/f
Limita a velocidade de transferência
curl -r 0-1023 -o part https://x.com/f
Baixa apenas um intervalo de bytes
curl --retry 3 -O https://x.com/f
Tenta novamente o download em caso de falha
curl -T file.txt ftp://x.com/
Envia um ficheiro com PUT/FTP
curl -T file.txt https://x.com/up
Envia um ficheiro via HTTP PUT
curl --create-dirs -o a/b/f.txt https://x.com
Cria diretórios em falta para a saída
curl -# -O https://x.com/file.zip
Mostra uma barra de progresso simples
Cookies
8curl -b 'session=abc123' https://x.com
Envia um cookie inline
curl -b cookies.txt https://x.com
Envia cookies de um ficheiro
curl -c cookies.txt https://x.com
Grava os cookies recebidos num jar
curl -b jar.txt -c jar.txt https://x.com
Lê e atualiza o mesmo cookie jar
curl -b 'a=1; b=2' https://x.com
Envia múltiplos cookies de uma vez
curl -c - https://x.com
Imprime os cookies recebidos no stdout
curl --junk-session-cookies -b jar.txt https://x.com
Ignora cookies de sessão do jar
curl -L -c jar.txt -b jar.txt https://x.com/login
Mantém uma sessão entre redirecionamentos
TLS / SSL
10curl -k https://x.com
Permite inseguro (ignora verificação de certificado)
curl --cacert ca.pem https://x.com
Verifica com um pacote CA personalizado
curl --capath /etc/ssl/certs https://x.com
Usa um diretório de certificados CA
curl --cert client.pem https://x.com
Envia um certificado de cliente
curl --cert client.pem --key client.key https://x.com
Usa um certificado de cliente e chave privada
curl --tlsv1.2 https://x.com
Exige no mínimo TLS 1.2
curl --tlsv1.3 https://x.com
Exige no mínimo TLS 1.3
curl --tls-max 1.2 https://x.com
Limita a versão máxima de TLS
curl --ciphers ECDHE-RSA-AES128-GCM-SHA256 https://x.com
Restringe as cifras TLS permitidas
curl -vI https://x.com
Inspeciona os detalhes do handshake TLS
Proxies
9curl -x http://proxy:8080 https://x.com
Encaminha o pedido por um proxy HTTP
curl --proxy http://proxy:8080 https://x.com
Forma longa de -x para definir um proxy
curl -x proxy:8080 -U user:pass https://x.com
Autentica no proxy
curl --proxy-user user:pass -x proxy:8080 https://x.com
Forma longa das credenciais do proxy
curl --socks5 127.0.0.1:1080 https://x.com
Usa um proxy SOCKS5
curl --socks5-hostname 127.0.0.1:1080 https://x.com
Proxy SOCKS5 com resolução DNS remota
curl --socks4 127.0.0.1:1080 https://x.com
Usa um proxy SOCKS4
curl --noproxy example.com https://x.com
Ignora o proxy para certos hosts
curl -x '' https://x.com
Desativa qualquer proxy configurado
Depuração e saída
11curl -w '%{http_code}\n' -o /dev/null -s https://x.com
Imprime apenas o código de status HTTP
curl -w '%{time_total}\n' -o /dev/null -s https://x.com
Imprime o tempo total de transferência
curl -w '@format.txt' https://x.com
Lê o formato write-out de um ficheiro
curl -D headers.txt https://x.com
Despeja os cabeçalhos da resposta num ficheiro
curl -D - -o body.txt https://x.com
Cabeçalhos no stdout, corpo num ficheiro
curl --trace trace.txt https://x.com
Rastreio hex completo da transferência
curl --trace-ascii - https://x.com
Rastreio ASCII no stdout
curl --trace-time -v https://x.com
Adiciona timestamps à saída detalhada
curl -v https://x.com 2>&1 | less
Pagina o log detalhado
curl -sS -o /dev/null -w '%{size_download}\n' https://x.com
Imprime a contagem de bytes baixados
curl --libcurl out.c https://x.com
Emite código C libcurl equivalente
Timeouts e novas tentativas
10curl --connect-timeout 5 https://x.com
Limita a fase de conexão em segundos
curl --max-time 30 https://x.com
Limita o tempo total da operação
curl --retry 3 https://x.com
Tenta novamente em erros transitórios
curl --retry 3 --retry-delay 2 https://x.com
Espera entre tentativas
curl --retry 5 --retry-max-time 60 https://x.com
Limita o tempo total gasto em tentativas
curl --retry-connrefused https://x.com
Também tenta novamente em conexão recusada
curl --retry-all-errors https://x.com
Tenta novamente em qualquer erro, não só transitórios
curl --speed-limit 100 --speed-time 10 https://x.com
Aborta se for demasiado lento por uma duração
curl --keepalive-time 60 https://x.com
Define o intervalo de keep-alive TCP
curl --expect100-timeout 1 https://x.com
Limita a espera por um 100-continue
Nenhuma entrada corresponde a “:q”.
Precisa de ajuda?
Encontrou um problema com esta ferramenta? Avise a nossa equipa.