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.
Nossa equipe verifica o construtor de comandos curl contra o comportamento real do curl em métodos HTTP (GET/POST/PUT/PATCH/DELETE), esquemas de autenticação (Bearer, Basic, cabeçalhos API-key), tipos de corpo (JSON bruto, formulário urlencoded, upload multipart de arquivo) e flags de opções (-L, -k, -v, -i, --compressed, -o, timeouts, proxy) — com escape com aspas simples seguro para shell e codificação correta de query string.
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 humanoUma 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 downloadMelhor 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 GUIUma 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 GUIUma 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ódigoO 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
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 METHODao comando gerado. Ou toque em um chip de preset para definir o método e um corpo correspondente com um clique. - 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
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
Authorizationou personalizado correto é gerado no formato exato que o servidor espera. - 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
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
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.
# Pretendia um PATCH, mas -d sozinho implica POST
curl -d '{"role":"admin"}' \
https://api.example.com/users/7 # 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ê).
# O servidor vê urlencoded, não JSON — 400/415
curl -X POST https://api.example.com/users \
-d '{"name":"Ada"}' # 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.
# $name é expandido pelo shell para string vazia
curl -d "{\"user\":\"$name\"}" \
https://api.example.com/users # 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".
# -d transforma isso em POST, não GET curl -d 'page=2&limit=50' \ https://api.example.com/users
# 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.
:: cmd.exe — barra invertida não é char de continuação
curl -X POST https://api.example.com/users \
-d '{"name":"Ada"}' :: 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.
# Espaço divide o argumento — curl vê dois args curl https://api.example.com/search?q=hello world
# 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-Typeausentes. - 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-timeoute--max-timepara 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-datacom-F field=@file, ou construa um download-L -o filenameque 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-Typecorretos. 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
-uaparecer, adicione um corpo JSON e veja o cabeçalhoContent-Typeser 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). Nocmd.exeuse 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/--dataremove newlines e carriage returns do corpo — adequado para pareskey=value, com perda para conteúdo multilinha.--data-rawé igual mas não trata um@inicial como nome de arquivo.--data-binaryenvia os bytes exatamente como fornecidos (use@filepara 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=valueproduzmultipart/form-datacom um boundary gerado — necessário para uploads de arquivo (-F file=@path) e formulários mistos de arquivo/texto.-d field=valueproduzapplication/x-www-form-urlencoded, uma única string unida por&. Nunca definaContent-Typemanualmente 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 <token>literalmente (RFC 6750). Basic auth de-u user:passé codificado em Base64 comoAuthorization: Basic <base64>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: <value>. - 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-urlencodedo 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-Lele segue o cabeçalhoLocationaté a URL final. Observe que o curl descarta o cabeçalhoAuthorizationquando um redirecionamento cruza para um host diferente (um padrão de segurança); use--location-trustedapenas quando você entende as implicações. - Respostas Comprimidas
--compressedadiciona um cabeçalhoAccept-Encodinganunciando 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 filenamegrava o corpo da resposta em um arquivo que você nomeia;-Osalva com o nome de arquivo remoto do caminho da URL. Ambos suprimem o dump normal para stdout. Combine com-Lpara 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 @headerfilepara 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 @fileem vez de-d @file. O-dsimples remove newlines e carriage returns, corrompendo silenciosamente conteúdo binário e multilinha.--data-binaryenvia o arquivo exatamente como está no disco. - Coloque Aspas nos Valores de Cabeçalho
- Sempre envolva valores
-Hentre 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
--compressedem 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-timeoute--max-timepara que um endpoint lento ou travado não bloqueie um pipeline para sempre. Uma verificação de saúde com--max-time 10falha rapidamente e permite que seu CI avance. Combine com--retry Npara 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
-vpara ver a linha de requisição exata, cabeçalhos e handshake TLS. É a forma mais rápida de detectar um método errado, umContent-Typeausente ou um cabeçalho de auth que não foi anexado — depure interativamente, depois remova-vpara produção.
Perguntas Frequentes
O que esta ferramenta faz?
.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?
Como enviar uma requisição POST com JSON no curl?
curl -X POST <url> -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?
Authorization com o valor Bearer YOUR_TOKEN, ou escolha o preset "GET com Bearer" e cole seu token. O comando gerado é curl <url> -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?
curl -X POST <url> -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 <url>. Posso importar um comando copiado do DevTools do navegador ("Copiar como cURL")?
-H para a seção de cabeçalhos e a URL para o campo URL. Como o curl no Windows é diferente?
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?
-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?
-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?
--connect-timeout <segundos>, 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 <segundos> 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 →Gerador htpasswd — bcrypt, Apache MD5 (apr1) e Basic Auth
Web & API
Gere entradas htpasswd com bcrypt, Apache MD5 (apr1), SHA-1 e mais. Obtenha configuracoes prontas para Apache, nginx e Docker. 100% no seu navegador — sem upload.
Gerador de Meta Tags e Open Graph
Web & API
Gere meta tags de Open Graph, Twitter Card e SEO com prévia ao vivo do Google, Facebook e X. 100% grátis, no navegador, sem cadastro — copie e cole o código.
Testador de nginx location — por que esse bloco vence
Web & API
Qual bloco location do nginx vence — e por que os outros perderam. Testador gratuito para =, ^~, ~ e ~*, tudo no seu navegador.
Calculadora de Sub-redes IPv4
Web & API
Calcule endereço de rede, broadcast, faixa de hosts utilizáveis, máscara de sub-rede e wildcard de qualquer bloco CIDR IPv4. Trata links ponto a ponto /31 (RFC 3021), divide blocos em sub-redes e roda no navegador.
Decodificador traceparent — W3C Trace Context
Web & API
Pare de contar dígitos hex. Decodificador traceparent grátis e online — roda no seu navegador, sem envio. Trace ID, span ID, 8 bits trace-flags, tracestate, Datadog/X-Ray/B3.
Ferramenta de Descriptografia AES — OpenSSL e CryptoJS
Ferramentas de Segurança
Descriptografe AES online — GCM/CBC/CTR, frase-senha ou chave bruta, detecta automaticamente o formato "U2FsdGVkX1" do OpenSSL e CryptoJS. 100% no navegador, as chaves nunca saem da página.