Keyword Search Volume & CPC API + Google Trends
Pricing
from $3.00 / 1,000 keyword metrics
Keyword Search Volume & CPC API + Google Trends
Keyword search volume API from $3 per 1,000 keywords: monthly volume, CPC and competition (Google Keyword Planner figures, no Ads account needed), difficulty, intent and 12-month history, plus a Google Trends summary per keyword: rising or falling, seasonal, peak month. Failed lookups are free.
Pricing
from $3.00 / 1,000 keyword metrics
Rating
0.0
(0)
Developer
Meridian Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Share
Keyword Search Volume + Google Trends looks up search volume, CPC, competition, keyword difficulty and search intent for hundreds of keywords in one run, the same monthly figures Google's Keyword Planner shows, and adds a Google Trends summary for every keyword: is interest rising or falling, how it compares year on year, when it peaks and whether it's seasonal. Volume, trend and seasonality in one row per keyword. The input form is pre-filled, so the easiest way to try it is to click Start. A 5-keyword run costs $0.03.

It's built for SEO and content marketers, e-commerce and Amazon/Etsy/Shopify sellers doing product research, PPC managers and AI agents who need keyword data for more than a handful of keywords, without a Semrush or Ahrefs subscription.
What keyword data do you get?
For each keyword, Keyword Search Volume + Google Trends returns:
- 🔢 Search volume (
searchVolume): average monthly searches over the last 12 months (Google Ads figure). - 📅 12-month search history (
monthlySearches): searches per month, oldest first, plus the volume change month on month, quarter on quarter and year on year (searchVolumeTrend). - 💰 CPC and competition (
cpc,competition,competitionLevel,lowTopOfPageBid,highTopOfPageBid): what advertisers pay per click in USD, and how contested the keyword is. - 🧗 Keyword difficulty (
keywordDifficulty, 0–100): how hard it is to rank in Google's top 10 organic results. - 🎯 Search intent (
searchIntent): informational, navigational, commercial or transactional. - 📈 Google Trends summary (
trends, optional, on by default) with the key numbers as separate, filterable fields:- momentum: rising, falling or stable over the last 13 weeks
- change year on year
- peak date, and "now" compared with the average
- seasonality, e.g. peaks every October, including seasons across the new year such as November–January
- a one-sentence plain-English summary
Why use this keyword search volume tool?
- 🧩 Volume + trend + seasonality in one row. Search volume tells you how big a keyword is; Google Trends tells you where it's heading and when it peaks. Other keyword tools give you one or the other. Sort 500 keywords by volume and filter to "rising and seasonal in Q4" in one spreadsheet.
- ✅ Keyword Planner figures. Volumes, CPC and competition are Google Ads data (see Data source below). In our September 2026 test they matched Google Ads figures exactly on 175 of 175 keywords.
- 🚀 Bulk by design. Paste hundreds or thousands of keywords; volumes are fetched in bulk, and Trends lookups run in parallel.
- 🌍 94 countries, each with its main language pre-selected (or pick another, e.g. French in Canada).
- 💸 Fair billing. You pay per keyword. Failed lookups are free, the Trends part is only charged when it answers, and the run stops exactly at your maximum spending limit.
- 🤖 AI-agent ready. A documented output schema, a keyword table view and stable field names. It works from the Apify API, integrations (Make, Zapier, n8n, Google Sheets) and MCP clients.
How do I check search volume for a list of keywords?
- Enter your keywords, one per line (paste a whole list).
- Choose the country (and a language, only if the country has several).
- Keep Add a Google Trends summary on for trend and seasonality, or turn it off for volumes only ($3 per 1,000).
- Click Start. Open the Keyword table view for one line per keyword, or export everything as JSON, CSV or Excel.

Can I get Google Keyword Planner data without a Google Ads account?
Yes. You don't need a Google Ads account, Google Ads API access or a running ad campaign: the Actor returns the monthly Keyword Planner figures (search volume, CPC, competition and top-of-page bids) for your list, plus keyword difficulty, search intent and the Google Trends summary.
How much does it cost to get keyword search volume?
$3 per 1,000 keywords for search volume and metrics, plus $3 per 1,000 for the Google Trends summary: $6 per 1,000 keywords with both. Failed lookups are free.
| Event | Price | Charged when |
|---|---|---|
| Keyword metrics | $0.003 per keyword | The volume lookup answered, including keywords Google has no data for or withholds (see Limitations): the lookup ran and answered. |
| Google Trends summary | $0.003 per keyword | Add a Google Trends summary is on and the Trends lookup answered (including "too little Trends data"). |
- 🆓 Free: errors, invalid keywords, Trends lookups that fail, keywords Google has no search data for at all (their Trends lookup is skipped), and keywords skipped because the run reached your maximum spending limit or its time limit.
- Examples: 5 keywords with Trends = $0.03; 100 keywords = $0.30 volumes only or $0.60 with Trends; 1,000 keywords = $3 or $6.
- Free to try: Apify's free plan includes $5 of platform usage every month, which covers about 1,650 keywords volumes-only, or about 830 keywords with the Google Trends summary. Platform usage is included in the price.
- Set a maximum cost per run in the run options and the Actor stops exactly there. Keywords it didn't reach are listed as
skippedand not charged.
Input
| Field | What it does |
|---|---|
keywords | Search terms, one per line. Duplicates are removed. Google Ads limits: 80 characters and 10 words per keyword. |
country | Two-letter country code, e.g. US, GB, DE, AU, CA (94 countries). Used for both volume and Trends. |
language | Optional: en, fr, French... Empty = the country's main language. |
includeTrends | Add the Google Trends summary (default on, +$0.003 per keyword). |
trendsTimeRange | Past 90 days, Past 12 months, Past 5 years (default; needed for seasonality) or 2004 to present. |
maxConcurrency | Trends lookups in parallel (1–10). |
failOnErrors | Mark the run failed if any lookup errors (for schedules and monitoring). Failed lookups are still free. |
Example:
{"keywords": ["air fryer", "standing desk", "halloween costumes", "pickleball paddle", "crm software"],"country": "US","includeTrends": true,"trendsTimeRange": "past_5_years"}
Output example
Volumes, CPC and competition: Google Ads keyword data via DataForSEO (each row's volumeDataSource). Trends: data source: Google Trends (https://www.google.com/trends) (each row's trends.dataSource).
The Keyword table view on the Output tab gives one line per keyword:

One row per keyword (trimmed; real output from September 2026):
{"keyword": "halloween decorations","status": "ok","country": "US","language": "en","searchVolume": 135000,"cpc": 0.85,"competitionLevel": "HIGH","keywordDifficulty": 22,"searchIntent": "commercial","searchVolumeTrend": { "monthlyPct": 82, "quarterlyPct": 507, "yearlyPct": 0 },"monthlySearches": [{ "month": "2025-09", "searchVolume": 450000 },{ "month": "2025-10", "searchVolume": 673000 },"...",{ "month": "2026-08", "searchVolume": 246000 }],"trends": {"status": "ok","timeRange": "past_5_years","text": "Interest is rising (+310% vs the previous 13 weeks); down 11% year on year. Peak: October 2021. Seasonal: peaks every October.","momentum": "rising","yearOnYearChangePct": -11,"peakDate": "2021-10-03","seasonal": true,"seasonalPeakMonth": "October","seasonalWindow": "September–November","charged": true,"dataSource": "Google Trends (https://www.google.com/trends)"},"volumeDataSource": "Google Ads keyword data (Keyword Planner figures) via DataForSEO Labs, refreshed monthly. Not affiliated with Google.","scrapedAt": "2026-09-25T08:58:13Z"}
status is one of:
ok: search volume returned.no_data: Google Ads has no volume for this keyword (noDataReason:withheldfor restricted topics,not_foundfor keywords with too few searches). Charged, because the lookup ran and answered.error: the lookup failed; not charged.skipped: not looked up because the run hit its spending, time or data-cost limit; not charged.
How to read the numbers
- Search volume is a monthly average over the last 12 months, rounded the way Google Ads rounds it (e.g. 8,100, 9,900, 12,100). Use
monthlySearchesto see the season. - Trends values are relative, not searches. The Trends summary compares a keyword with its own past (100 = its peak in the range). Use volume for "how big", Trends for "which way and when".
- Both come from the same country, so a keyword's volume and trend describe the same market.
- Volumes refresh monthly.
volumeUpdatedAtshows when the figure was last updated.
How do I refresh keyword volumes every month?
Google Ads volumes update monthly, so a monthly schedule keeps a keyword list current:
- Fill in the input (your keyword list and country) and click Save as a new task.
- Open Schedules → Create new, pick the task and choose monthly (e.g. the 3rd of each month).
- Each run adds a fresh dataset; send it to a spreadsheet or workflow (next section).
500 keywords a month cost $1.50 volumes-only or $3 with the Google Trends summary. Set Fail the run if any lookup fails on scheduled tasks so a failed run shows up in your run list and monitoring alerts. Failed lookups stay free.
How do I send keyword data to Google Sheets, Make, Zapier, n8n or an AI agent?
- Google Sheets and Drive: on the Actor's or task's Integrations tab, add the Google Drive integration, or use Make, Zapier or n8n (below) with a Google Sheets "add rows" step.
- Make, Zapier and n8n: each has an official Apify app or node. Trigger on "Actor run finished", then get the dataset items. Ask for the
overviewview to get the Keyword table columns, one row per keyword. - Webhooks: Integrations → HTTP webhook on "Run succeeded" sends the run details to your URL.
- AI agents (MCP): add
https://mcp.apify.com?actors=meridianlabs/keyword-search-volumeto your MCP client (Claude, Cursor, VS Code and others). The agent can then look up volumes, CPC and trends for any keyword list. - Code: see the Python example in the FAQ below.
Limitations
- Google withholds volume for restricted topics. Keywords in areas such as finance, health, legal, gambling, weapons or VPNs (e.g. vpn, bitcoin price, car accident lawyer, baby names) can come back as
no_datawithnoDataReason: "withheld". Keyword difficulty, intent and the Google Trends summary are usually still available for them. - Very new or very niche keywords return
no_data(not_found). That's Google's answer, not an error. - Country level only. Volumes are per country, not per city or region.
FAQ
Where does the search volume data come from?
Search volume, CPC and competition are Google Ads (Keyword Planner) figures, supplied by the licensed data provider DataForSEO (Labs database, refreshed monthly). Keyword difficulty and intent are DataForSEO estimates. The trend summary is computed from Google Trends data. This Actor is not affiliated with or endorsed by Google. Data source for trends: Google Trends (https://www.google.com/trends).
How is keyword search volume different from Google Trends?
Google Trends shows relative interest (0–100), not how many people search. This Actor gives you the absolute monthly search volume and the ad metrics, and adds the Trends direction and seasonality on top. If you only need Trends data (with regions and rising related searches), use our Google Trends Scraper.
Can I use it with AI agents, the API or MCP?
Yes. Run it through the Apify API or client libraries, schedule it, connect it to Make, Zapier, n8n or Google Sheets, or call it from MCP clients (see How do I send keyword data… above). All output fields are documented in the dataset schema.
Python (pip install apify-client):
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("meridianlabs/keyword-search-volume").call(run_input={"keywords": ["air fryer", "standing desk"], "country": "US",})for row in client.dataset(run.default_dataset_id).iterate_items():print(row["keyword"], row.get("searchVolume"), row["trends"]["text"] if row.get("trends") else "")
How many keywords can I look up at once?
Thousands per run. Volumes come back in bulk in seconds; with Trends on, expect roughly 1–2 minutes per 100 keywords at the default 5 parallel lookups.
Does the Actor store anything in my account?
Yes, a small cache named keyword-volume-cache in your Apify key-value stores, so repeat lookups of the same keyword and country within 30 days are fast. You're charged the same either way. You can delete it at any time.
What happens if a run times out or restarts?
If a run approaches its timeout, the Actor stops starting new lookups: keywords whose volumes are already in hand are delivered without the Trends part (only the metrics are charged), and the rest are listed as skipped (not charged), so you can run them again. If the platform restarts a run, it picks up where it left off without charging twice.
More from Meridian Labs
- Google Trends Scraper & API: the full Google Trends data behind the summary (interest over time, by region, rising related searches) for hundreds of keywords, as a maintained pytrends alternative. $5 per 1,000 keyword lookups.
- Greenhouse, Lever & Ashby Jobs: open jobs from companies on six hiring systems, with salary normalised to min, max, currency and period. $2 per 1,000 jobs.
Support
Something looks wrong, or you need a field we don't return? Open an issue on the Issues tab with the input you used. We read every one.
If this saved you time, a rating helps others find it; if something's off, open an issue and we'll fix it fast.