Keyword Research Tool — Ideas, Trend Interest & Seasonality
Pricing
from $1.60 / 1,000 ideas
Keyword Research Tool — Ideas, Trend Interest & Seasonality
Keyword ideas from Google autocomplete (optionally YouTube and Amazon), ranked by Google Trends interest on one shared scale, with trend direction, peak month and rising terms. Set a country and language. No login, no SEO-tool subscription.
Give it a topic — a seed keyword like running shoes — and get keyword ideas from Google autocomplete (optionally YouTube and Amazon), ranked by Google Trends interest on one shared scale, each with its trend (rising, flat or falling), its peak month and whether Google Trends lists it as rising for your topic. $2 per 1,000 ideas, no login, no API key, no SEO-tool subscription.
Run it again — or put it on a weekly schedule — and every idea also tells you what changed since the last run: its previous rank, how far it moved, and whether it is new in the list. Autocomplete and Google Trends only show you today; this keeps the earlier picture for you.
What you get
Rows have a type: idea (one per keyword idea, best first), summary (one per seed, free) or error (free).
| Field | What it is |
|---|---|
seed, keyword | your seed, and the idea. The seed itself is never an idea; every idea contains it |
rank, relativeInterest | the rank by Google Trends interest, and the interest on the shared scale: the average weekly interest over the past 12 months, where the best idea of the seed is 100 and an idea that is half as searched is 50. They are not search counts |
trend, changePct | rising, flat or falling: the last 3 months against the 3 months before, and the change in percent (rising at +15% or more, falling at −15% or less) |
peakMonth, peakVsAverage | the calendar month in which the idea was searched the most, and how much busier that month was than the year's average (2.5 = two and a half times; 1 = no season at all) |
isRisingInTrends, risingLabel | true when Google Trends lists the idea among the rising related queries of your seed, with Google's own label (Breakout, +350%) |
sources | the search boxes that suggested it, e.g. ["google","youtube"] |
wordCount, geo, language, observedAt | words in the idea, the market asked, and when |
previousRank, rankChange, isNew | the change since your previous run of the same seed (null on the first run). rankChange is positive when the idea moved up; isNew is true when it was not in the previous list |
note | why an idea is not fully scored (see Notes); null on normal rows |
The summary row of each seed has ideasFound (all different ideas autocomplete gave that contain the seed), ideasScored, ideasUnscored, anchor (the idea that ties the Google Trends requests together, see How the ranking works; null when all ideas fit one request), topRising (up to 5 rising queries of the seed that contain it, each with query, risingLabel, isBreakout; null when Google Trends could not be read), newIdeas and previousRunAt. An error row has seed, part (autocomplete, trends or trends-rising) and message.
Run it again and again
- On a schedule — save your input as a task and add a Schedule: the same seed keywords every week. Send each run to Google Sheets, Slack or email with an integration on the task.
- Watch for changes — Keep the same input on the schedule. Each run is its own dataset with the date it ran, so the series builds up run by run and you can compare one day with the last.
- In bulk — Put all your Seed keywords in one run.
How the ranking works
- Ideas. The seed and the seed followed by
atozare typed into the chosen autocomplete boxes. All suggestions are merged without duplicates; phrases that do not contain the seed are dropped. The bestmaxIdeasare kept: phrases that more sources suggest first, then the completions of the seed itself, then the best letter results. - One shared scale. Google Trends compares at most 5 phrases in one request and sets the busiest week of that request to 100, so values from two requests cannot be compared directly. The Actor reads the top 5 ideas in one request and makes the idea in the middle of them the anchor. Every further request holds the anchor plus 4 new ideas. How much the anchor changes in value between two requests is exactly how much their scales differ, so every request is converted to the first scale and all ideas end up comparable.
- Ranking. Ideas are ranked by their average weekly interest over the past 12 months on that scale.
trendandpeakMonthare read from each idea's own weekly series.
Checked on 8 October 2026: five ideas from different requests were also compared directly in a single Google Trends request. Against the best of them, the shared scale gave 0.45, 0.22, 0.10 and 0.02 and the direct comparison 0.44, 0.22, 0.09 and 0.01.
Use it for
- SEO and content planning — which long-tail phrases around a topic people search most, in order, and which are growing
- Timing — the month in which a topic peaks, for launches, ads and publishing calendars
- Listings and ads — phrases from YouTube and Amazon search boxes ranked by one Google Trends scale
- Watching a niche — schedule it weekly and filter on
isNewor onrankChangeto see ideas that just appeared or climbed
Input
{"seeds": ["running shoes", "trail running"],"sources": ["google", "youtube"],"maxIdeas": 25,"geo": "US","language": "en"}
seeds— one topic per line, up to 20 per run. Write them in the language you set.sources—google(default),youtube,amazon. Amazon followsgeoand covers US, GB, DE, FR, IT, ES, CA, JP, AU, MX, BR, NL, SE, PL, TR, AE, SA and SG; in another country Amazon is skipped with a free error row (or the run is refused when Amazon was the only source).maxIdeas— 1 to 100 per seed, default 25.geo,language— a two-letter country code (US,GB,DE,JP) and a language (en,de,ja,pt-BR).proxyConfiguration— Apify Proxy for Google Trends, on by default (see Notes).
What changed since the last run is remembered per seed, country, language, sources and ideas per seed in a named key-value store in your Apify account, so the second run of the same input already shows changes. Schedule it (Apify → Schedules) for a regular history.
Pricing
$2 per 1,000 ideas ($0.002 each), plus $0.01 per run. Only ideas that get a Google Trends score are charged: ideas Google Trends has no data for, summary rows and 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 (25 ideas) costs $0.06 including the run fee. 100 ideas cost $0.21. Expect roughly 30 to 60 seconds per seed with 25 ideas: Google Trends is asked about one request every 1.5–2 seconds, five ideas in the first request and four more in each next one.
Notes
- Relative, not counts. Google Trends gives interest relative to the busiest point, not the number of searches. There is no search volume and no keyword difficulty here.
relativeInterestof different seeds, countries or runs belongs to its own scale (the best idea of each seed is 100), so compare ideas within one seed and one run; across runs userankandrankChange. - Seasonality is one year.
peakMonthis the month with the highest average in the past 12 months, so a one-off event looks like a season.peakVsAveragetells how strong the peak is; near1there is no season.trendcompares two 3-month windows, so an idea that peaked in spring readsfallingin autumn — read it together withpeakMonth. Both are left empty (null) for ideas with too little interest, andchangePctis empty when the idea had no interest at all in the earlier window (trendis thenrising). - Low volume. Google Trends reports whole numbers. An idea whose busiest week stays below 5 of 100 next to the other ideas of its request is scored, but its rank is approximate,
trendandpeakMontharenullandnotesays so. An idea that Google Trends shows as zero next to the others (too little search volume in that country) is returned last, unscored (rankandrelativeInterestarenull,notesays why) and is not charged. - Country. Google Trends interest is measured in exactly the
geoyou give: the same ideas had different interest in the US, Germany, Japan and Britain when we compared them. Autocomplete usesgeoandlanguageas the market, and the lists differ by country (on 8 October 2026 autocomplete listedfor women,near me,on salefirst forrunning shoesin the US,for men,near me,sale,adidas,under 500in Britain andfor men,nike,japan,asicsin Japan), but Google also mixes in a few suggestions from the place the request comes from (a test from Japan gotcafe yokohamafor US, German and Britishcafe). Treat the ideas as a strong hint for the country, not an exact list of what people there type. Expansion uses the lettersatoz, also for other languages. - Rising. Google fills its rising list for a seed with a few unrelated phrases now and then (for
running shoeswe sawlaptop standandair fryer), sotopRisingkeeps only phrases that contain your seed.isRisingInTrendsmatches an idea against Google's whole rising list ignoring word order, apostrophes and the words for/the/a/an/of (running shoes for women=women's running shoes), and, in Japanese, Chinese, Korean and Thai, ignoring spaces. Google lists a limited number of rising queries (18 in our test), so most ideas arefalse;nullmeans the list could not be read. - Only what autocomplete suggests. An idea that autocomplete does not suggest for the seed or
seed a–seed zis never scored. If the list looks short or off, raisemaxIdeasor addyoutubeandamazon. For a wider net of phrases without ranking, see the link below. - Proxy. Google Trends answers HTTP 429 (rate limit) to most requests that come straight from cloud servers, so the Actor sends its Google Trends requests through Apify Proxy (datacenter) by default, which is part of your Apify plan; autocomplete is asked directly. Measured on Apify on 8 October 2026 with our Google Trends Scraper: without a proxy Google Trends answered 429 to every request, through Apify Proxy it answered every time. If you turn the proxy off and every idea comes back unscored, turn it back on.
- When Google refuses. A rate-limited or failed request is retried twice (after 5 and 10 seconds). Ideas whose request still fails are returned unscored with a free
errorrow; after repeated refusals the run stops asking. If nothing at all could be scored, the run fails instead of finishing with unranked ideas, and your history from earlier runs is kept. Run it again later or with fewer ideas; after a long burst Google can refuse one connection for an hour or more. - No personal contact data: a suggestion that is an email address or a phone number is dropped. Public data only: what anyone sees in the search boxes and on Google Trends without signing in.
To get more phrases without ranking (a–z, 0–9, questions, Bing and DuckDuckGo), see Keyword Suggestions from Autocomplete. For regions, related topics and any period of one keyword, see Google Trends Scraper. To track where pages rank on Bing for your chosen keywords, see Bing Search Rank Tracker.
For AI agents
{"seeds": ["running shoes"], "maxIdeas": 10} returns up to 10 idea rows ordered by rank (1 = the most searched idea) and one summary row. Rows have type: idea, summary or error. relativeInterest is 0–100 within the seed; trend is rising, flat or falling; peakMonth is an English month name. For a weekly watch run the same input on a schedule and filter on isNew: true or rankChange > 0. Only idea rows with a rank are charged.