Skip to content

Gerador e Construtor de Comandos cURL

Monte comandos curl no navegador — defina método, cabeçalhos, autenticação e corpo, obtenha um comando pronto para copiar instantaneamente. Presets para Bearer, POST JSON e upload. Grátis, privado, sem cadastro.

Sem rastreamento Roda no navegador Grátis
Seu comando é construído inteiramente no seu navegador. Tokens, URLs e payloads nunca saem do seu dispositivo.
Presets
Parâmetros de consulta
Cabeçalhos
Autenticação
Corpo da requisição
Opções
Comando gerado
Revisado para geração correta de comandos curl em métodos, auth e tipos de corpo, anexação precisa de cabeçalhos por tipo de corpo e aspas e escape seguros para shell — Go Tools Engineering Team · Jun 3, 2026

O que é um Comando curl?

curl é uma ferramenta de linha de comando para transferir dados via HTTP e dezenas de outros protocolos. Um comando curl é o nome do binário, um conjunto de flags e uma URL — por exemplo `curl -X POST https://api.example.com/users -H 'Content-Type: application/json' -d '{"name":"Ada"}'`. Como o curl está disponível em praticamente todos os sistemas Linux, macOS e Windows modernos, é a forma universal de testar uma API, reproduzir uma requisição da documentação ou verificar a saúde de um serviço dentro de um script de CI. A concisão que o torna poderoso também dificulta a memorização, o que é exatamente o motivo pelo qual um construtor visual ajuda.

Todo comando curl tem a mesma anatomia. O método (`-X GET`, `-X POST`, …) define o verbo HTTP, com padrão GET. A URL é o endpoint, com parâmetros de consulta anexados após um `?`. Cabeçalhos (`-H 'Key: Value'`, repetíveis) carregam metadados como `Accept` e `Content-Type`. Autenticação é apenas um cabeçalho especial — `-H 'Authorization: Bearer …'` para um token, `-u user:pass` para Basic auth, ou um `-H 'X-API-Key: …'` personalizado. O corpo (`-d` para dados brutos ou de formulário, `-F` para multipart e uploads de arquivo) carrega o payload. Por fim, flags de opções como `-L` (seguir redirecionamentos), `-i` (incluir cabeçalhos de resposta) e `-v` (verbose) moldam o comportamento. Esta ferramenta dispõe cada uma dessas partes como um campo de formulário e reconstrói o comando ao vivo.

Recorra a um gerador de comando curl quando de outra forma você estaria lutando com aspas, esquecendo o cabeçalho `Content-Type` num POST JSON, ou montando manualmente um upload multipart. O construtor acerta o escape com aspas simples seguras para shell, codifica sua query string e anexa os cabeçalhos corretos para cada tipo de corpo — então você copia um comando em que pode confiar. Para uma referência exaustiva flag por flag com mais de 40 exemplos executáveis, leia o guia curl complementar; para codificar valores de query string difíceis você pode usar nosso codificador de URL.

Tudo acontece no seu navegador. Seus tokens, credenciais, URLs e corpos de requisição são montados com JavaScript do lado do cliente e nunca enviados a nenhum lugar — assim você pode construir comandos contra endpoints de produção reais com chaves de API reais e nada sai do seu dispositivo.

# Plain GET — curl defaults to GET
curl https://api.example.com/users

# GET with a Bearer token (auth is just a header)
curl https://api.example.com/me \
  -H 'Authorization: Bearer YOUR_TOKEN'

# POST a JSON body — note the Content-Type header
curl -X POST https://api.example.com/users \
  -H 'Content-Type: application/json' \
  -d '{"name":"Ada","role":"admin"}'

# Multipart file upload — '@' reads the file from disk
curl -X POST https://api.example.com/upload \
  -F 'file=@report.pdf' \
  -F 'title=Q3 report'

Funcionalidades Principais

Construtor Visual de Requisições

Disponha toda a requisição como campos de formulário — método, URL, parâmetros de consulta, cabeçalhos, auth, corpo e opções — em vez de memorizar a ordem dos flags e as aspas. Sem mais adivinhar se a URL vem antes ou depois do `-d`.

Comando ao Vivo com Copiar e Exportar

O comando curl é reconstruído a cada tecla pressionada na parte inferior da página. Copie-o para a área de transferência com um clique, ou Exporte .sh para baixar um script shell executável que você pode inserir diretamente em um repositório ou job de CI.

Suporte Completo de Autenticação

Bearer token, Basic auth (`-u user:pass`) e cabeçalhos de API-key personalizados, cada um emitido no formato exato que os servidores esperam. Escolha o esquema, cole a credencial e o cabeçalho `Authorization` ou personalizado correto é gerado para você.

Todos os Tipos de Corpo

JSON bruto (com o cabeçalho `Content-Type` correspondente adicionado automaticamente), campos de formulário `application/x-www-form-urlencoded` e uploads `multipart/form-data` onde qualquer campo pode ser alternado para um arquivo com o prefixo `@`.

Seis Presets com Um Clique

GET com Bearer, POST JSON, Upload de formulário, Basic auth, Download `-o` e Debug verbose preenchem o formulário inteiro com um toque. Comece a partir de uma requisição funcionando para as tarefas de API mais comuns e ajuste a partir daí.

Saída Multilinha e de Linha Única

Alterne entre um comando compacto de linha única para colar rapidamente e uma versão multilinha com continuação por barra invertida, fácil de ler em um script ou revisar em um pull request. Mesmo comando, duas formas.

100% de Privacidade no Navegador

Tokens, URLs, cabeçalhos e corpos de requisição são montados inteiramente no lado do cliente e nunca saem do seu dispositivo — verifique na aba Rede. Seguro para endpoints de produção e credenciais ativas com zero exposição de dados.

Criado para o Fluxo do DevTools

Projetado em torno do loop diário de testar APIs e reproduzir requisições do "Copiar como cURL" do DevTools do navegador. Uma aba Converter que analisa um comando curl colado e o converte para fetch, requests, Go, PHP, Ruby e Node.js será lançada no próximo release.

Alternativas ao curl e Clientes HTTP

HTTPie

CLI, sintaxe amigável ao humano

Uma CLI moderna com saída colorida e sintaxe mais concisa (`http POST api.example.com/users name=Ada`). Define `Content-Type` JSON por padrão. Mais amigável para uso interativo; o curl vence em ubiquidade e portabilidade para scripting.

wget

CLI, focado em download

Melhor para downloads recursivos e espelhamento de sites; segue redirecionamentos e tenta novamente por padrão. Mais fraco que o curl para métodos arbitrários, cabeçalhos personalizados e testes de API. Frequentemente pré-instalado junto com o curl no Linux.

Postman

Aplicativo GUI

Uma GUI completa para construir, salvar e compartilhar requisições com coleções, ambientes e sincronização de equipe. Ótimo para trabalho exploratório de API; pode importar/exportar curl. Mais pesado do que um comando de uma linha para verificações rápidas ou CI.

Insomnia

Aplicativo GUI

Uma alternativa open-source mais leve ao Postman com um construtor de requisições limpo e importação/exportação de curl. Bom para organizar requisições de API; como o Postman, mais do que você precisa para uma única chamada scriptada.

fetch() / requests

Clientes HTTP em código

O `fetch()` do JavaScript e o `requests` do Python são como você faz a chamada no código do aplicativo. Construa e verifique a requisição como curl primeiro, depois traduza — a aba Converter que está chegando gerará o fetch equivalente, requests e outros códigos de cliente.

Exemplos de Comando curl

Requisição GET Simples

curl https://api.example.com/users

Sem flag de método, o curl usa GET por padrão. Esta é a requisição mais simples possível — buscar um recurso e imprimir o corpo da resposta no terminal. Adicione parâmetros de consulta no construtor e eles serão codificados na URL automaticamente (`?page=2&limit=50`).

GET com Bearer Token

curl https://api.example.com/me \
  -H 'Authorization: Bearer YOUR_TOKEN'

A chamada autenticada mais comum contra uma API REST. O preset de auth Bearer adiciona o cabeçalho `Authorization: Bearer …` para você. Para inspecionar o conteúdo de um JWT antes de enviá-lo, cole o token no nosso decodificador JWT.

POST com Corpo JSON

curl -X POST https://api.example.com/users \
  -H 'Content-Type: application/json' \
  -d '{"name":"Ada","role":"admin"}'

Um clássico do gerador de requisição POST curl: o tipo de corpo JSON define `-X POST`, anexa o cabeçalho `Content-Type: application/json` e passa o payload com `-d`. Formate respostas de API confusas depois com nosso formatador JSON.

POST de Formulário (urlencoded)

curl -X POST https://api.example.com/login \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'username=ada&password=s3cret'

Envio clássico de formulário HTML. Cada par `-d field=value` é unido com `&` e enviado como `application/x-www-form-urlencoded`. O curl codifica caracteres reservados; construa os campos na seção de corpo do formulário e a ferramenta monta a string para você.

Upload de Arquivo Multipart

curl -X POST https://api.example.com/upload \
  -F 'file=@report.pdf' \
  -F 'title=Q3 report'

O comando de upload de arquivo curl usa `-F` para `multipart/form-data`. Prefixe um valor com `@` para anexar um arquivo do disco; misture campos de arquivo e texto livremente. O curl define o boundary multipart e o `Content-Type` automaticamente — nunca os defina manualmente.

Download para um Arquivo

curl -L -o archive.zip \
  https://example.com/files/archive.zip

Salve o corpo da resposta em um arquivo nomeado com `-o`, e `-L` segue quaisquer redirecionamentos para a URL de download real (comum com links de CDN e assets de release). Use `-O` em vez de `-o` para manter o nome de arquivo do servidor.

Autenticação Basic

curl -u ada:s3cret \
  https://api.example.com/private

O curl basic auth usa `-u user:pass`; o curl codifica as credenciais em Base64 no cabeçalho `Authorization: Basic …` na transmissão. Sempre envie Basic auth sobre HTTPS — Base64 é codificação, não criptografia, e é trivialmente reversível.

Debug Verbose

curl -v -i https://api.example.com/health

Quando uma requisição se comporta mal, `-v` imprime a linha de requisição completa, cada cabeçalho enviado e recebido e o handshake TLS; `-i` inclui os cabeçalhos de resposta na saída do corpo. A primeira coisa a recorrer quando uma API retorna o código de status errado.

Como Construir um Comando curl

  1. 1

    Escolha o método HTTP

    Selecione GET, POST, PUT, PATCH, DELETE, HEAD ou OPTIONS. O curl usa GET por padrão; escolher POST ou outro verbo adiciona `-X METHOD` ao comando gerado. Ou toque em um chip de preset para definir o método e um corpo correspondente com um clique.

  2. 2

    Insira a URL e os parâmetros de consulta

    Digite a URL da requisição (ex.: `https://api.example.com/users`). Adicione parâmetros de consulta como pares chave/valor e a ferramenta os codifica na URL e anexa `?key=value&…` automaticamente — sem codificação manual necessária.

  3. 3

    Adicione cabeçalhos e autenticação

    Adicione cabeçalhos de requisição como pares chave/valor, depois escolha um esquema de auth: Nenhum, Bearer token, Basic (usuário/senha) ou um cabeçalho de API-key personalizado. O cabeçalho `Authorization` ou personalizado correto é gerado no formato exato que o servidor espera.

  4. 4

    Defina o corpo da requisição

    Para POST/PUT/PATCH, escolha um tipo de corpo: cole JSON bruto (o cabeçalho `Content-Type` é adicionado para você), construa campos de formulário urlencoded, ou monte um upload multipart e alterne qualquer campo para um arquivo com o prefixo `@`.

  5. 5

    Ative as opções

    Ative os flags necessários — seguir redirecionamentos (`-L`), TLS inseguro (`-k`), verbose (`-v`), incluir cabeçalhos (`-i`), comprimido (`--compressed`), gravar em arquivo (`-o`), um timeout de conexão ou um proxy (`-x`). Cada ativação atualiza o comando ao vivo.

  6. 6

    Copie, exporte ou resete

    Copie o comando finalizado, Exporte .sh para baixá-lo como script, ou Resete para limpar o formulário. Use o botão Multilinha para alternar entre saída de linha única e multilinha com continuação antes de copiar.

Erros Comuns no curl

Faltando -X com um Método que tem Corpo

Enviar um corpo com `-d` implica POST, mas se você precisar de PUT ou PATCH deve declarar explicitamente com `-X`. Esquecer isso envia o corpo como um POST e o servidor retorna o status errado ou rejeita a requisição.

✗ Incorreto
# Pretendia um PATCH, mas -d sozinho implica POST
curl -d '{"role":"admin"}' \
  https://api.example.com/users/7
✓ Correto
# Defina o verbo explicitamente
curl -X PATCH -d '{"role":"admin"}' \
  -H 'Content-Type: application/json' \
  https://api.example.com/users/7

Faltando Content-Type num POST JSON

Enviar JSON com `-d` NÃO define o cabeçalho `Content-Type` — o curl usa `application/x-www-form-urlencoded` por padrão. A maioria das APIs então falha ao analisar o corpo e retorna 400 ou 415. Sempre anexe o tipo de conteúdo JSON (ou use o preset de corpo JSON, que o adiciona para você).

✗ Incorreto
# O servidor vê urlencoded, não JSON — 400/415
curl -X POST https://api.example.com/users \
  -d '{"name":"Ada"}'
✓ Correto
# Declare o tipo de conteúdo JSON
curl -X POST https://api.example.com/users \
  -H 'Content-Type: application/json' \
  -d '{"name":"Ada"}'

Escape com Aspas Simples vs Duplas

Dentro de aspas duplas o shell expande `$`, backticks e `!`, distorcendo JSON ou quebrando em um `$variable` dentro do payload. Aspas simples passam o corpo literalmente. Use aspas simples para corpos JSON; mude para aspas duplas somente no `cmd.exe`, que não respeita aspas simples.

✗ Incorreto
# $name é expandido pelo shell para string vazia
curl -d "{\"user\":\"$name\"}" \
  https://api.example.com/users
✓ Correto
# Aspas simples enviam o corpo literalmente
curl -d '{"user":"$name"}' \
  https://api.example.com/users

Usando -d em uma Requisição GET

Adicionar `-d` a uma requisição silenciosamente a transforma em POST. Se você queria um GET com parâmetros de consulta, coloque-os na URL (ou use `-G` para dobrar os dados de `-d` na query string). Um `-d` num GET é uma das razões mais comuns por que "meu GET não está funcionando".

✗ Incorreto
# -d transforma isso em POST, não GET
curl -d 'page=2&limit=50' \
  https://api.example.com/users
✓ Correto
# Query string na URL mantém como GET
curl 'https://api.example.com/users?page=2&limit=50'

Continuação de Linha no Windows: ^ vs \

A barra invertida (`\`) continua um comando para a próxima linha no bash, Git Bash e WSL. No `cmd.exe` o caractere de continuação é o acento circunflexo (`^`), e o PowerShell usa um acento grave (`` ` ``). Colar um comando com continuação por barra invertida no `cmd` quebra — alterne esta ferramenta para saída de linha única no `cmd` do Windows.

✗ Incorreto
:: cmd.exe — barra invertida não é char de continuação
curl -X POST https://api.example.com/users \
  -d '{"name":"Ada"}'
✓ Correto
:: cmd.exe — uma linha, ou use ^ para continuar
curl -X POST https://api.example.com/users -d "{\"name\":\"Ada\"}"

Espaços na URL Não Codificados

Um espaço bruto (ou `&`, `#`, `?`) numa URL ou valor de consulta quebra o comando — o shell divide o argumento e o curl vê uma URL truncada. Codifique o valor em percent (um espaço vira `%20`) ou deixe o curl codificar com `--data-urlencode`. Os campos de parâmetros de consulta nesta ferramenta codificam automaticamente.

✗ Incorreto
# Espaço divide o argumento — curl vê dois args
curl https://api.example.com/search?q=hello world
✓ Correto
# Codifique o espaço (ou coloque aspas na URL inteira)
curl 'https://api.example.com/search?q=hello%20world'

Casos de Uso Comuns

Teste de API REST
Construa e dispare requisições contra um endpoint REST sem sair do terminal: defina o método, cole um Bearer token, envie um corpo JSON e leia a resposta. A forma mais rápida de confirmar que uma API se comporta antes de escrever o código do cliente.
Reproduzir uma Requisição da Documentação
A documentação de API mostra endpoints e parâmetros, mas raramente um comando completo pronto para copiar. Preencha o método, URL, cabeçalhos e auth aqui e obtenha um comando curl que executa como está — sem lutar com aspas ou cabeçalhos `Content-Type` ausentes.
Scripts de Smoke-Test de CI/CD
Gere um comando curl para uma verificação de saúde ou smoke test pós-deploy, depois Exporte .sh para inserir em um pipeline. Adicione `--connect-timeout` e `--max-time` para que um endpoint travado não bloqueie o build, e verifique códigos de status com `-w`.
Upload e Download de Arquivo
Monte um upload `multipart/form-data` com `-F field=@file`, ou construa um download `-L -o filename` que segue redirecionamentos para um CDN. Codifique nomes de arquivo ou valores de consulta difíceis primeiro com nosso codificador de URL.
Depuração de Webhooks
Reproduza um payload de webhook fazendo POST do mesmo corpo JSON que o provedor envia, com os cabeçalhos de assinatura e `Content-Type` corretos. Reproduza a requisição exata localmente para depurar por que seu handler a rejeitou.
Relatórios de Bug Reproduzíveis
Cole um único comando curl autocontido num relatório de bug ou PR para que qualquer pessoa possa reproduzir a requisição exata — método, cabeçalhos, placeholder de auth e corpo. Muito mais claro do que descrever a requisição em prosa.
Aprender Flags do curl
Veja como cada escolha no formulário mapeia para um flag real — escolha Basic auth e veja `-u` aparecer, adicione um corpo JSON e veja o cabeçalho `Content-Type` ser anexado. Uma forma prática de aprender a sintaxe, combinada com nosso guia curl.
Preparar uma Requisição para Converter para Código
Construa e verifique a requisição como curl primeiro, depois traduza para o cliente HTTP do seu aplicativo. A aba Converter que está chegando transformará um comando curl colado em fetch, requests, Go, PHP, Ruby e Node.js — comece a partir de um comando curl que você sabe que funciona.

Flags e Referência de Sintaxe curl

Aspas e Escape no Shell
A ferramenta envolve valores em aspas simples, a forma mais segura em shells POSIX porque nada dentro de uma string com aspas simples é expandido. Uma aspa simples literal dentro de um valor é emitida como a sequência `'\''` (fechar aspas, aspa escapada, reabrir aspas). No `cmd.exe` use aspas duplas; o Git Bash e o WSL executam os comandos com aspas simples gerados sem modificações.
-d vs --data-raw vs --data-binary
`-d`/`--data` remove newlines e carriage returns do corpo — adequado para pares `key=value`, com perda para conteúdo multilinha. `--data-raw` é igual mas não trata um `@` inicial como nome de arquivo. `--data-binary` envia os bytes exatamente como fornecidos (use `@file` para fazer upload do conteúdo bruto do arquivo). Os três implicam POST a menos que o método seja sobrescrito.
Multipart (-F) vs URL-encoded (-d)
`-F field=value` produz `multipart/form-data` com um boundary gerado — necessário para uploads de arquivo (`-F file=@path`) e formulários mistos de arquivo/texto. `-d field=value` produz `application/x-www-form-urlencoded`, uma única string unida por `&`. Nunca defina `Content-Type` manualmente para multipart; o curl calcula o boundary e define o cabeçalho automaticamente.
Codificação do Cabeçalho de Auth
Bearer auth envia `Authorization: Bearer ` literalmente (RFC 6750). Basic auth de `-u user:pass` é codificado em Base64 como `Authorization: Basic ` na transmissão — codificação, não criptografia, portanto use HTTPS. Uma API key é qualquer cabeçalho personalizado que o serviço requer, ex. `X-API-Key: `.
Codificação da Query String
Parâmetros de consulta adicionados no construtor são codificados em percent e anexados como `?key=value&key2=value2`. Caracteres reservados (espaços, `&`, `=`, `#`) são escapados para que a URL seja válida. Para campos de corpo que precisam ser codificados, o próprio `--data-urlencode` do curl lida com a codificação no momento da requisição.
Comportamento de Redirecionamento (-L)
Sem `-L`, o curl imprime uma resposta 301/302 e para. Com `-L` ele segue o cabeçalho `Location` até a URL final. Observe que o curl descarta o cabeçalho `Authorization` quando um redirecionamento cruza para um host diferente (um padrão de segurança); use `--location-trusted` apenas quando você entende as implicações.
Respostas Comprimidas
`--compressed` adiciona um cabeçalho `Accept-Encoding` anunciando suporte a gzip/deflate/brotli e descomprime a resposta de forma transparente, economizando largura de banda. O corpo decodificado é idêntico a uma requisição sem compressão — puramente uma otimização de transferência, seguro para ativar na maioria das chamadas de API.
Saída: -o vs -O
`-o filename` grava o corpo da resposta em um arquivo que você nomeia; `-O` salva com o nome de arquivo remoto do caminho da URL. Ambos suprimem o dump normal para stdout. Combine com `-L` para que os redirecionamentos resolvam para o asset real antes do arquivo ser gravado.

Boas Práticas para Requisições curl

Nunca Codifique Segredos em Comandos Compartilhados
Um comando curl que você cola num PR, ticket ou chat será lido por outros e indexado por ferramentas. Substitua tokens e senhas por um placeholder (`YOUR_TOKEN`) ou referencie uma variável de ambiente (`-H "Authorization: Bearer $API_TOKEN"`). Para credenciais longas, o curl pode ler um cabeçalho de um arquivo com `-H @headerfile` para que o segredo nunca apareça no histórico do shell.
Prefira --data-binary @file para Payloads Binários
Quando o corpo é um arquivo cujos bytes importam — uma imagem, um payload assinado, JSON onde o espaço em branco é significativo — use `--data-binary @file` em vez de `-d @file`. O `-d` simples remove newlines e carriage returns, corrompendo silenciosamente conteúdo binário e multilinha. `--data-binary` envia o arquivo exatamente como está no disco.
Coloque Aspas nos Valores de Cabeçalho
Sempre envolva valores `-H` entre aspas: `-H 'Content-Type: application/json'`. Sem aspas, o espaço após os dois pontos divide o argumento e o curl vê um cabeçalho malformado. Aspas simples também impedem que o shell expanda `$`, `*` e outros caracteres especiais dentro do valor — exatamente o que esta ferramenta emite por padrão.
Use --compressed para Economizar Largura de Banda
Adicione `--compressed` em chamadas de API e downloads para solicitar codificação gzip/brotli e fazer o curl descomprimir de forma transparente. Para APIs com muito JSON, isso pode reduzir o tamanho da transferência em 70–90% sem nenhuma mudança na resposta que você vê — um ganho gratuito em scripts que consultam endpoints repetidamente.
Defina Timeouts em Scripts
Em qualquer contexto automatizado, adicione `--connect-timeout` e `--max-time` para que um endpoint lento ou travado não bloqueie um pipeline para sempre. Uma verificação de saúde com `--max-time 10` falha rapidamente e permite que seu CI avance. Combine com `--retry N` para absorver problemas transitórios de rede sem desistir imediatamente.
Verifique com -v Antes de Automatizar
Antes de incorporar um comando curl em um script ou cron job, execute-o uma vez com `-v` para ver a linha de requisição exata, cabeçalhos e handshake TLS. É a forma mais rápida de detectar um método errado, um `Content-Type` ausente ou um cabeçalho de auth que não foi anexado — depure interativamente, depois remova `-v` para produção.

Perguntas Frequentes

O que esta ferramenta faz?
Ela constrói um comando curl pronto para execução a partir de um formulário simples. Você escolhe o método HTTP, digita uma URL, adiciona parâmetros de consulta e cabeçalhos, escolhe um esquema de autenticação (Nenhum, Bearer, Basic ou cabeçalho API-key), define um corpo de requisição (JSON, formulário, multipart ou upload de arquivo) e ativa flags de opções como seguir redirecionamentos ou verbose. Enquanto você preenche o formulário, o comando curl é reconstruído ao vivo na parte inferior da página — copie-o, exporte-o como script `.sh` ou alterne entre saída de linha única e multilinha. É um gerador de comando curl criado para o fluxo de trabalho diário de testar uma API REST, reproduzir uma requisição da documentação ou inserir um comando reproduzível num relatório de bug. Para uma referência mais aprofundada sobre os próprios flags, consulte nosso guia curl.
Meus dados (tokens, URLs) são enviados para algum lugar?
Não. O comando inteiro é montado no seu navegador com JavaScript. Seus tokens, credenciais, URLs, cabeçalhos e corpos de requisição nunca são transmitidos, armazenados ou registrados em nenhum servidor — você pode confirmar isso na aba Rede do seu navegador, onde construir um comando não gera nenhuma requisição de rede. É por isso que a ferramenta é segura para uso com endpoints de produção reais e chaves de API ativas: nada que você digita sai do seu dispositivo. O comando só faz algo quando você o copia e executa no seu próprio terminal.
Como enviar uma requisição POST com JSON no curl?
Defina o método como POST e escolha o tipo de corpo JSON; a ferramenta produz `curl -X POST -H 'Content-Type: application/json' -d '{…}'`. Dois pontos importam: o flag `-d` (ou `--data`) carrega o corpo, e o cabeçalho `Content-Type: application/json` informa ao servidor como fazer o parse — omitir o cabeçalho faz com que muitos frameworks ignorem ou interpretem mal o payload. O curl moderno (7.82+) também oferece um atalho `--json` que define o cabeçalho e o corpo juntos. Após a chamada, cole a resposta no nosso formatador JSON para formatar e validar.
Como adicionar um Bearer token a uma requisição curl?
Adicione um cabeçalho `Authorization` com o valor `Bearer YOUR_TOKEN`, ou escolha o preset "GET com Bearer" e cole seu token. O comando gerado é `curl -H 'Authorization: Bearer YOUR_TOKEN'`. A palavra `Bearer`, um espaço, depois o token — esse formato exato é exigido pela especificação Bearer do OAuth 2.0 (RFC 6750). Para inspecionar as claims e a expiração de um token antes de enviá-lo, decodifique-o com nosso decodificador JWT.
Como fazer upload de um arquivo com curl?
Use o tipo de corpo Multipart e alterne um campo para Arquivo: a ferramenta emite `curl -X POST -F 'file=@/path/to/file'`. O prefixo `@` instrui o curl a ler o arquivo do disco e enviá-lo como `multipart/form-data`; você pode adicionar mais campos `-F` para arquivos e valores de texto simples na mesma requisição. Não defina o cabeçalho `Content-Type` manualmente para multipart — o curl gera o boundary e define o cabeçalho automaticamente, e sobrescrevê-lo quebra o upload. Para um PUT de arquivo único, o curl usa `-T file `.
Posso importar um comando copiado do DevTools do navegador ("Copiar como cURL")?
Ainda não — isso é a aba Converter, que será lançada no próximo release. Ela irá analisar um comando curl colado (incluindo o que o DevTools gera com "Copiar como cURL") e traduzi-lo para JavaScript fetch, Python requests, Go, PHP, Ruby e Node.js. Por enquanto a ferramenta é um construtor: recrie a requisição preenchendo manualmente os campos de URL, cabeçalhos, autenticação e corpo. A saída do DevTools é verbosa mas legível — copie cada cabeçalho `-H` para a seção de cabeçalhos e a URL para o campo URL.
Como o curl no Windows é diferente?
O binário curl se comporta da mesma forma; as aspas do shell diferem. No `cmd.exe` você usa aspas duplas (`"`) em torno dos valores e o acento circunflexo (`^`) para continuação de linha, e aspas simples não têm significado especial. No PowerShell, `curl` é um alias para `Invoke-WebRequest` a menos que você chame `curl.exe` explicitamente, e as regras de aspas diferem novamente. A opção menos problemática é o Git Bash ou WSL, onde os comandos com aspas simples no estilo Unix que esta ferramenta gera funcionam sem modificações. Se você precisar usar o `cmd`, alterne o comando gerado para linha única e substitua as aspas `'…'` por `"…"`.
Qual é a diferença entre -d, --data-raw e --data-binary?
`-d` (alias `--data`) envia um corpo e remove newlines e carriage returns dos dados — adequado para pares `key=value` de formulário, arriscado para JSON que ocupa várias linhas. `--data-raw` é idêntico mas não trata um `@` inicial como nome de arquivo, portanto é a escolha segura quando seus dados podem literalmente começar com `@`. `--data-binary` envia os bytes exatamente como fornecidos, sem nenhuma remoção de newline — o flag correto para fazer upload do conteúdo bruto de um arquivo (`--data-binary @file.json`) ou qualquer payload onde o espaço em branco é significativo. Os três implicam POST a menos que você sobrescreva o método.
Como enviar cookies com curl?
Use `-b` para enviar cookies e `-c` para salvá-los. `-b 'name=value'` envia uma string de cookie literal, enquanto `-b cookies.txt` lê cookies de um arquivo no formato Netscape. Para capturar cookies que um servidor define (por exemplo após um login), adicione `-c cookies.txt` para gravá-los em um jar, depois reutilize esse jar com `-b cookies.txt` na próxima requisição. Este construtor foca em cabeçalhos, auth e corpo; para um cabeçalho de cookie você também pode simplesmente adicionar um cabeçalho `Cookie: name=value` na seção de cabeçalhos.
Como seguir redirecionamentos?
Ative "Seguir redirecionamentos (-L)" ou adicione o flag `-L` manualmente. Por padrão o curl imprime a resposta 301/302 e para; `-L` instrui a seguir o cabeçalho `Location` até o destino final. Isso é essencial para links de download atrás de CDNs, URLs encurtadas e APIs que redirecionam HTTP para HTTPS. Combine com `-o filename` para salvar um arquivo baixado após o redirecionamento ser resolvido.
Como definir um timeout de requisição?
Use a opção "Timeout de conexão" para adicionar `--connect-timeout `, que limita por quanto tempo o curl aguarda para estabelecer a conexão. Para um limite em toda a transferência — conexão mais download — adicione `--max-time ` ao comando gerado manualmente. Definir timeouts é uma boa prática em qualquer script ou smoke test de CI: sem eles, um endpoint travado pode bloquear seu pipeline indefinidamente. Combine com `--retry N` se quiser que o curl tente novamente falhas transitórias.

Ferramentas relacionadas

Ver todas as ferramentas →

Conversor de Base Numérica — Binário, Hex, Decimal e Octal

Ferramentas de Conversão

Converta números entre binário, hexadecimal, decimal, octal e qualquer base personalizada (2-36) instantaneamente. Gratuito, privado, sem cadastro — todo o processamento acontece no seu navegador.

Decodificador e Codificador Base64

Codificação e Formatação

Decodifique e codifique Base64 online gratuitamente. Conversão em tempo real com suporte completo a UTF-8 e emoji. 100% privado — executa no seu navegador. Sem necessidade de cadastro.

Conversor de Maiúsculas — UPPER, lower, camelCase

Processamento de Texto

Converta texto entre UPPERCASE, lowercase, Title Case, Sentence case, camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE e mais 6 formatos instantaneamente. Grátis, no navegador, sem cadastro.

Conversor de Cores — HEX, RGB, HSL e OKLCH

Ferramentas de Conversão

Converta HEX para RGB, HSL, OKLCH, OKLAB e CMYK no seu navegador — copie qualquer formato com um clique. Grátis, sem cadastro, suas cores nunca saem da página.

Gerador Crontab e Construtor de Expressão Cron

Data e Hora

Crie, valide e decodifique expressões cron no navegador. Pré-visualização ao vivo da próxima execução em horário local ou UTC. Sintaxe POSIX de 5 campos, presets, descrição em linguagem clara. Grátis, privado, sem cadastro.

Conversor CSV para JSON

Codificação e Formatação

Converta CSV para JSON no navegador. RFC 4180, inferência de tipos, cabeçalho, seguro para inteiros grandes. 100% privado, sem upload.