JSON API, который возвращает поисковые подсказки (автодополнение) Google, Bing, YouTube, Amazon, Rakuten Ichiba, Yahoo! и DuckDuckGo, включая расширение по слогам японской азбуки кана (あ–ん), A–Z и 0–9. Сейчас API бесплатный.
Требуется ключ API. Войдите и создайте ключ в пункте «API» меню пользователя. Передавайте его в каждом запросе.
Authorization: Bearer gsk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Используйте ключ только на стороне сервера. Если встроить его в JavaScript в браузере, им смогут воспользоваться посторонние.
Вместо {source} укажите одно из следующих значений.
| source | Что возвращает |
|---|---|
google | Подсказки Google |
bing | Подсказки Bing |
youtube | Подсказки YouTube |
amazon | Подсказки Amazon.co.jp |
rakuten | Подсказки Rakuten Ichiba (Япония) |
yahoo | Подсказки поиска Yahoo! |
duckduckgo | Подсказки DuckDuckGo (lang=ja — подсказки для Японии) |
| Параметр | Описание |
|---|---|
q (обязательный) | Ключевое слово (1–60 символов). Полноширинные и полуширинные символы, регистр и пробелы нормализуются. |
lang | ja (по умолчанию) / en. При en расширение по японской кане не выполняется. |
group | all (по умолчанию) или список значений 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": ["ランニング シューズ", "..."] }
GET /api/v1/usage — Использование вашего ключа за последние 30 дней и лимиты тарифа (требуется аутентификация)GET /api/v1/status — Длина очереди и состояние воркеров (без аутентификации)| Показатель | Лимит |
|---|---|
| Запросов в минуту | 30 |
| Запросов в сутки (UTC) | 1,000 |
| Новых (некешированных) ключевых слов в сутки | 20 Считается отдельно для каждого источника. Ключевые слова, которые уже есть в кеше, не учитываются. |
При превышении лимита API возвращает 429 и Retry-After. Каждый ответ содержит X-RateLimit-Limit / Remaining / Reset и X-Daily-Limit / X-Daily-Remaining.
| HTTP | code | Значение |
|---|---|---|
| 400 | invalid_query / invalid_lang / invalid_group | Некорректный параметр |
| 401 | invalid_api_key | Ключ отсутствует или недействителен |
| 404 | not_found | Некорректный source или путь |
| 429 | rate_limited / daily_quota_exceeded / new_keyword_quota_exceeded | Превышен лимит (см. Retry-After) |
| 502 | upstream_failed | Не удалось получить данные (повторить можно через час) |
| 503 | queue_full | Сервис перегружен (см. Retry-After) |