Suggest API v1

A JSON API that returns the autocomplete suggestions of Google, Bing, YouTube, Amazon, Rakuten Ichiba, Yahoo!, DuckDuckGo, Baidu, Yandex, Naver and Daum, expanded, in all 20 site languages. Japanese is expanded with kana (あ–ん), A–Z and 0–9; other languages with a space plus the language's own letters, A–Z and 0–9. Start on the free plan (pricing).

Authentication

An API key is required. Log in and issue a key from “API” in the user menu. Send it with every request.

Authorization: Bearer gsk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Use the key from your server only. If you embed it in browser JavaScript, other people can use it.

GET /api/v1/{source}/suggest

Set {source} to one of the following.

sourceReturns
googleGoogle suggestions
bingBing suggestions
youtubeYouTube suggestions
amazonAmazon suggestions (ja: Amazon.co.jp; other languages: that language's main marketplace)
rakutenRakuten Ichiba (Japan) suggestions
yahooYahoo! Search suggestions
duckduckgoDuckDuckGo suggestions (lang=ja returns suggestions for Japan)
baiduBaidu suggestions (zh, zh-tw, ja, en)
yandexYandex suggestions (ru, uk, tr)
naverNaver suggestions (ko)
daumDaum suggestions (ko)
ParameterDescription
q (required)Keyword (1–60 characters). Full-width/half-width characters, letter case and spaces are normalized.
langja (default), en, ru, ko, zh and the other site language codes (20 in all). ja adds the kana expansion (nihongo); other languages add a space plus their own letters (native). en has neither.
groupall (default) or a comma-separated list of itself,nihongo,native,alphabet,number.
flat1 returns a single deduplicated suggestions array.

How the asynchronous flow works

Fetching a keyword that is not cached yet takes tens of seconds, so the API first returns 202 and queues it. Send the same request again after retry_after_seconds; once the data is ready you get 200 with the results. Results are cached for 7 days. After they expire, the old data is returned with "stale": true while it is being refreshed. The cache is separate for each combination of source, q and 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 (queued)
{ "ok": true, "status": "queued", "source": "google", "queue_position": 3, "retry_after_seconds": 24, ... }

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

Other endpoints

Limits (free plan)

ItemLimit
Requests per minute30
Requests per day (UTC)1,000
New (uncached) keywords per day20 Counted per source. Keywords that are already cached do not count.

When a limit is exceeded the API returns 429 with Retry-After. Every response includes X-RateLimit-Limit / Remaining / Reset and X-Daily-Limit / X-Daily-Remaining.

Errors

HTTPcodeMeaning
400invalid_query / invalid_lang / invalid_groupInvalid parameter (including a source not offered for that language)
401invalid_api_keyMissing or invalid key
404not_foundInvalid source or path
429rate_limited / daily_quota_exceeded / new_keyword_quota_exceededLimit exceeded (see Retry-After)
502upstream_failedFetch failed (you can retry after one hour)
503queue_fullBusy (see Retry-After)

Before you use the API

Terms of Service · Privacy Policy