Every keyword tool sells you "keyword suggestions". Most of them get a big share of those suggestions from the same place: Google autocomplete, which is a keyless public endpoint anyone can call. If what you need is the long tail queries themselves rather than volume estimates, you can skip the subscription.
The endpoint
GET https://suggestqueries.google.com/complete/search?client=firefox&q=project+management&hl=en&gl=us
With client=firefox you get clean JSON: the query echoed back plus up to 10 suggestions. hl sets the language, gl the country, so hl=de&gl=de gives you what German users type. No key, no login, no cookie.
Bonus: add &ds=yt and the suggestions come from YouTube search instead, which is its own keyword universe for video content.
Ten suggestions is not keyword research
The trick every suggestion tool uses is fan out. One seed becomes dozens of queries:
-
a to z suffixes:
crm a,crm b, ...crm z. Each returns up to 10 different completions. This is where the long tail lives. -
Question prefixes:
how crm,what crm,why crm,which crm,can crm. These rows are ready made article and FAQ topics, phrased the way people actually type them. -
Preposition suffixes:
crm for,crm vs,crm without,crm like. Comparison and use case intent, the highest converting content there is.
That is roughly 45 requests per seed, yielding 200 to 400 unique suggestions after deduping. At 10 per response you cannot get this any other way.
Behave and it keeps working
The endpoint is tolerant but not infinite. Three rules keep it happy:
- Pace requests (100 to 150ms apart is plenty).
- Treat consecutive failures as a rate limit signal and stop, rather than hammering through.
- Dedupe before storing; the same suggestion appears under many modifiers.
const res = await fetch(
`https://suggestqueries.google.com/complete/search?client=firefox&q=${encodeURIComponent(q)}&hl=en&gl=us`,
);
const [, suggestions] = await res.json();
What autocomplete does not give you
Volumes. Autocomplete tells you what people type, not how often. The pairing that works: expand seeds with autocomplete, then check the interesting candidates in Google Trends for direction and momentum. Trends also has a keyless JSON API, which I wrote up separately.
If you want it as a service
I packaged the full fan out as a pay per use actor: seeds in, one JSON row per unique suggestion out, with the modifier that found it, position, language, country and a YouTube mode: https://apify.com/scrapemint/google-keyword-suggestions-scraper
It pairs with my Google Trends actor: suggestions from one, rising interest from the other, and neither needs an API key.
Top comments (0)