Precisando testar uma API enviando dados para o servidor web, baixar arquivos pelo terminal ou validar se uma página web esta online ? Então você precisa do comando curl.
O comando curl permite realizar requisições de rede diretamente do terminal de forma rápida para testes ou tarefas automatizadas.
Neste artigo, você aprenderá a utilizar o comando curl, com exemplos práticos, desde usos simples até exemplos mais avançados.
Pré-requisitos
Para seguir os conhecimentos técnicos do artigo, você precisará:
- Computador com distribuição linux instalada, como: ubuntu, debian, redhat ou derivados.
- Acesso ao terminal com usuário root ou comando sudo para instalar o comando curl, caso não esteja instalado.
- Está familiarizado com a linha de comando e comandos linux.
Para que serve o comando curl ?
O comando curl é uma ferramenta de linha de comando utilizada para transferir dados de ou para um servidor por meio de diferentes protocolos de rede. Por isso, o curl é bastante utilizado para tarefas de automação via shell script.
Embora seja muito conhecido pelo uso com protocolos HTTP e HTTPS, ele também suporta outros protocolos como: FTP, LDAP, SMB, SMTP, SCP e outros.
O comando curl não vêm instalado por padrão na maioria das distribuições linux atuais, caso precise instala-lo, no debian, ubuntu ou distros derivadas, execute os comandos:
apt update # executar com root
apt install curl -y # executar com rootJá nas distros Red Hat, AlmaLinux e Rocky Linux, instale o pacote curl executando no terminal:
dnf install curl -y # execute com o usuário rootUtilizando o comando curl
Para utilizar o comando curl primeiro é preciso aprender sua sintaxe, que é:
curl [opções] URLExplicação:
curl – É o comando que irá se conectar a um computador remoto para receber ou enviar dados.
opções – São as opções do curl.
URL – É o endereço, incluindo o protocolo.
A tabela a seguir contém opções importantes utilizadas pelo comando curl para uma consulta rápida:
| Opção | Descrição | Exemplos de uso |
|---|---|---|
| -o | Faz o download do arquivo e salva em um arquivo nomeado por você. | curl -o page.html https://site.com |
| -O | Baixa o arquivo e salva sem alterar o nome do arquivo. | curl -O https://site.com.br/file.zip |
| -L | Segue os redirecionamentos existentes. | curl -L https://site.com.br/page |
| -I | Exibe os cabeçalhos de resposta HTTP. | curl -I https://site.com.br |
| -u | Fornece credenciais para autenticação. | curl -u user1:senha https://site.com/login |
As opções informadas na tabela são apenas uma parte dos recursos, para o seu aprendizado sobre o comando curl a seguir tem exemplos práticos de uso explicados em detalhes.
Consultar página do site
O uso mais comum do comando curl é consultar uma página, que pode ser útil para testar a conectividade com o servidor e saber se a página está online. Para isso, basta executar o curl seguido do endereço:
curl https://wikipedia.com
Na prática o resultado é o comando curl exibindo na tela o código HTML da página da web consultada.
Se você precisar enviar solicitações HTTP (ou HTTPS) para várias URLs, é simples, inclua o endereço de cada página como argumento do curl, veja o exemplo:
curl https://site1.com https://site2.comSeguindo redirecionamentos com o comando curl
Muitos sites redirecionam conexões HTTP para HTTPS ou URLs. Por padrão, o curl não segue o redirecionamento a menos que a opção “-L” seja informada.
curl -L https://wikipedia.com
Veja na imagem (incompleta por ser longa) acima, que o código é diferente do primeiro exemplo deste artigo, isso acontece porque o comando curl seguiu os redirecionamentos até o destino e mostrou o código (HTML, CSS e etc) da página de destino.
Baixar arquivo do servidor remoto
O curl também pode ser utilizado para fazer downloads de arquivos ou páginas. Caso você precise baixar um arquivo específico, mantendo o nome, utilize a opção “-O”, por exemplo:
curl -O https://clonezilla.org/downloads/alternative/data/CHECKSUMS.TXT
O comando do exemplo está baixando o arquivo “CHECKSUMS.TXT”, se houver algum redirecionamento, inclua a opção “-L” ao comando curl.
Precisa alterar o nome do arquivo após o download ? Então use a opção “-o” do curl. No exemplo abaixo, após o arquivo ser baixado é renomeado para “hash.txt”.
curl -o hash.txt https://clonezilla.org/downloads/alternative/data/CHECKSUMS.TXT
Continuar download interrompido
E se a conexão com a rede cair durante o download usando o comando curl ? Nessa situação, é possível retomar o download, utilizando a opção “-C”.
Por exemplo, você está baixando a imagem netboot do ubuntu (ubuntu-26.04-netboot-amd64) com o comando:
curl -O https://releases.ubuntu.com/resolute/ubuntu-26.04-netboot-amd64.tar.gzE a conexão foi interrompida (caiu) ? retome o download de onde parou executando o comando curl com as opções “-C –” e “-O”, veja o exemplo:
curl -C - -O https://releases.ubuntu.com/resolute/ubuntu-26.04-netboot-amd64.tar.gz
Como já estudado, a opção “-O” é usada para download de arquivos e o “-C –” diz ao comando curl “continue o download a partir da posição em que o arquivo local parou”.
Testar conexão com agente de usuário personalizado
Para testar como seu servidor web responde a diferentes navegadores ou robôs de busca, você pode alterar o “User-Agent” (agente de usuário) na requisição com a opção “-A” do comando curl.
Por exemplo, para alterar o agente de usuário que está fazendo a requisição ao servidor, após a opção “-A” entre aspas passe a string com o nome:
curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" https://site.comNo exemplo, o User-Agent informado é o “Mozilla/5.0 (Windows NT 10.0; Win64; x64)”.
Autenticação básica com o curl linux
Com o comando curl também é possível acessar partes de sites ou sistemas web que estão protegidos por autenticação HTTP básica.
Por exemplo, para fazer o download do arquivo “reports.pdf” que está protegido, utilize o comando curl, seguido da opção “-u” seguido do nome do “usuário” dois pontos “senha”, após isso passe a URL do arquivo.
A seguir um exemplo prático, é enviado pelo curl o usuário “linus” e a senha “p@s$word” ao servidor remoto:
curl -u linus:p@s$word http://exemplo.com/reports.pdf -o relatorio.pdf
Caso não queira digitar a senha na linha de comando, informe somente o nome de usuário, o curl pedirá a senha e, se estiver correta, baixará e salvará o arquivo.
Testando APIs via método POST
Profissionais que trabalham com desenvolvimento de software ou DevOps, podem precisar testar sistemas enviando dados para formulários, e o comando curl ajuda também nessa tarefa.
Por exemplo, para enviar dados dos campos “user” e “password” com seus valores, execute:
curl -X POST -d "user=admin&password=senha" https://site.com/api/loginA opção “-X” do curl linux específica o método HTTP, nesse caso é o POST. E a opção “-d” faz o curl enviar dados no corpo da requisição para o endpoint “/api/login”.
O servidor receberá o valor “admin” para o campo “user” e o valor “senha” do campo “password” e em seguida processa a requisição e pode verificar se o usuário e a senha são válidos, retornando uma resposta, como uma mensagem de erro, um token de autenticação ou uma confirmação de login.
APIs modernas exigem a especificação do tipo de conteúdo (Content-Type) e tokens de autorização no cabeçalho. Para o comando curl enviar cabeçalhos HTTP junto com uma requisição, utilize a opção “-H”.
No exemplo a seguir, o comando curl solicita que a API processe alguns dados e retorne o resultado, mas o resultado depende do servidor e como a API foi implementada.
curl -X POST https://api.site.com/v1/usuarios \
-H "Content-Type: application/json" \
-H "Authorization: Bearer TOKEN_AQUI" \
-d '{"nome": "Maria", "cargo": "Analista DevOps"}'O que acontece na prática para o exemplo apresentado ?

Na prática, o curl envia dois cabeçalhos HTTP: “Content-Type: application/json” informando ao servidor que o corpo da requisição está no formato JSON.
O segundo cabeçalho é “Authorization: Bearer TOKEN_AQUI” que envia um token de autenticação para o servidor identificar ou autorizar o cliente, conforme as regras da API. O “TOKEN_AQUI” precisará ser substituído por um token válido.
E por fim a opção “-d” define os dados que serão enviados no corpo da requisição.
Upload de arquivo para uma aplicação
Um sistema web ou site pode permitir upload de arquivos, e o comando curl pode fazer o envio de arquivos utilizando a opção “-F” no formato “multipart/form-data”, veja o exemplo:
curl -F "[email protected]" https://site.com/uploadsNo comando, “arquivo” é o nome do campo do formulário do exemplo, “@documento.pdf” indica que o conteúdo deve ser lido do arquivo local “documento.pdf”, e no fim é o endereço que receberá o upload.
Esse recurso pode ser utilizado para testar uploads em sistemas web durante o desenvolvimento ou troubleshooting.
Para consultar todas as opções e mais exemplos para aprofundar seu conhecimento acesse a documentação oficial do manual online do curl.
Conclusão
O comando curl é indispensável para qualquer profissional de TI que precisa testar conexões, transferência de dados e integrações usando a partir do terminal.
Para os iniciantes, recomendo utilizar o comando o curl em um ambiente virtualizado e controlado, antes de colocar em prática trabalhos em servidores.
E não se limite a usa-lo somente para o protocolo HTTP e HTTPS, aos poucos vá testando com outros protocolos. Você pode utiliza-lo com os protocolos de rede: FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS e WSS.
Ficou com alguma dúvida sobre o uso do curl ou tem uma dica prática para compartilhar ? Deixe seu comentário abaixo!
Perguntas Frequentes (FAQ) sobre o comando curl
Onde executar o comando curl no linux ?
O comando curl é executado na interface de linha de comando manualmente ou através de shell scripts.
Qual a diferença entre o comando curl e o wget ?
O curl é voltado para a transferência bidirecional de dados (envio e recebimento) suportando múltiplos protocolos e métodos HTTP. O wget é focado em download de arquivos.
Como fazer o curl não exibir a barra de progresso ?
Basta adicionar a opção “-s” (silent) ao comando, como em: curl -s https://exemplo.com
O comando curl funciona em outros sistemas operacionais além do linux ?
Sim, o curl é nativo também no macOS e nas versões recentes do Microsoft Windows (via Prompt de Comando e PowerShell).

