Suggest API v1

JSON API, который возвращает поисковые подсказки (автодополнение) Google, Bing, YouTube, Amazon, Rakuten Ichiba, Yahoo! и DuckDuckGo, включая расширение по слогам японской азбуки кана (あ–ん), A–Z и 0–9. Сейчас API бесплатный.

Аутентификация

Требуется ключ API. Войдите и создайте ключ в пункте «API» меню пользователя. Передавайте его в каждом запросе.

Authorization: Bearer gsk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Используйте ключ только на стороне сервера. Если встроить его в JavaScript в браузере, им смогут воспользоваться посторонние.

GET /api/v1/{source}/suggest

Вместо {source} укажите одно из следующих значений.

sourceЧто возвращает
googleПодсказки Google
bingПодсказки Bing
youtubeПодсказки YouTube
amazonПодсказки Amazon.co.jp
rakutenПодсказки Rakuten Ichiba (Япония)
yahooПодсказки поиска Yahoo!
duckduckgoПодсказки DuckDuckGo (lang=ja — подсказки для Японии)
ПараметрОписание
q (обязательный)Ключевое слово (1–60 символов). Полноширинные и полуширинные символы, регистр и пробелы нормализуются.
langja (по умолчанию) / en. При en расширение по японской кане не выполняется.
groupall (по умолчанию) или список значений itself,nihongo,alphabet,number через запятую.
flatПри 1 возвращается один массив suggestions без дубликатов.

Как работает асинхронный режим

Получение ключевого слова, которого ещё нет в кеше, занимает десятки секунд, поэтому API сначала возвращает 202 и ставит запрос в очередь. Через retry_after_seconds отправьте тот же запрос повторно: когда данные готовы, вы получите 200 с результатами. Результаты кешируются на 7 дней. После истечения срока, пока данные обновляются, возвращаются старые данные с "stale": true. Кеш ведётся отдельно для каждого сочетания source, q и lang.

curl -H "Authorization: Bearer $KEY" \
  "https://gstudio1.com/api/v1/google/suggest?q=%E3%83%A9%E3%83%B3%E3%83%8B%E3%83%B3%E3%82%B0&flat=1"

curl -H "Authorization: Bearer $KEY" \
  "https://gstudio1.com/api/v1/rakuten/suggest?q=%E3%83%A9%E3%83%B3%E3%83%8B%E3%83%B3%E3%82%B0&flat=1"
// 202 (в очереди)
{ "ok": true, "status": "queued", "source": "google", "queue_position": 3, "retry_after_seconds": 24, ... }

// 200 (готово)
{ "ok": true, "status": "ready", "query": "ランニング", "source": "google", "fetched_at": "2026-09-19T01:02:03Z",
  "stale": false, "count": 412, "suggestions": ["ランニング シューズ", "..."] }

Другие эндпоинты

Лимиты (бесплатный тариф)

ПоказательЛимит
Запросов в минуту30
Запросов в сутки (UTC)1,000
Новых (некешированных) ключевых слов в сутки20 Считается отдельно для каждого источника. Ключевые слова, которые уже есть в кеше, не учитываются.

При превышении лимита API возвращает 429 и Retry-After. Каждый ответ содержит X-RateLimit-Limit / Remaining / Reset и X-Daily-Limit / X-Daily-Remaining.

Ошибки

HTTPcodeЗначение
400invalid_query / invalid_lang / invalid_groupНекорректный параметр
401invalid_api_keyКлюч отсутствует или недействителен
404not_foundНекорректный source или путь
429rate_limited / daily_quota_exceeded / new_keyword_quota_exceededПревышен лимит (см. Retry-After)
502upstream_failedНе удалось получить данные (повторить можно через час)
503queue_fullСервис перегружен (см. Retry-After)

Перед использованием