SDK engine

Google Maps Reviews

Отзывы Google Maps по data_id или place_id с информацией о месте, темами, фильтрами, сортировкой и пагинацией.

engine: google_maps_reviews TS: XylopSearchEngines.GoogleMapsReviews JS: XylopSearchEngines.GoogleMapsReviews C#: XylopSearchEngines.GoogleMapsReviews Python: XylopSearchEngines.GOOGLE_MAPS_REVIEWS PHP: XylopSearchEngines::GOOGLE_MAPS_REVIEWS Ruby: XylopApiClient::Engines::GOOGLE_MAPS_REVIEWS Java: XylopSearchEngines.GOOGLE_MAPS_REVIEWS Kotlin: XylopSearchEngines.GOOGLE_MAPS_REVIEWS Swift: XylopSearchEngines.googleMapsReviews Dart: XylopSearchEngines.googleMapsReviews C++: xylop::api::engines::google_maps_reviews Go: xylop.EngineGoogleMapsReviews GET /search
TypeScript пример

Вызов через @xylop/api-client-typescript

import { XylopSearchClient, XylopSearchEngines } from "@xylop/api-client-typescript";

interface SearchResponse {
  [key: string]: unknown;
}

const client = new XylopSearchClient({
  apiKey: "YOUR_API_KEY"
});

const response = await client.search<SearchResponse>(
  XylopSearchEngines.GoogleMapsReviews,
  {
    data_id: "0x89c259af336b3341:0xa4969e07ce3108de",
    place_id: "ChIJ...",
    hl: "en",
    sort_by: "newestFirst",
    topic_id: "topic id",
  });

TypeScript SDK написан на TypeScript, генерирует `.d.ts`, поддерживает generic response type и работает через `fetch`.

JavaScript пример

Вызов через @xylop/api-client

import { XylopSearchClient, XylopSearchEngines } from "@xylop/api-client";

const client = new XylopSearchClient({
  apiKey: "YOUR_API_KEY"
});

const response = await client.search(
  XylopSearchEngines.GoogleMapsReviews,
  {
    data_id: "0x89c259af336b3341:0xa4969e07ce3108de",
    place_id: "ChIJ...",
    hl: "en",
    sort_by: "newestFirst",
    topic_id: "topic id",
  });

JavaScript SDK работает в Node.js 18+ и современных браузерах через `fetch`; TypeScript declarations входят в npm package.

C# пример

Вызов через XylopSearchClient

using Xylop.Api.Client;

var client = new XylopSearchClient(new HttpClient(), "YOUR_API_KEY");

using var response = await client.SearchJsonAsync(
    XylopSearchEngines.GoogleMapsReviews,
    new Dictionary<string, string?>
    {
        ["data_id"] = "0x89c259af336b3341:0xa4969e07ce3108de",
        ["place_id"] = "ChIJ...",
        ["hl"] = "en",
        ["sort_by"] = "newestFirst",
        ["topic_id"] = "topic id",
    });

Для типизированного режима используйте `SearchAsync<TResponse>` и response-модель из `Xylop.Logic.SerpApiResponses.*`, которая входит в пакет C# SDK.

Python пример

Вызов через xylop-api-client

from xylop_api_client import XylopSearchClient, XylopSearchEngines

client = XylopSearchClient("YOUR_API_KEY")

response = client.search(
    XylopSearchEngines.GOOGLE_MAPS_REVIEWS,
    {
        "data_id": "0x89c259af336b3341:0xa4969e07ce3108de",
        "place_id": "ChIJ...",
        "hl": "en",
        "sort_by": "newestFirst",
        "topic_id": "topic id",
    },
)

Python SDK возвращает JSON как обычные `dict`/`list` и не требует runtime-зависимостей.

PHP пример

Вызов через xylop/api-client

<?php

use Xylop\Api\Client\XylopSearchClient;
use Xylop\Api\Client\XylopSearchEngines;

$client = new XylopSearchClient('YOUR_API_KEY');

$response = $client->search(
    XylopSearchEngines::GOOGLE_MAPS_REVIEWS,
    [
        'data_id' => '0x89c259af336b3341:0xa4969e07ce3108de',
        'place_id' => 'ChIJ...',
        'hl' => 'en',
        'sort_by' => 'newestFirst',
        'topic_id' => 'topic id',
    ]
);

PHP SDK использует стандартные stream wrappers, возвращает decoded JSON array и не требует runtime-зависимостей.

Ruby пример

Вызов через xylop-api-client

require "xylop_api_client"

client = XylopApiClient::Client.new(api_key: "YOUR_API_KEY")

response = client.search(
  XylopApiClient::Engines::GOOGLE_MAPS_REVIEWS,
  {
    "data_id" => "0x89c259af336b3341:0xa4969e07ce3108de",
    "place_id" => "ChIJ...",
    "hl" => "en",
    "sort_by" => "newestFirst",
    "topic_id" => "topic id",
  }
)

Ruby SDK использует стандартные `net/http`, `json` и возвращает JSON как обычные Hash/Array значения.

Java пример

Вызов через xylop-api-client

import java.util.Map;
import ru.xylop.api.client.XylopSearchClient;
import ru.xylop.api.client.XylopSearchEngines;

var client = new XylopSearchClient("YOUR_API_KEY");

String responseJson = client.searchJson(
    XylopSearchEngines.GOOGLE_MAPS_REVIEWS,
    Map.of(
        "data_id", "0x89c259af336b3341:0xa4969e07ce3108de",
        "place_id", "ChIJ...",
        "hl", "en",
        "sort_by", "newestFirst",
        "topic_id", "topic id"
    ));

Java SDK использует `java.net.http.HttpClient`, возвращает JSON-строку и не требует runtime-зависимостей.

Kotlin пример

Вызов через xylop-api-kotlin-client

import ru.xylop.api.kotlin.XylopSearchClient
import ru.xylop.api.kotlin.XylopSearchEngines

val client = XylopSearchClient("YOUR_API_KEY")

val responseJson = client.searchJson(
    XylopSearchEngines.GOOGLE_MAPS_REVIEWS,
    mapOf(
        "data_id" to "0x89c259af336b3341:0xa4969e07ce3108de",
        "place_id" to "ChIJ...",
        "hl" to "en",
        "sort_by" to "newestFirst",
        "topic_id" to "topic id",
    ),
)

Kotlin SDK использует JVM `HttpClient`, возвращает JSON-строку и оставляет JSON-маппинг приложению.

Swift пример

Вызов через XylopApiClient

import XylopApiClient

let client = XylopSearchClient(apiKey: "YOUR_API_KEY")

let response = try await client.searchJSON(
    engine: XylopSearchEngines.googleMapsReviews,
    parameters: [
        "data_id": "0x89c259af336b3341:0xa4969e07ce3108de",
        "place_id": "ChIJ...",
        "hl": "en",
        "sort_by": "newestFirst",
        "topic_id": "topic id",
    ]
)

Swift SDK использует Foundation `URLSession`, поддерживает async/await и возвращает Data, JSONSerialization values или caller-owned Decodable models.

Dart пример

Вызов через xylop_api_client

import 'package:xylop_api_client/xylop_api_client.dart';

Future<void> main() async {
  final client = XylopSearchClient('YOUR_API_KEY');

  final response = await client.search(
    XylopSearchEngines.googleMapsReviews,
    <String, Object?>{
      'data_id': '0x89c259af336b3341:0xa4969e07ce3108de',
      'place_id': 'ChIJ...',
      'hl': 'en',
      'sort_by': 'newestFirst',
      'topic_id': 'topic id',
    },
  );

  print(response);
}

Dart SDK использует `dart:io`, возвращает decoded JSON или raw response text и не требует runtime-зависимостей.

C++ пример

Вызов через Xylop.Api.Cpp

#include <xylop/api/client.hpp>
#include <xylop/api/curl_transport.hpp>

int main()
{
    xylop::api::search_client client(
        "YOUR_API_KEY",
        xylop::api::curl_transport);

    auto response_json = client.search_text(
        xylop::api::engines::google_maps_reviews,
        {
            {"data_id", "0x89c259af336b3341:0xa4969e07ce3108de"},
            {"place_id", "ChIJ..."},
            {"hl", "en"},
            {"sort_by", "newestFirst"},
            {"topic_id", "topic id"},
        });

    return 0;
}

C++ SDK имеет header-only C++17 core, принимает transport callback и может использовать optional libcurl adapter `xylop::api::curl_transport`.

Go пример

Вызов через Xylop.Api.Go

package main

import (
    "context"
    "log"

    xylop "github.com/Leonid-Vizel/Xylop.AdminPanel/src/Xylop.Api.Go"
)

func main() {
    client, err := xylop.NewClient("YOUR_API_KEY")
    if err != nil {
        log.Fatal(err)
    }

    var response map[string]any
    err = client.SearchJSON(
        context.Background(),
        xylop.EngineGoogleMapsReviews,
        xylop.Params(map[string]string{
            "data_id": "0x89c259af336b3341:0xa4969e07ce3108de",
            "place_id": "ChIJ...",
            "hl": "en",
            "sort_by": "newestFirst",
            "topic_id": "topic id",
        }),
        &response)
    if err != nil {
        log.Fatal(err)
    }
}

Go SDK возвращает raw JSON bytes или декодирует ответ в пользовательскую структуру, `map[string]any` либо другой target.

Endpoint

HTTP контракт

URL
https://api.xylop.ru/search
Engine
google_maps_reviews
API key
Передается SDK автоматически из настроек клиента.
Входные параметры

Параметры запроса

Параметр Тип Обязателен Значение Описание
api_key SDK string Да Ключ Xylop API. В SDK задается один раз в настройках или конструкторе клиента.
engine SDK string Да google_maps_reviews Движок Google Maps Reviews.
data_id string Нет 0x89c259af336b3341:0xa4969e07ce3108de Google Maps data_id из Google Maps API. Нужен data_id или place_id.
place_id string Нет ChIJ... Google Maps place_id. Нужен place_id или data_id.
hl string Нет en Язык отзывов и интерфейса.
sort_by string Нет qualityScore qualityScore, newestFirst, ratingHigh или ratingLow.
topic_id string Нет topic id Фильтр по теме из блока topics. Нельзя использовать вместе с query.
query string Нет matcha Текстовый фильтр по отзывам. Нельзя использовать вместе с topic_id.
num number Нет 10 Количество отзывов от 1 до 20.
next_page_token string Нет pagination.next_page_token Токен следующей страницы отзывов.
Выходные параметры

Поля ответа

Поле Тип Источник Описание
search_metadata object пример ответа Метаданные запроса: статус, идентификатор, время выполнения и служебная информация провайдера.
search_parameters object пример ответа Нормализованные параметры, с которыми upstream-поиск выполнил запрос.
place_info object пример ответа Типизированное поле ответа для этого engine; структура зависит от upstream-провайдера и параметров запроса.
topics array пример ответа Типизированное поле ответа для этого engine; структура зависит от upstream-провайдера и параметров запроса.
reviews array пример ответа Отзывы, оценки, авторы, даты и текстовые фрагменты.
pagination object пример ответа Данные пагинации или токены для перехода к следующей странице.
JSON

Пример ответа

{
  "search_metadata": {
    "status": "Success",
    "google_maps_reviews_url": "https://www.google.com/maps/preview/review/listentitiesreviews?..."
  },
  "search_parameters": {
    "engine": "google_maps_reviews",
    "data_id": "0x89c259af336b3341:0xa4969e07ce3108de",
    "hl": "en",
    "sort_by": "newestFirst"
  },
  "place_info": {
    "title": "Example Coffee",
    "address": "123 Main St, New York, NY",
    "rating": 4.5,
    "reviews": 1820,
    "type": "Coffee shop"
  },
  "topics": [
    {
      "keyword": "service",
      "mentions": 38,
      "id": "service"
    }
  ],
  "reviews": [
    {
      "position": 1,
      "link": "https://www.google.com/maps/reviews/data=...",
      "user": {
        "name": "Alex Example",
        "link": "https://www.google.com/maps/contrib/123",
        "contributor_id": "123",
        "local_guide": true,
        "reviews": 42,
        "photos": 8
      },
      "source": "Google",
      "review_id": "ChZ...",
      "likes": 3,
      "rating": 5,
      "date": "2 weeks ago",
      "iso_date": "2026-04-22T12:00:00Z",
      "snippet": "Great coffee and fast service.",
      "extracted_snippet": {
        "original": "Great coffee and fast service."
      },
      "details": {
        "service": 5,
        "atmosphere": 5
      },
      "images": [
        "https://example.com/review.jpg"
      ]
    }
  ],
  "pagination": {
    "next_page_token": "..."
  }
}