Keyword Suggestions — Google, YouTube & Amazon Autocomplete
Pricing
from $0.40 / 1,000 keywords
Keyword Suggestions — Google, YouTube & Amazon Autocomplete
Keyword ideas from Google, YouTube, Google Shopping, Amazon, Bing and DuckDuckGo autocomplete: expand a seed with a-z, 0-9 or question words, get one deduplicated row per keyword with its sources and position, and what is new since your last run. 18 Amazon marketplaces, any language. No login.
Give it seed keywords and get every phrase that Google, YouTube, Google Shopping, Amazon, Bing and DuckDuckGo autocomplete suggests for them — asked again with a–z, 0–9 or question words added to reach the long tail — as one clean, deduplicated row per keyword, with the sources that suggested it, its position and its word count. $0.50 per 1,000 unique keywords, no login, no API key.
Run it again — or put it on a weekly schedule — and every row also tells you whether the keyword is new since the last run (isNewSinceLastRun) and how its position moved (positionChange). Autocomplete only shows today's list; this is how you catch a phrase that has just started to appear.
What you get
| Field | What it is |
|---|---|
seed, keyword | your seed, and the suggested phrase. Duplicates across sources and queries are merged (ignoring case and extra spaces); the first spelling seen is kept. The seed itself is never returned |
sources | every service that suggested the phrase, e.g. ["google","youtube","amazon"]. Phrases several services agree on are easy to spot |
bestPosition, foundVia | the best position (1 = first suggestion) the phrase had in a suggestion list, and the query that produced it — the seed itself, or something like habit tracker t. The typed text that services echo back as their first line is not counted as a suggestion |
wordCount, isQuestion, containsSeed | number of words; true when it starts with a question word or ends with ?; false for containsSeed when autocomplete drifted off topic |
isNewSinceLastRun, previousBestPosition, positionChange, previousRunAt | the change since your previous run for the same seed (null on the first run). positionChange is positive when the phrase moved up |
country, language, observedAt | the market asked and when |
Rows come out ranked: phrases suggested by the most sources first, then by position. Rows with type: "error" carry seed, source, message and failedRequests when a source could not be read; they are free.
Use it for
- SEO and content planning — the long tail around a topic, with the questions people type, from three or more search boxes at once
- YouTube and Amazon research — what viewers search on YouTube and what shoppers type into the Amazon search box of each marketplace, side by side
- Ads and listings — phrases for titles, tags and bid lists, flagged by how many sources agree
- Trend watching — schedule it weekly and filter on
isNewSinceLastRunto see phrases that just appeared
Input
{"keywords": ["habit tracker", "budget app"],"sources": ["google", "youtube", "amazon"],"expand": "alphabet","country": "us","language": "en","maxKeywordsPerSeed": 500}
sources—google,youtube,google-shopping,amazon,bing,duckduckgo. Default: Google, YouTube, Amazon. Amazon followscountryand covers us, gb, de, fr, it, es, ca, jp, au, mx, br, nl, se, pl, tr, ae, sa and sg.expand—none(just the seed, about 10 phrases per source),alphabet(the seed plusatozand0to9: 37 queries per source — the default), orquestions(how,what,why,where,when,which,who,can,best,isin front andvs,for,without,near mebehind: 15 queries per source).country,language— the market, e.g.us/en,de/de,jp/ja,br/pt-BR. Google, YouTube, Bing and DuckDuckGo are asked for that market, and Amazon uses that country's marketplace.maxKeywordsPerSeed— default 500. If there are more, the ones suggested by the most sources and ranked highest are kept; only returned rows are charged.
What changed since the last run is remembered per seed in a named key-value store in your Apify account, so the second run of the same input already has the flags. Schedule it (Apify → Schedules) for a regular history.
Pricing
$0.50 per 1,000 unique keywords ($0.0005 each), plus $0.01 per run. Error rows are free. The $0.01 run-start fee is the one charge every run pays, even one that returns nothing; put all your seeds in one run and you pay it once.
One seed with the defaults (Google + YouTube + Amazon, alphabet) returns up to 500 keywords in roughly 10 to 15 seconds of fetching, so about $0.26 including the run fee. Use "expand": "none" for only the top phrases.
Notes
- Public data only: the suggestions anyone sees while typing into those search boxes, without signing in. They show what people type, not how often — there is no search volume.
- Positions are positions inside one suggestion list (the first real suggestion is 1; the typed text that every service lists first is not a suggestion and takes no slot). Adding a letter pushes a phrase towards the top of that query's list, so compare
bestPositionbetween runs (positionChange) rather than between unrelated rows. isNewSinceLastRun,previousBestPosition,positionChangeandpreviousRunAtarenullon the first run. They are alsonullthe first time you change the seed's country, language,expandor sources, because that is a different list.previousBestPositionandpositionChangearenullfor a phrase that is new. Suggestions fluctuate from day to day, so a few phrases are new on almost every run.- Your history holds every phrase seen, also the ones cut by
maxKeywordsPerSeed, so a phrase that only moved up into the returned list is not reported as new. If a source is down during a run, the phrases it gave you earlier are kept too, so they are not reported as new when it comes back. - Each source is asked at most about 5 times per second. A request that is rate limited or fails to connect is retried twice (after 5 and 10 seconds). A source that still fails gets a free error row for that seed, and one that fails three requests in a row is left out for the rest of that run. Results from the requests that worked are always included. If nothing at all could be read, the run fails instead of finishing empty.
- Amazon has one suggestion service per marketplace. India is not offered: its service did not answer when checked. Asking for Amazon in a country without one skips Amazon with a free error row — or refuses the run if Amazon was the only source. Google Play has no public suggestion service, so it is not a source.
- Question words in
questionsmode are English; for other languages usealphabet.isQuestionrecognises English, German, French, Spanish, Italian, Portuguese and Dutch question words, and a trailing question mark in any language. It is a simple rule, so a phrase like "do it yourself desk" counts as a question. wordCountcounts space-separated words. Japanese, Chinese and Thai are written without spaces, so there it counts the space-separated parts. For seeds in those scriptscontainsSeedignores spaces.- No personal contact data: a suggestion that is an email address or a phone number is dropped.
- Suggestions in other languages come back as written, accents and scripts intact (checked on Google in 14 languages, and on Amazon, Bing and DuckDuckGo in Japanese and German).
To track where videos rank for these keywords, see YouTube Search Rank Tracker. To see which apps rank for them, see App Store Scraper.
For AI agents
{"keywords": ["habit tracker"], "sources": ["google"], "expand": "none"} returns about 9 rows, one per suggested keyword. Rows have type: keyword or error. For the long tail use "expand": "alphabet"; run the same input again later and filter on isNewSinceLastRun: true for phrases that appeared in between.