Google Keyword Planner API: Google Ads Search Volume & CPC avatar

Google Keyword Planner API: Google Ads Search Volume & CPC

Pricing

from $3.00 / 1,000 keyword with search volumes

Go to Apify Store
Google Keyword Planner API: Google Ads Search Volume & CPC

Google Keyword Planner API: Google Ads Search Volume & CPC

Google Keyword Planner API and MCP tool: real Google Ads search volume, CPC, competition, top-of-page bids and 12-month trend for up to 10,000 keywords, long tail included. A keyword planner alternative without an Ads account. Fee per 1,000-keyword lookup + per keyword found.

Pricing

from $3.00 / 1,000 keyword with search volumes

Rating

0.0

(0)

Developer

PlainRows

PlainRows

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

A Google Keyword Planner API and MCP tool: give it a list of keywords and get the real Google Ads search volume for each one, as Google's Keyword Planner shows it, with the CPC, the competition (LOW / MEDIUM / HIGH and its 0-100 index), the top-of-page bids and 12 months of searches. Up to 10,000 keywords per run, 94 countries, any Google Ads language.

A keyword planner alternative for people without a Google Ads account (or without an active campaign, which Keyword Planner needs to show exact volumes): the numbers come straight from Google Ads, including long-tail keywords that SEO keyword databases do not cover.

Typical uses

  • Bulk search volume: check thousands of keywords in one run, 1,000 per lookup.
  • Long-tail and local-language research: real Google Ads data for phrases too rare for SEO tools.
  • PPC planning: cpc, lowTopOfPageBid and highTopOfPageBid to budget a Google Ads campaign.
  • Seasonality: monthlySearches shows the last 12 months, month by month.
  • AI agents and automations: one JSON row per keyword, ready for Google Sheets, n8n, Make, Zapier or an MCP client.

What you get for each keyword

FieldDescription
keywordThe keyword looked up (lowercase, spaces collapsed)
searchVolumeAverage monthly Google searches over the last 12 months (Google Ads)
competition, competitionIndexGoogle Ads competition: LOW, MEDIUM or HIGH, and its index from 0 to 100
cpcAverage cost per click (USD)
lowTopOfPageBid, highTopOfPageBidTop-of-page bid range (USD)
monthlySearchesSearches per month (month YYYY-MM, searchVolume), oldest first
found, status, messageFOUND when the keyword has a volume; otherwise a free row that says why: NO_DATA, INVALID_KEYWORD, PROVIDER_ERROR, REJECTED, NOT_LOOKED_UP
country, languageCode, observedAt, schemaVersionSettings of the data, when it was fetched, row format version

Missing values are null, never guessed. Google Ads has no data for some keywords (too rare, or grouped with a close variant): they come back as free rows with found: false.

Example row (real data, Turkey, Turkish, October 2026, monthly list shortened)

{
"keyword": "izmir saç ekimi fiyatları",
"searchVolume": 140,
"competition": "MEDIUM",
"competitionIndex": 59,
"cpc": 3.71,
"lowTopOfPageBid": 0.58,
"highTopOfPageBid": 4.34,
"monthlySearches": [{ "month": "2025-10", "searchVolume": 170 }, { "month": "2026-09", "searchVolume": 110 }],
"found": true,
"status": "FOUND",
"message": null,
"country": "TR",
"languageCode": "tr",
"observedAt": "2026-10-22T20:32:00.000Z",
"schemaVersion": "1.0"
}

In that real lookup of 10 long-tail Turkish keywords, 4 had a Google Ads volume and 6 had none.

Input

{
"keywords": ["coffee maker", "espresso machine", "french press"],
"country": "US",
"languageCode": "en"
}
  • keywords (required): up to 10,000 per run. Google Ads rules: at most 80 characters and 10 words per keyword, no symbols such as ! @ % ( ) ? and no emojis; other keywords get a free INVALID_KEYWORD row and are never sent. Duplicates (case and spaces ignored) are removed for free.
  • country: one of 94 countries (default US).
  • languageCode (optional): defaults to the country's main language (e.g. de for Switzerland, tr for Turkey).

Pricing

Pay per event, no subscription:

  • Lookup batch: $0.15 once per batch of up to 1,000 keywords looked up in Google Ads, even when no keyword in the batch has a volume. The data source bills every lookup ($0.09), whatever it returns.
  • Keyword with search volume: $0.003 per keyword that has a volume. Keywords without data are free rows.
  • A small Actor start fee per run ($0.002).

Examples: 10 keywords with 4 found = $0.15 + 4 x $0.003 = $0.162; 1,000 keywords with 400 found = $0.15 + $1.20 = $1.35; 2,500 keywords = 3 batches. Batches the data source failed or refused, and keywords not reached (run's maximum cost or timeout), get a free row and no fee. A batch starts only when the run's maximum cost still covers its fee and at least one keyword; the batch is cut to what the budget allows.

Free Apify plan: not available. Each lookup costs the data source $0.09, so on a free Apify plan the run looks up nothing and charges only the $0.002 run start fee (one free row per keyword says so). Any paid Apify plan works.

Good to know

  • Google Ads groups close variants (plural, word order, accents) and gives them the same volume; it also returns no data for some keyword groups. For keywords whose volumes look merged, look them up in separate runs.
  • Volumes are Google's rounded Keyword Planner figures for search on Google (search partners not included).
  • The source allows a limited number of lookups per minute: big runs process 2 batches at a time (about 10,000 keywords in a few minutes).
  • Not affiliated with Google.

Run summary

Each run stores a summary in the key-value store (OUTPUT): batches looked up, keywords with volume (billed), duplicates removed, invalid keywords, and anything skipped because of the free-plan or budget limit.

Use it from code, automations or AI agents

API (one call, results returned directly):

curl -X POST "https://api.apify.com/v2/acts/plainrows~google-keyword-planner-api/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": ["coffee maker", "espresso machine"], "country": "US"}'

n8n, Make, Zapier: use the Apify integration, pick plainrows/google-keyword-planner-api and send the rows to Google Sheets.

AI agents (MCP tool): add https://mcp.apify.com?tools=plainrows/google-keyword-planner-api to Claude, Cursor or any MCP client, then ask "What is the Google Ads search volume and CPC of these keywords in Germany?".

FAQ

Is this the same data as Google Keyword Planner? Yes: the volumes, competition and bids come from Google Ads, the source of Keyword Planner, without needing your own Ads account or campaign.

What is the difference with Keyword Planner Alternative by PlainRows? Keyword Planner Alternative reads an SEO keyword database: cheaper per keyword, with keyword ideas, but rare and long-tail keywords are often missing. This Actor asks Google Ads itself: the real Google Ads figures, and it covers much of the long tail absent from SEO databases. Use the first for common keywords and ideas, this one when you need Google's own numbers or many keywords come back empty.

Why am I charged for a batch where no keyword has a volume? The data source bills each lookup of up to 1,000 keywords, even when Google Ads has no data for any of them. The batch fee covers that lookup; the keyword fee applies only to keywords with a volume.

Why are some volumes empty? Google Ads has no data for very rare keywords and for some groups of close variants. Those rows are free.

How many keywords can I send? Up to 10,000 per run, in batches of 1,000. Group your keywords in one run rather than many small runs: one batch fee covers up to 1,000 keywords.

More PlainRows tools

Same pay-per-result pricing, same clean JSON, built to chain together in n8n, Make, Zapier or AI agents.

Support

Missing a field or found a bug? Open an issue on this page. Issues are read and answered.