Keyword Search Volume, CPC & Competition — Keyword Difficulty avatar

Keyword Search Volume, CPC & Competition — Keyword Difficulty

Pricing

from $8.00 / 1,000 keywords

Go to Apify Store
Keyword Search Volume, CPC & Competition — Keyword Difficulty

Keyword Search Volume, CPC & Competition — Keyword Difficulty

Google keyword search volume, CPC, competition and keyword difficulty from keyword planner data for SEO research. Check lists of keywords or generate keyword ideas with monthly search history. Export to CSV, JSON or Excel.

Pricing

from $8.00 / 1,000 keywords

Rating

0.0

(0)

Developer

Andrey Afanasenko

Andrey Afanasenko

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

6 days ago

Last modified

Share

Apify Actor

Check Google keyword search volume or find keyword ideas, with CPC, advertising competition, keyword difficulty and monthly search history. Export a keyword planner table for SEO research, content planning or advertising research.

🆓 Start on the free plan: check one keyword with full metrics, or get ten ideas in full. More rows are shown locked, within a monthly allowance. Full rows and completed lookups use your Apify credits.

🎯 What it does

Choose the operation mode first. Each mode has its own keyword input and result limit.

ModeYou giveYou receive
Mode 1: Check Keyword MetricsA list of up to 1,000 keyword phrasesOne row per matched keyword, in your input order
Mode 2: Find Keyword Ideas (default)Exactly one seed phraseRelated keyword ideas; 100 by default, up to 1,000

Both modes include search volume, CPC in USD, advertising competition, organic keyword difficulty and monthly history when available. Mode 2 also includes search intent.

Some keywords have no reported volume. Their other metrics remain available, with status: volume_unavailable. Values vary by country and language, and update dates vary by keyword.

📦 Output sample

Each row describes one keyword:

  • Market and keyword: keyword, country, language, mode.
  • Volume and advertising: searchVolume, cpcUsd, competition, competitionLevel, lowTopOfPageBidUsd, highTopOfPageBidUsd.
  • SEO and intent: keywordDifficulty, coreKeyword, categories, detectedLanguage, isAnotherLanguage, intent, secondaryIntents.
  • History and availability: monthlySearches, volumeTrend, metricsUpdatedAt, status, isLocked.

Missing metrics are null. A true zero remains 0. Locked rows have null metrics; Mode 2 also hides the keyword itself.

A real Mode 2 row from the US/en validation run on 6 October 2026:

{
"keyword": "on running shoes",
"country": "US",
"language": "en",
"mode": "ideas",
"searchVolume": 201000,
"cpcUsd": 1.42,
"competition": 1,
"competitionLevel": "HIGH",
"lowTopOfPageBidUsd": 0.42,
"highTopOfPageBidUsd": 2.43,
"keywordDifficulty": 27,
"monthlySearches": [
{
"year": 2026,
"month": 8,
"searchVolume": 49500
},
{
"year": 2026,
"month": 7,
"searchVolume": 74000
},
{
"year": 2026,
"month": 6,
"searchVolume": 450000
},
{
"year": 2026,
"month": 5,
"searchVolume": 301000
},
{
"year": 2026,
"month": 4,
"searchVolume": 246000
},
{
"year": 2026,
"month": 3,
"searchVolume": 135000
},
{
"year": 2026,
"month": 2,
"searchVolume": 74000
},
{
"year": 2026,
"month": 1,
"searchVolume": 74000
},
{
"year": 2025,
"month": 12,
"searchVolume": 550000
},
{
"year": 2025,
"month": 11,
"searchVolume": 90500
},
{
"year": 2025,
"month": 10,
"searchVolume": 165000
},
{
"year": 2025,
"month": 9,
"searchVolume": 110000
}
],
"volumeTrend": {
"monthly": -33,
"quarterly": -89,
"yearly": -55
},
"categories": [
10014,
13605,
13616
],
"coreKeyword": "running shoes",
"detectedLanguage": "en",
"isAnotherLanguage": false,
"intent": "transactional",
"secondaryIntents": [
"informational"
],
"metricsUpdatedAt": "2026-09-14T16:55:29.000Z",
"status": "ok",
"isLocked": false
}

Views in Storage → Dataset show the same rows with different columns:

ViewRowBest for
Keyword metricsOne keyword, trimmed to volume, CPC, competition and difficultyComparing a keyword list
Keyword ideasThe same rows, trimmed to volume, CPC, difficulty and intentFinding content opportunities
Monthly search historyThe same rows, trimmed to history, trends and update datesChecking seasonality

The full field descriptions are in .actor/dataset_schema.json.

⚡ Quick start

Select Mode 2: Find Keyword Ideas, then enter one seed:

{
"operationMode": "ideas",
"seedKeywords": ["running shoes"],
"maxIdeas": 100,
"country": "US",
"language": "en"
}

Run it and open Storage → Dataset. On the free plan, ten ideas are shown in full and up to forty more are locked. On a paid plan, up to your requested limit are shown in full.

🧭 When to use it

  • Compare search volume and difficulty before writing content.
  • Build a keyword planner table with CPC and advertising competition.
  • Find related ideas and their search intent from a seed phrase.
  • Check monthly history for seasonal topics.
  • Research another country in its supported language.

🛠 Input

Choose your mode first, then fill the matching section:

FieldMeaningDefault
operationModemetrics or ideasideas
keywordsMode 1: one keyword phrase per line; commas also separate phrasesEmpty
maxKeywordsMode 1: how many input keywords to check, 1–1,0001,000
seedKeywordsMode 2: exactly one seed phraseEmpty
maxIdeasMode 2: idea limit, 1–1,000100
countryCountry for the metricsUS
languageSupported search language for that countryen

Spaces stay inside a phrase. Duplicates are removed without changing the order. Each keyword can have at most 80 characters and ten words. An unsupported country/language pair or malformed input is rejected before anything is looked up or charged.

Set Maximum cost per run in the run options to cap charges. It limits work before each lookup. If the main keyword field of your chosen mode is empty, the run announces a built-in sample, capped at ten rows; it still follows the free-plan limits.

💰 How much will keyword research cost?

Apify Pay Per Event charges for full matched keyword rows and completed lookups:

EventFreeBronzeSilverGold and up
Keyword$0.012$0.01067$0.00933$0.008
Keyword lookup$0.030$0.025$0.022$0.020

A lookup is one checked batch of up to 700 input keywords or one ideas page. An empty successful result still costs one lookup; it costs no keyword events. Missing keywords and locked rows are not charged. Matched rows with unavailable volume are charged because they contain other metrics. Unfinished lookups are not charged.

ExampleBronze charge
3 matched input keywords$0.05701
50 matched input keywords$0.55850
100 keyword ideas$1.09200
1,000 matched input keywords, two batches$10.72000
Empty result, one lookup$0.02500

The platform may include its small standard start event. Your run ceiling applies to the complete run.

🆓 Free vs paid plan

Free planPaid plan
Mode 1 full keyword rows1 per runUp to 1,000
Mode 1 extra locked rowsUp to 49; your input keyword remains visibleAll delivered rows in full
Mode 2 full ideasUp to 10 per runUp to 1,000
Mode 2 extra locked rowsUp to 40; keyword and metrics hiddenAll delivered rows in full
Monthly allowanceTypically five full batches; shorter or empty results may allow moreFree-plan allowance lifted

Sample runs count toward the monthly allowance. If less allowance remains, the run requests fewer rows and states the actual full and locked counts. The allowance resets at the start of each UTC calendar month. Full rows and completed lookups consume credits even on the free plan.

Upgrade your Apify plan and run the same input again for full results. Paid plans start at $19/mo with $19 in platform credits.

🧪 Filter recipes

These recipes choose a mode and a market. No post-fetch filters remove paid results.

Check your keyword list — Mode 1

{"operationMode":"metrics","keywords":["running shoes","pizza near me","seo agency"],"country":"US","language":"en","maxKeywords":1000}

Find Spanish ideas — Mode 2

{"operationMode":"ideas","seedKeywords":["zapatillas de correr"],"country":"ES","language":"es","maxIdeas":100}

🔁 Resume / checkpoint

Already saved rows remain in the dataset when a run is stopped. For a new run, paste the unfinished input keywords again; Skipped Items lists them and their reasons. A new run charges for new completed work. It does not resume the prior dataset automatically.

📡 Live status & storage records

The Output tab links to the live status page and results. After completion, the stored status page shows the saved count and the run's message.

RecordContents
Run SummaryFull and locked rows, completed lookups, prices, skipped count and stop reason
User MessageWhat happened and what to change; always present when no full rows were saved
Skipped ItemsInput keywords not delivered, with the reason
Free-Plan Limits AppliedLimits that affected a free-plan run

🤖 Programmatic / API use

Choose operationMode explicitly in automated calls. Use the same inputs as the form with Apify's API:

curl -X POST 'https://api.apify.com/v2/acts/afanasenko~keyword-search-volume/run-sync-get-dataset-items' \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"operationMode":"ideas","seedKeywords":["running shoes"],"maxIdeas":100}'

AI agents can call the actor through Apify's MCP server. Download the complete dataset as JSON, CSV or Excel.

💡 Tips & Best Practices

Pick a market first

Volume for the same phrase can differ greatly by country. Use a language supported for that market.

Use a clear seed

Mode 2 accepts one phrase. For a product range, start separate runs for distinct topics.

Read difficulty and competition separately

Difficulty estimates organic ranking effort. Competition measures advertisers, not organic results.

Check the update date

Monthly averages and history are reported data, not a count of today's searches. Compare update dates before judging changes.

❓ FAQ

How do I check Google keyword search volume? Choose Mode 1 and enter keyword phrases, a country and a language. Export the matched rows.

How do I find keyword ideas? Choose Mode 2 and enter exactly one seed. It returns related ideas with volume, CPC, difficulty and intent when known.

Is there a free keyword search volume option? The free Apify plan shows one checked keyword or ten ideas in full within a monthly allowance. Full rows and lookups use credits.

Can I use Google Keyword Planner instead? Yes. This actor is useful when you want an export or an automated workflow with the same input and output shape on each run.

Does it return Ahrefs keyword difficulty? No. Difficulty is an independent 0–100 estimate of the effort to rank in the organic top ten.

Is advertising competition the same as difficulty? No. Advertising competition is a 0–1 value about advertisers. Organic difficulty has its own column.

Why is search volume null? Some matched keywords have no reported average volume. Other available metrics are kept and the full matched row is charged. A missing keyword gets no dataset row and no keyword charge.

Do empty results cost anything? A successfully checked empty batch or ideas page costs one lookup. No keyword rows are charged.

How many months of history are returned? It varies by keyword and mode. Ideas commonly have twelve months; list metrics can have longer history. Check the array and update date for each row.

Can I export CSV or Excel? Yes. Open the dataset and select Export. JSON keeps the history arrays in their original structure.

Why are rows locked? Your free-plan limits apply. Locked rows are not charged. Upgrade and run the same input again to see full results.

What happens with empty input? The run announces a sample and returns at most ten rows, subject to your plan and ceiling. Put your own phrase in the matching mode section for real research.

🔗 Other SEO actors (same author)

ActorPurpose
Backlink ScraperCheck linking pages, anchor text, dofollow, dates and spam score

🛟 Support & feedback

  1. Open the Apify Store Issues tab with your run link if results differ from your expectations.
  2. Include the selected mode, country and language so the query can be checked.
  3. Leave a review if the actor helped your keyword research.

Use keyword metrics for lawful research and respect the terms of the services in your workflow. See Apify's guidance on web scraping.