Dokumentacja API

Wstęp

API do pobierania danych z Google Maps: szczegółów wizytówek, opinii wraz z profilami recenzentów oraz statystyk kont użytkowników. Dane pochodzą z wewnętrznych endpointów Google, dzięki czemu zawierają pola niedostępne w oficjalnym Places API (m.in. status działalności, przejęcie wizytówki, atrybuty, popularne godziny, rezerwacja online, posty właściciela).

Adres bazowy
https://znajdzplaceid.pl/api/

Wszystkie odpowiedzi są w formacie JSON i mają wspólną kopertę:

{
  "success": true,
  "data":    { ... },
  "timestamp": "2026-07-25T18:00:00+00:00",
  "execution_time": "624.31ms"
}

Limity i obsługa błędów

Klucz API nie jest wymagany. Obowiązują limity zapytań na godzinę (nagłówki X-RateLimit-* w każdej odpowiedzi): /batch 1000, /all 2000, pozostałe 5000.

KodZnaczenie
200Sukces
400Błędny parametr lub miejsce/profil nieznalezione
429Przekroczony limit zapytań
503API wyłączone
{
  "success": false,
  "error": { "message": "Nie znaleziono miejsca dla podanego Place ID", "code": 400 }
}
GET /details — szczegóły wizytówki (55 pól)
Parametry
ParametrWymaganyOpis
placeidtakPlace ID w formacie ChIJ… lub feature id 0x…:0x…
GET https://znajdzplaceid.pl/api/details?placeid=ChIJ30f3sHaZBUcRSdmw0rjcnVA
Cennik usług — parametr uslugi=1
GET https://znajdzplaceid.pl/api/details?placeid=ChIJ30f3sHaZBUcRSdmw0rjcnVA&uslugi=1

Dokładany tylko na żądanie: blok potrafi mieć 50 kB i powiększa odpowiedź o ok. 85%, a details obsługuje dziesiątki tysięcy wywołań na dobę. Bez parametru kształt odpowiedzi jest niezmieniony. Ma go ok. 58% wizytówek.

uslugi.liczba_pozycjiintIle usług łącznie
uslugi.liczba_kategoriiintIle grup usług
uslugi.kategoriearrayNazwy grup, np. MASAŻE RELAKSACYJNE
uslugi.pozycji_z_cenaintIle pozycji ma podaną cenę — cennik bywa bez cen, sama lista usług też występuje
uslugi.pozycji_z_opisemintIle pozycji ma opis (np. kancelarie opisują zakres spraw)
uslugi.pozycje[]arrayPozycje: kategoria, nazwa, opis, cena, czas, link
Bez daty aktualizacji. Google nie podaje, kiedy cennik był zmieniany — sprawdzone na pięciu wizytówkach, zero znaczników czasu. Świeżość da się wykryć wyłącznie porównując treść między pobraniami po swojej stronie.
Link przy pozycji to co innego niż rezerwacja_url — prowadzi do rezerwacji konkretnej usługi (parametr variantId), a nie do salonu.
Zwracane pola

Identyfikacja i podstawy

cidstringIdentyfikator CID
place_id_chijstringPlace ID w formacie ChIJ
entity_idstringStabilny identyfikator Knowledge Graph (/g/…)
nazwa_wizytowkistringNazwa firmy
kategoriastringKategoria główna
kategoriearrayPełna lista kategorii
kategoria_gcidstringIdentyfikator kategorii głównej wg Google, np. gcid:dental_clinic — niezależny od języka, więc nadaje się do dopasowywania kategorii między wizytówkami
podtypyarrayMaszynowe klucze typów, np. skin_care_clinic
czy_znalezionoboolCzy miejsce faktycznie istnieje

Adres i kontakt

adresstringAdres pełny
adres_ulicastringUlica z numerem
adres_kodstringKod pocztowy
adres_miastostringMiasto
lat / lngfloatWspółrzędne
strefa_czasowastringStrefa czasowa miejsca, np. Europe/Warsaw — potrzebna do poprawnego liczenia „czy teraz otwarte"
kraj / jezykstringKod kraju i języka wizytówki
telefonstringTelefon w formacie wyświetlanym
telefon_rawstringTelefon bez separatorów
strona_wwwstringAdres strony
domenastringSama domena

Oceny

srednia_ocenfloatŚrednia ocena
liczba_opiniiintLiczba opinii
liczba_5_gwiazdek … liczba_1_gwiazdkaintRozkład ocen — ile opinii na każdą liczbę gwiazdek. Nienaturalny rozkład (same piątki, brak środka) to przesłanka do analizy anomalii
liczba_5_gwiazdek … liczba_1_gwiazdkaintHistogram ocen

Status i własność przydatne w lead-gen

status_dzialalnoscistringotwarte / zamkniete_tymczasowo / zamkniete_na_stale
przejetabool|nullCzy wizytówka jest przejęta przez właściciela. false = nikt się nią nie opiekuje
link_przejeciastringGotowy link „zgłoś prawo do firmy" (tylko gdy nieprzejęta)
zarzadca_idstringIdentyfikator konta zarządzającego wizytówką
gbp_idstringIdentyfikator konta Google Business Profile. Dwie wizytówki z tym samym gbp_id lub zarzadca_id są prowadzone przez to samo konto — pozwala wykrywać sieciówki i agencje obsługujące wiele wizytówek

Treść i aktywność

opis / ma_opisstring / boolOpis od właściciela i flaga jego obecności
godzinyarrayGodziny otwarcia dla każdego dnia
atrybutyarrayUdogodnienia pogrupowane, np. dostępność dla wózków, płatności, rezerwacje
rezerwacja_onlineboolCzy da się umówić wizytę online
rezerwacja_dostawcastringSystem rezerwacji, np. Booksy
rezerwacja_urlstringBezpośredni link do rezerwacji
liczba_postowintLiczba postów właściciela
ostatni_post_datastringData ostatniego posta (ISO 8601)
ostatni_post_dni_temuintIle dni temu ukazał się ostatni post
ostatni_post_tekst_datystringData opisowo, np. „7 godzin temu"
ostatni_post_trescstringPoczątek treści ostatniego posta

Ruch i otoczenie

popularne_godzinyarrayObciążenie procentowe dla każdej godziny w 7 dniach tygodnia
szczyt_dzien / szczyt_godzina / szczyt_obciazeniestring / string / intMoment największego ruchu
inni_wyszukiwaliarrayKonkurenci z sekcji „Inni wyszukiwali również" (zawsze 5, dobór Google). Każdy: nazwa, ocena, liczba_opinii, kategoria, kategorie (pełna lista), lat, lng, odleglosc_m (dystans od tej wizytówki w metrach), fid
odznakiarrayOdznaki tożsamości firmy, np. „Przyjazne dla osób LGBTQ+". Właściciel zaznacza je świadomie, więc obecność jest sygnałem zaangażowania — ma je ok. 33% wizytówek
liczba_zdjec_podgladintLiczba zdjęć w podglądzie (nie jest to liczba wszystkich zdjęć)
zdjecia_miniaturyarrayAdresy miniatur
Przykładowa odpowiedź (fragment)
{
  "success": true,
  "data": {
    "place_id": "ChIJ30f3sHaZBUcRSdmw0rjcnVA",
    "details": {
      "nazwa_wizytowki": "Perfect Look Clinic Leszno",
      "adres_ulica": "17 Stycznia 90",
      "adres_kod": "64-100",
      "adres_miasto": "Leszno",
      "srednia_ocen": 4.8,
      "liczba_opinii": 48,
      "status_dzialalnosci": "otwarte",
      "przejeta": true,
      "rezerwacja_online": true,
      "rezerwacja_dostawca": "Booksy",
      "liczba_postow": 10,
      "ostatni_post_dni_temu": 0,
      "szczyt_dzien": "sobota",
      "szczyt_godzina": "09:00",
      "szczyt_obciazenie": 100,
      "atrybuty": [
        { "grupa": "Ułatwienia dostępu", "pozycje": ["Wejście dostępne dla osób na wózkach"] }
      ],
      "inni_wyszukiwali": [
        { "nazwa": "Centrum Estetyki Your Beauty", "ocena": 4.8, "liczba_opinii": 71 }
      ]
    }
  }
}
Pola techniczne. reviews_pagination_key, reviews_pagination_key1 i reviews_pagination_key2 to wewnętrzne tokeny Google używane przez /place-reviews do pobierania kolejnych stron opinii. Zwracamy je, bo bywają przydatne w diagnostyce, ale nie są przeznaczone do samodzielnego użycia i mogą zniknąć bez zapowiedzi.
GET /place-reviews — opinie wizytówki (26 pól na opinię)
Parametry
ParametrWymaganyOpis
placeidtakChIJ… lub 0x…:0x…
countnieLiczba opinii, 1–2000. Domyślnie 10 — Google zwraca 10 opinii na stronę, więc to najtańsze zapytanie (~1 s; każda kolejna strona +0,55 s). Powyżej 2000 potrzebny byłby model asynchroniczny — 3000 opinii to ~296 s, czyli tyle, ile wynosi limit czasu proxy
Uwaga: proste reguły w rodzaju „mało opinii albo niski poziom oznacza fałszywkę" prowadzą na manowce. W badanej sieci fałszywych opinii konta miały wyższy poziom Lokalnego Przewodnika (mediana 3 wobec 2) i więcej punktów (208 wobec 65), ponieważ były celowo postarzane. Rozstrzyga dopiero udział ukrytych treści.