Risposta rapida
Come interrogo una SERP API con curl?
Esegui curl -sG "https://serpcrypto.com/api/v1/search" -H "Authorization: Bearer $KEY" --data-urlencode "q=your query" e passa il JSON a jq. Con SerpCrypto, ogni ricerca riuscita costa 1 credito, a partire da 0,30 USD/1K ricerche, e gli errori sono gratuiti. -G trasforma i flag dei dati in una query string. I crediti si pagano in criptovalute, senza KYC.
Quali flag di curl contano qui?
Imposta la chiave una volta per shell con export SERPCRYPTO_API_KEY=…. Installa jq dal tuo package manager se manca.
| Flag | Perché |
|---|---|
-s | Silenzioso: nessuna barra di avanzamento mescolata al JSON. |
-G | Invia i valori -d e --data-urlencode come query string su una richiesta GET. |
--data-urlencode | Codifica spazi, virgolette e accenti in q e location. |
-H "Authorization: Bearer …" | La tua chiave API. Tienila in una variabile d'ambiente. |
-w '%{http_code}' | Stampa lo status HTTP, utile quando una chiamata fallisce. |
Come stampo i primi 10 link per una keyword?
Chiedi i risultati organici e lascia che jq stampi la posizione e il link di ciascuno, separati da una tabulazione. Il formato []? non stampa nulla invece di fallire quando un blocco è assente, il che mantiene gli script silenziosi sulle pagine insolite.
# 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)"'Come elenco le domande di People Also Ask?
Leggi people_also_ask[].question. Le domande seguono la lingua in hl e cambiano con il paese in gl, quindi esegui la stessa query in ogni mercato per cui scrivi. I team di contenuti incollano questa lista direttamente in un brief.
# 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'Come vedo quali fonti cita un AI Overview?
Leggi ai_overview.references. Il blocco esiste solo quando Google mostra un AI Overview per quella query e quel luogo, quindi la ricetta stampa un messaggio chiaro altrimenti. Monitorare queste fonti nel tempo mostra se le tue pagine vengono citate nelle risposte generate da Google.
# 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'Come ottengo il local pack e la lista di Maps?
Una ricerca web con location restituisce il local pack mostrato nella pagina dei risultati, di solito alcune attività. engine=google_maps restituisce la lista più lunga di Maps con indirizzo, valutazione e numero di recensioni, che @tsv trasforma in righe per un foglio di calcolo. Entrambe costano 1 credito ciascuna.
# 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'Come vedo l'errore quando una chiamata fallisce?
Aggiungi -w '\nHTTP %{http_code}\n' per stampare lo status dopo il body. Il body di un errore è un piccolo JSON con code e message; la pagina degli errori elenca tutti e sei i codici. Il secondo comando legge i tuoi crediti, ed è gratuito.
# 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 è l'equivalente PowerShell su Windows?
Invoke-RestMethod invia la richiesta e converte il JSON in oggetti, quindi non ti serve jq. Passa i parametri come hashtable in -Body: con una richiesta GET, PowerShell li codifica nella query string. Poi Format-Table stampa posizioni, titoli e link.
# 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 -AutoSizeQuando dovrei passare da curl al codice?
Non appena ripeti un comando con una lista di keyword. Un loop nella shell funziona per qualche decina di ricerche, ma retry, parallelismo e archiviazione sono più facili in Python o Node.js. Le richieste sono le stesse, quindi una ricetta testata qui si trasferisce senza modifiche. Ogni ricerca resta a 1 credito, a 0,75 USD/1K ricerche sul pack 10.000 ricerche.
domande su curl
Perché la mia query restituisce un errore 400 in curl?
Di solito perché q è stato inviato con -d e contiene un carattere che va codificato. Usa --data-urlencode "q=…" per la query e per location; i codici semplici come gl=us possono restare con -d.
Posso salvare il JSON completo in un file?
Sì: aggiungi -o result.json invece di inviare l'output a jq. Salvare le risposte grezze ti permette di rielaborarle in seguito senza pagare di nuovo la ricerca.
curl su Windows funziona allo stesso modo?
Windows 10 e 11 includono curl.exe, e i flag sono gli stessi. Le virgolette funzionano diversamente in cmd.exe, quindi PowerShell con Invoke-RestMethod è di solito più semplice lì.