Sem KYC — sem documento de identidade, sem selfie, sem documentos. Pague com cripto: BTC, USDT, USDC, ETH, SOL, LTC
Idioma: Português
Obter uma chave de API

Docs · curl · jq · PowerShell

API de SERP com curl e jq: receitas de uma linha

A forma mais rápida de ver o que a API retorna é um terminal. Cada uma destas receitas imprime exatamente uma coisa: links, perguntas, fontes ou empresas locais. Elas funcionam no bash e no zsh; uma versão em PowerShell fecha a página.

Última atualização: · 5 min de leitura

Resposta rápida

Como faço uma consulta a uma API de SERP com curl?

Execute curl -sG "https://serpcrypto.com/api/v1/search" -H "Authorization: Bearer $KEY" --data-urlencode "q=your query" e canalize o JSON para jq. Com SerpCrypto, cada pesquisa bem-sucedida custa 1 crédito, a partir de US$ 0,30/1K pesquisas, e erros são gratuitos. -G transforma as flags de dados em uma query string. Os créditos são pagos com cripto, sem KYC.

Quais flags do curl importam aqui?

Defina a chave uma vez por shell com export SERPCRYPTO_API_KEY=…. Instale jq pelo seu gerenciador de pacotes caso não esteja disponível.

FlagPor quê
-sSilencioso: nenhuma barra de progresso misturada ao JSON.
-GEnvia os valores de -d e --data-urlencode como query string em uma requisição GET.
--data-urlencodeCodifica espaços, aspas e acentos em q e location.
-H "Authorization: Bearer …"Sua chave de API. Mantenha-a em uma variável de ambiente.
-w '%{http_code}'Exibe o status HTTP, útil quando uma chamada falha.

Peça os resultados orgânicos e deixe o jq exibir a posição e o link de cada um, separados por tabulação. O formato []? não exibe nada em vez de falhar quando um bloco está ausente, o que mantém os scripts silenciosos em páginas incomuns.

10 principais links
# Top 10 organic links, one per line
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=kubernetes cost monitoring" -d gl=us -d hl=en \
  | jq -r '.organic_results[]? | "\(.position)\t\(.link)"'

Como faço para listar as perguntas do People Also Ask?

Leia o people_also_ask[].question. As perguntas seguem o idioma definido em hl e mudam conforme o país em gl, então execute a mesma consulta em cada mercado para o qual você escreve. As equipes de conteúdo colam essa lista direto em um briefing.

People Also Ask
# People Also Ask questions, ready for a content brief
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=how to brew cold brew" -d gl=gb -d hl=en \
  | jq -r '.people_also_ask[]?.question'

Como faço para ver quais fontes um AI Overview cita?

Leia o ai_overview.references. O bloco só existe quando o Google exibe um AI Overview para essa consulta e local, então a receita exibe uma mensagem clara caso contrário. Acompanhar essas fontes ao longo do tempo mostra se suas páginas são citadas nas respostas geradas do Google.

Fontes do AI Overview
# Sources cited by the AI Overview, if the page shows one
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=what is a heat pump" -d gl=us -d hl=en \
  | jq -r 'if .ai_overview then .ai_overview.references[] | "\(.index)\t\(.source)\t\(.link)" else "no AI Overview for this query" end'

Como faço para obter o local pack e a lista do Maps?

Uma pesquisa na web com location retorna o local pack exibido na página de resultados, geralmente alguns negócios. O engine=google_maps retorna a lista mais longa do Maps com endereço, avaliação e número de avaliações, que o @tsv transforma em linhas para uma planilha. Ambos custam 1 crédito cada.

Local pack, depois Google Maps
# Local pack in a city, then the full Maps list for the same query
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=vegan restaurant" \
  --data-urlencode "location=Toronto, Ontario, Canada" -d gl=ca -d hl=en \
  | jq -r '.local_results[]? | "\(.position)\t\(.title)\t\(.rating // "-")"'

curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  -d engine=google_maps --data-urlencode "q=vegan restaurant Toronto" -d gl=ca -d hl=en \
  | jq -r '.local_results[]? | [.title, .address, .rating, .reviews] | @tsv'

Como faço para ver o erro quando uma chamada falha?

Adicione -w '\nHTTP %{http_code}\n' para exibir o status após o corpo. O corpo de erro é um JSON pequeno com code e message; a página de erros lista todos os seis códigos. O segundo comando consulta seus créditos, o que é gratuito.

Código de status e créditos
# Print the body, then the HTTP status on its own line
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=test" -w '\nHTTP %{http_code}\n'

# Credits left (free call)
curl -s "https://serpcrypto.com/api/v1/credits" -H "Authorization: Bearer $SERPCRYPTO_API_KEY" | jq .

Qual é o equivalente em PowerShell no Windows?

Invoke-RestMethod envia a requisição e converte o JSON em objetos, então você não precisa de jq. Passe os parâmetros como hashtable em -Body: em uma requisição GET, o PowerShell os codifica na query string. O Format-Table então exibe posições, títulos e links.

PowerShell
# Windows PowerShell 5.1 or PowerShell 7
$headers = @{ Authorization = "Bearer $env:SERPCRYPTO_API_KEY" }
$query = @{ q = "kubernetes cost monitoring"; gl = "us"; hl = "en" }
$data = Invoke-RestMethod -Uri "https://serpcrypto.com/api/v1/search" -Headers $headers -Body $query -Method Get
$data.organic_results | Select-Object position, title, link | Format-Table -AutoSize

Quando devo passar do curl para o código?

Assim que você repetir um comando com uma lista de palavras-chave. Um loop de shell funciona para algumas dezenas de pesquisas, mas retries, paralelismo e armazenamento são mais fáceis em Python ou Node.js. As requisições são as mesmas, então uma receita testada aqui funciona sem alterações. Cada pesquisa continua custando 1 crédito, a partir de US$ 0,75/1K pesquisas no pacote 10.000 pesquisas.

Dúvidas sobre curl

Por que minha consulta retorna um erro 400 no curl?

Geralmente porque q foi enviado com -d e contém um caractere que precisa de codificação. Use --data-urlencode "q=…" para a consulta e para location; códigos simples como gl=us podem ficar com -d.

Posso salvar o JSON completo em um arquivo?

Sim: adicione -o result.json em vez de canalizar para jq. Salvar as respostas brutas permite reprocessá-las depois sem pagar pela pesquisa novamente.

O curl no Windows funciona da mesma forma?

O Windows 10 e 11 incluem curl.exe, e as flags são as mesmas. As aspas diferem no cmd.exe, então o PowerShell com Invoke-RestMethod costuma ser mais simples ali.

A partir de US$ 0,30/1K pesquisas · sem KYC

Obter uma chave de API