Szybka odpowiedź
Jak zapytać API SERP za pomocą curl?
Uruchom curl -sG "https://serpcrypto.com/api/v1/search" -H "Authorization: Bearer $KEY" --data-urlencode "q=your query" i przekaż JSON do jq. W SerpCrypto każde udane wyszukiwanie kosztuje 1 kredyt, od 0,30 USD/1K wyszukiwań, a błędy są bezpłatne. -G zamienia flagi danych w query string. Kredyty są opłacane kryptowalutą, bez KYC.
Które flagi curl mają tu znaczenie?
Ustaw klucz raz na powłokę za pomocą export SERPCRYPTO_API_KEY=…. Zainstaluj jq ze swojego menedżera pakietów, jeśli go brakuje.
| Flaga | Dlaczego |
|---|---|
-s | Cicha praca: pasek postępu nie miesza się z JSON. |
-G | Wyślij wartości -d i --data-urlencode jako query string w żądaniu GET. |
--data-urlencode | Koduj spacje, cudzysłowy i znaki diakrytyczne w q i location. |
-H "Authorization: Bearer …" | Twój klucz API. Trzymaj go w zmiennej środowiskowej. |
-w '%{http_code}' | Wyświetl status HTTP — przydatne, gdy wywołanie się nie powiedzie. |
Jak wyświetlić 10 najlepszych linków dla słowa kluczowego?
Poproś o wyniki organiczne i pozwól jq wyświetlić pozycję i link każdego z nich, oddzielone tabulatorem. Formularz []? niczego nie wyświetla zamiast zwracać błąd, gdy blok jest nieobecny, dzięki czemu skrypty zachowują ciszę na nietypowych stronach.
# 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)"'Jak wyświetlić pytania z People Also Ask?
Odczytaj people_also_ask[].question. Pytania są w języku zgodnym z hl i zmieniają się wraz z krajem w gl, więc uruchom to samo zapytanie na każdym rynku, dla którego piszesz. Zespoły contentowe wklejają tę listę prosto do briefu.
# 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'Jak sprawdzić, które źródła cytuje AI Overview?
Odczytaj ai_overview.references. Blok istnieje tylko wtedy, gdy Google wyświetla AI Overview dla tego zapytania i lokalizacji, więc w przeciwnym razie przepis wyświetla czytelny komunikat. Śledzenie tych źródeł w czasie pokazuje, czy Twoje strony są cytowane w generowanych odpowiedziach 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'Jak pobrać local pack i listę z Map?
Wyszukiwanie w sieci z location zwraca local pack wyświetlany na stronie wyników, zwykle kilka firm. engine=google_maps zwraca dłuższą listę z Map z adresem, oceną i liczbą opinii, którą @tsv zamienia w wiersze do arkusza kalkulacyjnego. Oba kosztują 1 kredyt.
# 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'Jak zobaczyć błąd, gdy wywołanie się nie powiedzie?
Dodaj -w '\nHTTP %{http_code}\n', aby wyświetlić status po treści odpowiedzi. Treść błędu to mały JSON z code i message; strona błędów wymienia wszystkie sześć kodów. Druga komenda odczytuje Twoje kredyty, co jest bezpłatne.
# 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 .Jaki jest odpowiednik w PowerShell na Windows?
Invoke-RestMethod wysyła zapytanie i parsuje JSON do obiektów, więc nie potrzebujesz jq. Przekaż parametry jako hashtable w -Body: przy zapytaniu GET PowerShell koduje je do query string. Następnie Format-Table wyświetla pozycje, tytuły i linki.
# 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 -AutoSizeKiedy przejść z curl do kodu?
Gdy tylko powtarzasz komendę z listą słów kluczowych. Pętla powłoki działa dla kilkudziesięciu wyszukiwań, ale ponowienia, równoległość i przechowywanie są łatwiejsze w Python lub Node.js. Zapytania są takie same, więc przepis przetestowany tutaj przenosi się bez zmian. Każde wyszukiwanie to nadal 1 kredyt, po 0,75 USD/1K wyszukiwań w pakiecie 10 000 wyszukiwań.
Pytania o curl
Dlaczego moje zapytanie zwraca błąd 400 w curl?
Zwykle dlatego, że q zostało wysłane z -d i zawiera znak wymagający kodowania. Użyj --data-urlencode "q=…" dla zapytania i dla location; zwykłe kody, takie jak gl=us, mogą zostać z -d.
Czy mogę zapisać pełny JSON do pliku?
Tak: dodaj -o result.json zamiast przekierowywać do jq. Zapis surowych odpowiedzi pozwala je później ponownie sparsować bez ponownego płacenia za wyszukiwanie.
Czy curl w Windows działa tak samo?
Windows 10 i 11 zawierają curl.exe, a flagi są takie same. Cudzysłowy różnią się w cmd.exe, więc PowerShell z Invoke-RestMethod jest tam zwykle prostszy.