Google Images Light
Быстрая Google Images выдача в typed DTO-контракте: компактные image results, raw links, SerpApi thumbnails и пагинация через start.
Вызов через @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.GoogleImagesLight,
{
q: "coffee",
location: "Austin, Texas, United States",
uule: "w+CAIQICINVW5pdGVkIFN0YXRlcw",
google_domain: "google.com",
gl: "us",
});
TypeScript SDK написан на TypeScript, генерирует `.d.ts`, поддерживает generic response type и работает через `fetch`.
Вызов через @xylop/api-client
import { XylopSearchClient, XylopSearchEngines } from "@xylop/api-client";
const client = new XylopSearchClient({
apiKey: "YOUR_API_KEY"
});
const response = await client.search(
XylopSearchEngines.GoogleImagesLight,
{
q: "coffee",
location: "Austin, Texas, United States",
uule: "w+CAIQICINVW5pdGVkIFN0YXRlcw",
google_domain: "google.com",
gl: "us",
});
JavaScript SDK работает в Node.js 18+ и современных браузерах через `fetch`; TypeScript declarations входят в npm package.
Вызов через XylopSearchClient
using Xylop.Api.Client;
var client = new XylopSearchClient(new HttpClient(), "YOUR_API_KEY");
using var response = await client.SearchJsonAsync(
XylopSearchEngines.GoogleImagesLight,
new Dictionary<string, string?>
{
["q"] = "coffee",
["location"] = "Austin, Texas, United States",
["uule"] = "w+CAIQICINVW5pdGVkIFN0YXRlcw",
["google_domain"] = "google.com",
["gl"] = "us",
});
Для типизированного режима используйте `SearchAsync<TResponse>` и response-модель из `Xylop.Logic.SerpApiResponses.*`, которая входит в пакет C# SDK.
Вызов через xylop-api-client
from xylop_api_client import XylopSearchClient, XylopSearchEngines
client = XylopSearchClient("YOUR_API_KEY")
response = client.search(
XylopSearchEngines.GOOGLE_IMAGES_LIGHT,
{
"q": "coffee",
"location": "Austin, Texas, United States",
"uule": "w+CAIQICINVW5pdGVkIFN0YXRlcw",
"google_domain": "google.com",
"gl": "us",
},
)
Python SDK возвращает JSON как обычные `dict`/`list` и не требует runtime-зависимостей.
Вызов через 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_IMAGES_LIGHT,
[
'q' => 'coffee',
'location' => 'Austin, Texas, United States',
'uule' => 'w+CAIQICINVW5pdGVkIFN0YXRlcw',
'google_domain' => 'google.com',
'gl' => 'us',
]
);
PHP SDK использует стандартные stream wrappers, возвращает decoded JSON array и не требует runtime-зависимостей.
Вызов через xylop-api-client
require "xylop_api_client"
client = XylopApiClient::Client.new(api_key: "YOUR_API_KEY")
response = client.search(
XylopApiClient::Engines::GOOGLE_IMAGES_LIGHT,
{
"q" => "coffee",
"location" => "Austin, Texas, United States",
"uule" => "w+CAIQICINVW5pdGVkIFN0YXRlcw",
"google_domain" => "google.com",
"gl" => "us",
}
)
Ruby SDK использует стандартные `net/http`, `json` и возвращает JSON как обычные Hash/Array значения.
Вызов через 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_IMAGES_LIGHT,
Map.of(
"q", "coffee",
"location", "Austin, Texas, United States",
"uule", "w+CAIQICINVW5pdGVkIFN0YXRlcw",
"google_domain", "google.com",
"gl", "us"
));
Java SDK использует `java.net.http.HttpClient`, возвращает JSON-строку и не требует runtime-зависимостей.
Вызов через 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_IMAGES_LIGHT,
mapOf(
"q" to "coffee",
"location" to "Austin, Texas, United States",
"uule" to "w+CAIQICINVW5pdGVkIFN0YXRlcw",
"google_domain" to "google.com",
"gl" to "us",
),
)
Kotlin SDK использует JVM `HttpClient`, возвращает JSON-строку и оставляет JSON-маппинг приложению.
Вызов через XylopApiClient
import XylopApiClient
let client = XylopSearchClient(apiKey: "YOUR_API_KEY")
let response = try await client.searchJSON(
engine: XylopSearchEngines.googleImagesLight,
parameters: [
"q": "coffee",
"location": "Austin, Texas, United States",
"uule": "w+CAIQICINVW5pdGVkIFN0YXRlcw",
"google_domain": "google.com",
"gl": "us",
]
)
Swift SDK использует Foundation `URLSession`, поддерживает async/await и возвращает Data, JSONSerialization values или caller-owned Decodable models.
Вызов через 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.googleImagesLight,
<String, Object?>{
'q': 'coffee',
'location': 'Austin, Texas, United States',
'uule': 'w+CAIQICINVW5pdGVkIFN0YXRlcw',
'google_domain': 'google.com',
'gl': 'us',
},
);
print(response);
}
Dart SDK использует `dart:io`, возвращает decoded JSON или raw response text и не требует runtime-зависимостей.
Вызов через 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_images_light,
{
{"q", "coffee"},
{"location", "Austin, Texas, United States"},
{"uule", "w+CAIQICINVW5pdGVkIFN0YXRlcw"},
{"google_domain", "google.com"},
{"gl", "us"},
});
return 0;
}
C++ SDK имеет header-only C++17 core, принимает transport callback и может использовать optional libcurl adapter `xylop::api::curl_transport`.
Вызов через 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.EngineGoogleImagesLight,
xylop.Params(map[string]string{
"q": "coffee",
"location": "Austin, Texas, United States",
"uule": "w+CAIQICINVW5pdGVkIFN0YXRlcw",
"google_domain": "google.com",
"gl": "us",
}),
&response)
if err != nil {
log.Fatal(err)
}
}
Go SDK возвращает raw JSON bytes или декодирует ответ в пользовательскую структуру, `map[string]any` либо другой target.
HTTP контракт
- URL
https://api.xylop.ru/search- Engine
google_images_light- API key
- Передается SDK автоматически из настроек клиента.
Параметры запроса
| Параметр | Тип | Обязателен | Значение | Описание |
|---|---|---|---|---|
api_key
SDK
|
string | Да | — | Ключ Xylop API. В SDK задается один раз в настройках или конструкторе клиента. |
engine
SDK
|
string | Да |
google_images_light
|
Движок Google Images Light. |
q
|
string | Да | coffee | Поисковая фраза для Google Images Light. |
location
|
string | Нет | Austin, Texas, United States | Город или регион поиска. Нельзя использовать вместе с uule. |
uule
|
string | Нет | w+CAIQICINVW5pdGVkIFN0YXRlcw | Google encoded location. |
google_domain
|
string | Нет |
google.com
|
Региональный домен Google. |
gl
|
string | Нет |
us
|
Код страны. |
hl
|
string | Нет |
en
|
Язык интерфейса. |
cr
|
string | Нет | countryUS | Ограничение результатов по стране. |
period_unit
|
string | Нет | d | s, n, h, d, w, m или y для свежих изображений. |
period_value
|
number | Нет | 7 | Размер периода для period_unit. |
start_date
|
string | Нет | 20260101 | Начало периода YYYYMMDD. |
end_date
|
string | Нет | 20260131 | Конец периода YYYYMMDD. |
tbs
|
string | Нет | sur:cl | Расширенные фильтры Google Images Light. |
imgar
|
string | Нет | s | Соотношение сторон, например s для square. |
imgsz
|
string | Нет | l | Размер изображения: l, m, i, 2mp и другие. |
image_color
|
string | Нет | trans | Цветовой фильтр. |
image_type
|
string | Нет | photo | face, photo, clipart, lineart или animated. |
licenses
|
string | Нет | cl | Фильтр лицензий, например cl или ol. |
safe
|
string | Нет | active | Фильтр explicit-контента. |
nfpr
|
string | Нет | 1 | Отключить автоисправление запроса. |
filter
|
string | Нет | 0 | Управление похожими/omitted results. |
start
|
number | Нет |
0
|
Смещение результатов: 0, 10, 20 и так далее. |
device
|
string | Нет |
desktop
|
desktop, tablet или mobile. |
Поля ответа
| Поле | Тип | Источник | Описание |
|---|---|---|---|
search_metadata |
object | пример ответа | Метаданные запроса: статус, идентификатор, время выполнения и служебная информация провайдера. |
search_parameters |
object | пример ответа | Нормализованные параметры, с которыми upstream-поиск выполнил запрос. |
search_information |
object | пример ответа | Сводка по выдаче: примерное число результатов, время поиска и дополнительные статусы. |
images_results |
array | пример ответа | Изображения и связанные с ними ссылки, превью и источники. |
serpapi_pagination |
object | пример ответа | Типизированное поле ответа для этого engine; структура зависит от upstream-провайдера и параметров запроса. |
Пример ответа
{
"search_metadata": {
"id": "680edc71877a91117bfd76df",
"status": "Success",
"google_images_light_url": "https://www.google.com/search?q=Coffee&oq=Coffee&hl=en&gl=us&tbm=isch&gbv=1"
},
"search_parameters": {
"engine": "google_images_light",
"q": "Coffee",
"google_domain": "google.com",
"hl": "en",
"gl": "us",
"device": "desktop"
},
"search_information": {
"image_results_state": "Results for exact spelling"
},
"images_results": [
{
"position": 1,
"thumbnail": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRlZTLx2ZnPg9Dd3HBYDWWVmZG_u2bSt-AwFw&s",
"serpapi_thumbnail": "https://serpapi.com/images/url/n32iFHicuxmTUVJSUGylr5-al1xUWVCSmqJbkpRnoJdeXJJYkpmsl5yfq5-Zm5ieWmxfaAuUsXL0S7F0Tw7KiQrxqTCKygtIt3RJMfZwinQJDw_LjXKPLzVKCi7RdSx3K1crBgB8aSF4",
"title": "Coffee - Wikipedia",
"source": "Wikipedia, the free encyclopedia",
"link": "https://en.wikipedia.org/wiki/Coffee",
"raw_link": "https://en.wikipedia.org/wiki/Coffee",
"original": "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e4/Latte_and_dark_coffee.jpg/1200px-Latte_and_dark_coffee.jpg",
"original_width": 1200,
"original_height": 750,
"related_content_id": "b0JsYkFFclBGYWVsY01cIixcIlU2b0pNbkYtZWVWVEFN",
"serpapi_related_content_link": "https://serpapi.com/search.json?engine=google_images_related_content&gl=us&hl=en&q=Coffee&related_content_id=...",
"source_logo": "https://serpapi.com/images/url/vumAE3icu9mXUVJSUGylr5-al1xUWVCSmqJbkpRnqJdeXJJYkpmsl5yfq5-WWJaZnJ8XZmRfWpRji9CgV56ZnVmQmpKZqJdflK6WnJOZmldi6-nr6O4aH-zqGOTsoVacWZVqa2imVlJZkGrr5hjm6ezvp5aWmJOTlJicHZ9fUFJsGxIZ4KoT7BnlqhMa5AMAISMzHA",
"is_product": false
}
],
"serpapi_pagination": {
"current": 1,
"next": "https://serpapi.com/search.json?device=desktop&engine=google_images_light&gl=us&google_domain=google.com&hl=en&q=Coffee&start=10"
}
}