"How many people search for this?" is the first question behind any content plan, product idea or ad budget. Getting a straight answer for a list of keywords is harder than it should be.
Here are the options I looked at, with their real limits.
1. Google Keyword Planner
The official source. It is free, but:
- You need a Google Ads account, and setting one up pushes you toward creating a campaign.
- Without an active campaign, volumes come back as wide ranges such as "1K – 10K", which is not much use for comparing keywords.
- There is no bulk export through code unless you get approved for the Google Ads API.
Good for: people already running Google Ads.
2. Google Trends
Free and needs no account, but it does not answer the question. Trends shows interest on a relative 0 to 100 scale, not how many searches there are. Two keywords at "80" can differ by a factor of a thousand in real volume.
Good for: seasonality and comparing a few terms. Not for volumes.
3. SEO suites
Ahrefs, Semrush and similar tools show volume, difficulty and much more. They are excellent, and they start at around a hundred dollars a month.
Good for: people doing SEO every day. Hard to justify for an occasional lookup or for a script.
4. A keyword data API
Several providers resell Google Ads keyword data through an API. I use DataForSEO: its keyword overview endpoint returns volume, cost per click, competition, difficulty and search intent, and takes up to 700 keywords per request.
The catch for small projects is the entry cost: a $50 minimum deposit, plus the work of writing the client, batching, and handling keywords that have no data.
Good for: building a product on top of keyword data.
5. Pay per lookup
I wanted option 4 without the deposit or the client code, callable from scripts and automation tools. So I wrapped it: Keyword Search Volume on Apify.
You paste keywords and pick a country. Each keyword comes back as one row:
{
"keyword": "running shoes",
"found": true,
"country": "US",
"language": "en",
"searchVolume": 301000,
"cpc": 1.09,
"competition": 1,
"competitionLevel": "HIGH",
"lowTopOfPageBid": 0.47,
"highTopOfPageBid": 2.17,
"keywordDifficulty": 43,
"searchIntent": "transactional",
"trend": { "monthly": 22, "quarterly": 50, "yearly": -45 },
"monthlySearches": [
{ "month": "2026-08", "searchVolume": 301000 },
{ "month": "2026-07", "searchVolume": 246000 }
],
"dataUpdatedAt": "2026-09-15"
}
From Python:
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("spokentext/keyword-search-volume").call(run_input={
"keywords": ["running shoes", "trail running shoes", "best running shoes for flat feet"],
"country": "US",
})
for row in client.dataset(run.default_dataset_id).iterate_items():
if row["found"]:
print(f'{row["keyword"]}: {row["searchVolume"]} searches/month, difficulty {row["keywordDifficulty"]}')
else:
print(f'{row["keyword"]}: no data')
It covers 92 countries and up to 20,000 keywords per run, with up to 24 months of history per keyword.
Pricing is $0.004 per keyword with data, plus $0.02 per lookup of up to 700 keywords. A hundred keywords cost $0.42. Keywords with no data are free.
What to know before using it
- It needs a paid Apify plan. Every lookup is bought from the data provider, so on Apify's free plan the tool returns clearly labelled sample rows instead of live data.
- The data is monthly, not real time. Each row carries the date it was last updated.
- Country level only. No city or region breakdown.
- Google groups close variants. "running shoe" and "running shoes" can share one figure. That comes from Google Ads itself, and every tool built on that data inherits it.
-
Rare keywords have no data. They come back with
"found": false.
Which option to pick
| Your situation | Use |
|---|---|
| You already run Google Ads | Keyword Planner |
| You only care about seasonality | Google Trends |
| You do SEO daily | An SEO suite |
| You are building a keyword product | A data API directly |
| You need volumes for a list now and then, or inside a script or automation | Pay per lookup |
Disclosure: I built the tool described in section 5. This article was drafted with AI assistance and checked by me.
Top comments (0)