O que é o comando cURL? Entenda a sintaxe, as opções e veja exemplos
Ago 11, 2026
/
By Faradilla A.
/
7 min Ler
O comando cURL (client URL) é uma ferramenta de linha de comando para transferir dados de ou para um servidor. Na forma mais simples, você especifica uma URL e os dados que deseja enviar ou receber. Ele suporta vários protocolos, incluindo HTTP, HTTPS e FTP, e funciona na maioria dos sistemas operacionais.
O comando cURL no Linux permite que seu sistema troque dados com servidores pela internet. Essa ferramenta é essencial para várias tarefas, como baixar arquivos e testar o funcionamento de APIs.
Neste tutorial, vamos explicar o que é o comando cURL, como instalá-lo e qual é a sua sintaxe. Você também vai conhecer vários exemplos práticos de uso do cURL.
O que é o comando cURL?
O comando cURL (client URL) é uma ferramenta poderosa usada para transferir dados de e para servidores. Ele funciona por meio da interface de linha de comando (CLI) e suporta vários protocolos, como HTTP, HTTPS, FTP e SMTP. Essa flexibilidade o torna muito eficiente para tarefas como testar APIs, baixar arquivos e interagir diretamente com servidores web.
Embora alternativas como o Postman ofereçam uma interface gráfica de usuário (GUI) para essas tarefas, o cURL continua sendo um dos favoritos dos desenvolvedores por sua simplicidade, rapidez e compatibilidade com uma ampla variedade de protocolos. Para quem usa comandos do Linux no dia a dia, o cURL é uma ferramenta indispensável.
Instalação do cURL
O comando cURL já vem pré-instalado por padrão na maioria dos sistemas operacionais Linux. Para verificar se ele está configurado, abra o terminal ou conecte-se via SSH caso use um servidor virtual privado (VPS) remoto.
Se você usa uma VPS da Hostinger, também pode se conectar ao sistema com um clique usando o terminal do navegador. Basta abrir a página de gerenciamento da VPS no hPanel e clicar no botão no canto superior direito.

Depois de acessar a CLI do seu sistema, execute o seguinte comando para verificar se o cURL está instalado:
curl --version
Se o sistema tiver o cURL, a CLI vai mostrar o número da versão instalada. Caso contrário, você verá o erro Command not found.

Para instalar o cURL, execute os comandos abaixo, um após o outro. Lembre-se de substituir apt pelo gerenciador de pacotes correspondente ao seu sistema operacional Linux:
sudo apt update && sudo apt upgrade
sudo apt install curl
Sintaxe básica e opções do comando cURL
A sintaxe básica do comando cURL é a seguinte:
curl [options] [URL]
Aqui vai o detalhamento da sintaxe:
- curl – nome do comando que indica ao sistema que você está executando o cURL.
- Opções – flags adicionais que alteram o comportamento do comando cURL.
- URL – endereço do servidor ou endpoint de destino.
Como há várias opções disponíveis, consulte a documentação do cURL para ver a lista completa. Entre elas, estas são algumas das mais usadas:
- –help – exibe o manual e as opções do comando cURL.
- -O – baixa o arquivo original da URL especificada.
- -L – segue URLs de redirecionamento.
- -I – busca apenas o cabeçalho.
- -d – envia dados de formulário.
- -F – envia dados complexos ou arquivos.
- -X – especifica o método de transferência de dados.
Os comandos do Linux diferenciam maiúsculas de minúsculas. Certifique-se de usar as opções com as letras maiúsculas e minúsculas corretas para evitar erros.
O comando cURL permite enviar ou receber dados de um endpoint usando diferentes métodos HTTP:
- GET – método padrão que busca dados do servidor.
- POST – envia dados para o endpoint.
- PUT – cria um recurso no endpoint ou atualiza um já existente.
- DELETE – remove dados do endpoint.
Exemplos de comandos do cURL
Nesta seção, vamos ver vários exemplos práticos do comando cURL para diferentes tarefas.
Acessar uma página da web
O uso mais básico do comando cURL é buscar o conteúdo HTML de uma página da web. Para isso, basta executar o cURL com o endpoint de destino:
curl https://www.google.com
O comando cURL vai exibir o código HTML da página da web como saída padrão na sua CLI.

Você também pode enviar solicitações HTTP para várias URLs usando um único comando:
curl https://www.example1.com https://example2.com
Salvar a saída em um arquivo
Você pode salvar a saída do comando cURL em um arquivo adicionando o operador de redirecionamento (>) ao comando. Isso é útil para armazenar o resultado para acompanhamento ou arquivamento.
Por exemplo, o código a seguir vai salvar o conteúdo HTML do Google em file1.txt:
curl https://www.google.com > file1.txt
O comando vai criar o arquivo automaticamente caso ele ainda não exista. Se file1.txt já existir, o cURL vai sobrescrevê-lo.
Baixar um arquivo com o nome original
Um dos usos mais comuns do cURL é baixar um arquivo remoto da internet, de forma semelhante ao wget. Para isso, use a opção -O:
curl -O http://www.example.com/path/file.zip
O comando vai baixar o arquivo especificado, chamado file.zip, para o diretório de trabalho atual. Sem a opção -O, o cURL vai exibir o conteúdo do arquivo na saída padrão da CLI.
Seguir redirecionamentos
Se uma URL redirecionar para outra página, o cURL não vai seguir o redirecionamento e retornará o status 301 ou 302. Por exemplo, vamos verificar googlr.com:
curl http://www.googlr.com
Como essa URL redireciona para google.com, o cURL não segue o redirecionamento e retorna o status 301, indicando que o documento foi movido.

Para seguir automaticamente o redirecionamento e exibir o conteúdo de google.com, adicione a opção -L ou –location:
curl -L http://www.googlr.com
Se a URL redirecionar várias vezes, você pode limitar quantos redirecionamentos o cURL vai seguir usando a opção –max-redirs:
curl -L --max-redirs 3 http://www.googlr.com
Buscar apenas os cabeçalhos
Em alguns casos, buscar apenas o cabeçalho da resposta do endpoint é mais útil do que recuperar todo o conteúdo. Isso reduz a saída, facilita a análise e minimiza o consumo de largura de banda.
As informações nos cabeçalhos de resposta geralmente são suficientes para fins de teste. Por exemplo, elas incluem o status da resposta HTTP, as chamadas de API restantes e os redirecionamentos.
Para buscar apenas os cabeçalhos com o cURL, adicione a opção -I (i maiúsculo) ou –head:
curl -I http://www.google.com
Solicitações autenticadas
Ao enviar uma solicitação para um endpoint protegido, como uma API interna, geralmente você precisa autenticá-la incluindo as credenciais no comando cURL.
No entanto, o comando e a opção variam de acordo com o método de autenticação. Por exemplo, se você usa um nome de usuário e uma senha, execute:
curl -u username:password <URL>
Você também pode omitir :password e inseri-la separadamente depois, evitando que a credencial apareça no histórico do Bash.
Se você usa um token Bearer, use a seguinte sintaxe:
curl -H "Authorization: Bearer <token>" <URL>
O comando é parecido se você usa uma chave de API no cabeçalho para autenticação:
curl -H "Authorization: ApiKey <API key>" <URL>
Se a sua API precisar especificamente da chave de autorização diretamente na URL, você pode adicioná-la usando o seguinte comando:
curl "https://api.example.com/data?api_key=api_key"
Envio de dados de formulário
O cURL permite enviar dados facilmente para formulários em um endpoint. Isso é útil para automatizar o processo com um script Bash ou quando você não quer interagir com a interface web do destino.
Para enviar dados de formulário com o cURL, você precisa especificar o par chave-valor. A chave corresponde ao nome do campo do formulário, enquanto o valor indica os dados que você quer inserir. A sintaxe é a seguinte:
key1=value1&key2=value2
Você precisa de duas opções, -X para definir o método de envio e -d para indicar ao cURL que deseja inserir dados. O comando completo pode ficar assim:
curl -X POST -d "username=johndoe&password=secret" https://example.com/login
No exemplo, o cURL usa a solicitação POST para inserir as credenciais no formulário da página de login.
Ao enviar dados de formulário, certifique-se de que eles sigam o formato de codificação de URLs. Por exemplo, substitua espaços por %20 e o caractere & por %26.
Você também pode inserir dados de um arquivo usando a sintaxe a seguir. Certifique-se de que o arquivo contenha os dados no formato correto de pares chave-valor.
curl -X POST -d @data.txt https://example.com/login
Enviar um arquivo
Se você quiser enviar um arquivo local ou dados mais complexos para um endpoint, use a opção -F. Essa opção usa o método POST por padrão, então não é necessário especificá-lo manualmente com -X.
Por exemplo, o código a seguir envia um arquivo de texto para o endpoint:
curl -F "file=@test.txt" https://example.com/upload
Se você quiser enviar vários arquivos, basta listá-los no comando, cada um começando com a opção -F:
curl -F "file=@/path/to/image.jpg" -F "file=@/path/to/image2.jpg" https://example.com/upload
Você também pode enviar arquivos usando o cURL pelo protocolo de transferência de arquivos (FTP). Nesse caso, use a opção -T:
curl -T /path/to/file ftp://ftp.example.com/remote/path/
Para usar o protocolo seguro de transferência de arquivos (SFTP) ou um servidor FTP protegido, adicione as credenciais de autenticação antes da opção -T:
curl -u username:password -T /path/to/file sftp://sftp.example.com/remote/path/
Como definir cabeçalhos personalizados
Os cabeçalhos de solicitação personalizados permitem interagir com o servidor web ou a API de uma maneira específica. Com eles, você pode adicionar metadados específicos para obter uma resposta personalizada, o que é útil ao testar a funcionalidade do endpoint.
Você pode definir um cabeçalho personalizado com a opção -H usando esta sintaxe:
curl -H "Header: value" <URL>
Por exemplo, você pode especificar o tipo de conteúdo que quer enviar no cabeçalho. Aqui está o comando:
curl -X POST -H "Content-Type: application/json" -d '{"form":"JSONdata"}' https://api.example.com/Você também pode definir um cabeçalho personalizado para especificar o tipo de conteúdo que aceita como resposta. Por exemplo, se quiser que o endpoint responda em JSON, use o seguinte:
curl -H "Accept: application/json" https://api.example.com/data
Ao testar a API, você pode definir um cabeçalho personalizado para especificar a versão a ser usada. O comando fica assim:
curl -H "X-API-Version: 2" https://api.example.com/v2/data
Usar protocolos diferentes
Dependendo do endpoint, talvez você precise usar protocolos diferentes com o cURL. Por exemplo, talvez você queira usar o SFTP para transferir arquivos, enquanto testar um servidor de e-mail exige o SMTP.
Para usar o cURL com protocolos diferentes, basta especificar o protocolo no início da URL do endpoint, antes de ://. Por exemplo, este comando transfere dados usando SMTP:
curl --url smtp://smtp.example.com --mail-from "user@example.com" --mail-rcpt "recipient@example.com" -T email.txt
O comando envia uma mensagem de user@example.com para recipient@example.com pelo servidor de e-mail smtp.example.com, usando o protocolo SMTP.
Conclusão
O comando cURL no Linux permite que seu sistema se conecte a um servidor e transfira dados de e para ele. Ele se destaca pela compatibilidade com vários protocolos e pela possibilidade de incluir informações adicionais, como cabeçalhos personalizados.
Embora o cURL já venha instalado na maioria das distribuições Linux, você pode instalá-lo manualmente usando o gerenciador de pacotes. O uso básico desse comando é buscar o conteúdo de uma página da web ou a resposta de uma API.
Você também pode baixar arquivos com a opção -O ou enviá-los com a opção -F. Além disso, use -H para definir um cabeçalho de solicitação personalizado, por exemplo, para adicionar um token de autenticação ou especificar a versão da API.
Para enviar dados de formulário usando o cURL, use a opção -d. Já para enviar recursos mais complexos, como arquivos, adicione a opção -F.
Perguntas frequentes (FAQ) sobre o comando cURL
Para que serve o comando cURL no Linux?
No Linux, o comando cURL permite se conectar a um servidor remoto e transferir dados de e para ele. Ele é útil para várias tarefas, como baixar um arquivo de um site e enviar solicitações a uma API para testes.
Quais protocolos o cURL suporta?
O cURL suporta vários protocolos de transferência de dados, incluindo HTTP, HTTPS, FTP e SMTP. Para usar um protocolo específico, basta inseri-lo no início da URL, antes de u003cstrongu003e://u003c/strongu003e. Por exemplo, use o endpoint u003cstrongu003eftp://www.example.comu003c/strongu003e se quiser usar FTP.
Como faço para verificar se o cURL está instalado no meu sistema?
Para verificar se o cURL está instalado no sistema, execute o comando u003cstrongu003ecurl u002du002dversionu003c/strongu003e. Se a CLI mostrar um número de versão, o cURL está instalado. Caso contrário, ela exibirá o erro u003cstrongu003eCommand not foundu003c/strongu003e.
Todo o conteúdo dos tutoriais deste site segue os rigorosos padrões editoriais e valores da Hostinger.
Comentários
3 responsesOutubro 18 2021
Muito bom!
Junho 05 2022
❤️
Julho 23 2022
Muito bom.