Bez KYC — bez dowodu, bez selfie, bez dokumentów. Płatność kryptowalutą: BTC, USDT, USDC, ETH, SOL, LTC
Język: Polski
Pobierz klucz API

Docs · Response format · API v1

Format odpowiedzi SERP API: każdy blok i pole JSON

Jedna rama dla każdego silnika, potem jeden blok na każdą część strony wyników. Ta strona wymienia każdy blok, jego pola i ich typy. W przykładach identyfikatory, liczby, ceny i wyniki są poglądowe.

Ostatnia aktualizacja: · 7 min czytania

Szybka odpowiedź

Co zawiera odpowiedź SerpCrypto SERP API?

Każda odpowiedź SerpCrypto to jeden obiekt JSON: search_metadata (status, silnik, zużyte kredyty), search_parameters (zastosowane ustawienia), search_information, a następnie jeden blok na każdą część strony wyników, taką jak organic_results, ai_overview, people_also_ask lub local_results. Brakujące części są po prostu pominięte. Jedna strona kosztuje 1 kredyt, od 0,30 USD/1K wyszukiwań; płatność kryptowalutą, bez KYC.

Jak wygląda pełna odpowiedź Google?

Poniższy przykład to wyszukiwanie Google dla standing desk w Wielkiej Brytanii, skrócone do jednego elementu na tablicę. Prawdziwa odpowiedź ma około dziesięciu wyników organicznych i każdy inny blok, który strona pokazała dla tego zapytania, lokalizacji i urządzenia.

engine=google, gl=gb: skrócone, poglądowe wartości
{
  "search_metadata": {
    "id": "srch_2b81d0c6fa47",
    "status": "success",
    "engine": "google",
    "created_at": "2026-10-22T10:02:31Z",
    "credits_used": 1
  },
  "search_parameters": {
    "engine": "google",
    "q": "standing desk",
    "gl": "gb",
    "hl": "en",
    "google_domain": "google.co.uk",
    "device": "desktop",
    "page": 1
  },
  "search_information": { "total_results": 52400000, "query_displayed": "standing desk" },
  "ai_overview": {
    "text": "A standing desk lets you work while standing or sitting…",
    "references": [
      { "index": 1, "title": "How to choose a standing desk", "link": "https://www.example.co.uk/guide", "source": "Example Guide" }
    ]
  },
  "ads": [
    { "position": 1, "block": "top", "title": "Electric Standing Desks", "link": "https://shop.example.com/desks", "displayed_link": "shop.example.com", "description": "Free delivery on…" }
  ],
  "organic_results": [
    {
      "position": 1,
      "title": "Best standing desks 2026, tested",
      "link": "https://www.example.co.uk/best-standing-desks",
      "displayed_link": "www.example.co.uk › reviews",
      "snippet": "We tested 14 electric and manual desks…",
      "date": "12 Oct 2026",
      "sitelinks": [ { "title": "Budget picks", "link": "https://www.example.co.uk/best-standing-desks#budget" } ]
    }
  ],
  "people_also_ask": [
    { "question": "Is it healthy to stand all day at a desk?", "snippet": "…", "title": "Standing at work", "link": "https://www.example.org/standing" }
  ],
  "shopping_results": [
    { "position": 1, "title": "Example Desk Pro 140 cm", "price": "£299.00", "source": "Example Store", "link": "https://shop.example.com/desk-pro" }
  ],
  "related_searches": [ { "query": "standing desk electric" }, { "query": "standing desk converter" } ],
  "pagination": { "current": 1, "next_page": 2 }
}

Dlaczego w mojej odpowiedzi brakuje niektórych bloków?

Ponieważ strona wyników ich nie pokazała. Google decyduje dla każdego zapytania, miejsca i urządzenia, czy pokazać reklamy, AI Overview, local pack czy top stories. SerpCrypto zwraca to, co pokazała strona, a resztę pomija, zamiast wysyłać puste placeholdery.

Odczytuj każdy blok z wartością domyślną, jak w poniższych liniach Pythona. Ta sama zasada dotyczy wnętrza bloku: pola opcjonalne, takie jak date lub sitelinks, pojawiają się tylko w wynikach, które je mają.

Python: bezpieczne odczytywanie opcjonalnych bloków
data = response.json()

# A block is present only when the results page shows it: read with a default.
overview = data.get("ai_overview") or {}
organic = data.get("organic_results", [])
questions = [item["question"] for item in data.get("people_also_ask", [])]

if overview:
    print("AI Overview sources:", [ref["link"] for ref in overview.get("references", [])])
print(len(organic), "organic results,", len(questions), "questions")

Co zawiera search_metadata?

PoleTypOpis
idstringIdentyfikator wyszukiwania. Podaj go, gdy kontaktujesz się z pomocą techniczną.
statusstringsuccess przy odpowiedzi 200.
enginestringSilnik, który wykonał wyszukiwanie.
created_atstringCzas wyszukiwania, ISO 8601 w UTC.
credits_usedintegerKredyty pobrane za to wyszukiwanie: 1 przy powodzeniu.

Czym są search_parameters i search_information?

Zapisuj search_parameters razem z wynikami: rejestruje dokładnie, z jakiego kraju, języka, miejsca i urządzenia pochodzi pozycja.

PoleTypOpis
search_parametersobjectZastosowane parametry, z uzupełnionymi wartościami domyślnymi: engine, q, gl, hl, location, google_domain, device, page i pozostałe, które wysłałeś.
search_information.total_resultsintegerLiczba wyników wyświetlona przez wyszukiwarkę, jeśli ją wyświetliła. Wartość szacunkowa, nie dokładna.
search_information.query_displayedstringZapytanie w postaci, w jakiej pokazała je strona wyników.

Jakie pola ma organic_results?

Wyniki organiczne to bezpłatne wyniki wyszukiwania w sieci. W Bing organic_results ma ten sam kształt.

PoleTypOpis
positionintegerKolejność wyniku w tym bloku na tej stronie, zaczynając od 1.
titlestringTytuł niebieskiego linku.
linkstringURL wyniku.
displayed_linkstringURL lub breadcrumb widoczny pod tytułem.
snippetstringTekst widoczny pod tytułem.
datestringData widoczna obok snippetu, zapisana tak jak na stronie. Opcjonalna.
sitelinksarrayDodatkowe linki widoczne pod wynikiem, każdy z title i link. Opcjonalne.

Jak zwracany jest AI Overview?

ai_overview występuje tylko wtedy, gdy Google pokazuje AI Overview dla tego zapytania i miejsca. Wiele zapytań go nie ma.

PoleTypOpis
ai_overview.textstringTekst AI Overview widoczny na stronie.
ai_overview.references[].indexintegerKolejność źródła w przeglądzie.
ai_overview.references[].titlestringTytuł cytowanej strony.
ai_overview.references[].linkstringURL cytowanej strony.
ai_overview.references[].sourcestringNazwa witryny, tak jak jest wyświetlana.

Co zawierają ads i people_also_ask?

PoleTypOpis
ads[].positionintegerKolejność w obrębie bloku.
ads[].blockstringtop lub bottom strony.
ads[].title, link, displayed_linkstringNagłówek, docelowy URL i wyświetlany URL reklamy.
ads[].descriptionstringTekst reklamy.
people_also_ask[].questionstringPytanie w postaci wyświetlanej.
people_also_ask[].snippetstringTekst odpowiedzi wyświetlany po otwarciu pytania.
people_also_ask[].title, linkstringTytuł i URL strony, z której pochodzi odpowiedź.

Jakie inne bloki Google mogą się pojawić?

BlokPolaCo to jest
local_resultsposition, title, address, rating, reviews, typeLocal pack: firmy na mapie dla zapytań z intencją lokalizacyjną.
knowledge_graphtitle, type, description, source.name, source.linkPanel wiedzy o osobie, miejscu, firmie lub rzeczy.
top_storiestitle, link, source, dateArtykuły informacyjne wyświetlane w karuzeli.
inline_videostitle, link, source, durationWyniki wideo wyświetlane w wynikach wyszukiwania.
shopping_resultsposition, title, price, source, linkOferty produktów wyświetlane w wynikach wyszukiwania.
related_searchesqueryWyszukiwania sugerowane na dole strony.
paginationcurrent, next_pageBieżący numer strony i następny, jeśli istnieje.

Co zwracają inne wyszukiwarki?

Każdy vertical zachowuje tę samą ramę i dodaje własną tablicę. W Google Maps local_results jest bogatszy niż local pack w wyszukiwaniu internetowym.

engineGłówna tablicaPola
google_newsnews_resultsposition, title, link, source, date, snippet, thumbnail
google_imagesimages_resultsposition, title, original, original_width, original_height, thumbnail, source, link
google_mapslocal_resultsposition, title, place_id, address, phone, website, rating, reviews, type, hours, gps_coordinates.latitude, gps_coordinates.longitude
google_shoppingshopping_resultsposition, title, price, extracted_price, currency, source, link, delivery, rating, reviews
bingorganic_results, related_searchesTe same pola co w organicznych wynikach wyszukiwania Google

Jak są typowane ceny, oceny i daty?

Wartości zachowują formę, jakiej użyła strona, gdy strona zapisała je jako tekst. price to ciąg znaków ze znakiem waluty, np. £299.00, a Google Shopping dodaje extracted_price jako liczbę, a currency jako kod. rating to liczba, a reviews to liczba całkowita. Daty takie jak date pozostają zapisane tak, jak na stronie, np. 12 Oct 2026 lub 3 days ago, więc sparsuj je we własnym kodzie, jeśli potrzebujesz znacznika czasu.

Jak zbudować ogólny ranking z kilku stron?

Zapisuj numer strony przy każdym wyniku. position podaje kolejność wewnątrz bloku na jednej stronie, a search_parameters.page mówi, która to była strona. Około 10 wyników organicznych na stronę, tak jak Google serwuje od czasu, gdy we wrześniu 2025 przestało respektować num=100; każda dodatkowa strona to jeden kredyt więcej.

Do rank trackingu większość zespołów przechowuje link, position, page, gl, location, device i created_at dla każdego słowa kluczowego i każdego dnia. To wystarczy, aby wykreślić ranking i wyjaśnić zmianę przez miejsce lub urządzenie. Zobacz rank tracking, aby poznać pełną metodę.

Pytania o format odpowiedzi

Czy nazewnictwo pól jest stabilne?

Tak, w obrębie wersji 1. Nowe bloki lub pola mogą być dodawane, więc ignoruj nieznane klucze. Usunięcie lub zmiana nazwy pola wiązałaby się z nową wersją w ścieżce, np. /api/v2/.

Czy mogę dostać surowy HTML strony?

Nie. Wersja 1 zwraca tylko sparsowany JSON. Sparsowane bloki obejmują to, czego potrzebuje większość narzędzi: wyniki, reklamy, pytania, AI Overview, local pack i knowledge panel.

Dlaczego total_results różni się od tego, co policzyłem?

To szacunek, który wypisuje wyszukiwarka, a nie liczba wyników, przez które możesz przechodzić strona po stronie. Strony kończą się znacznie wcześniej niż ta liczba; użyj pagination.next_page, aby wiedzieć, czy istnieje kolejna strona.

Czy odpowiedź bez organicznych wyników kosztuje kredyt?

Tak, jeśli wyszukiwanie się powiodło: pusta strona to wciąż wynik. Tylko błędy są darmowe. 1 kredyt = 1 udane zapytanie wyszukiwania, które zwraca jedną stronę wyników na dowolnym obsługiwanym silniku. Nieudane zapytanie nie jest rozliczane.

Od 0,30 USD/1K wyszukiwań · bez KYC

Pobierz klucz API