Keyword Search Volume Checker Scraper avatar

Keyword Search Volume Checker Scraper

Pricing

Pay per event

Go to Apify Store
Keyword Search Volume Checker Scraper

Keyword Search Volume Checker Scraper

Check Google keyword search volume, CPC, competition, intent, categories, and 12-month trends for a bulk list without buyer API credentials.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

4 days ago

Last modified

Categories

Share

Turn a keyword list into structured Google search-demand metrics without opening a Google Ads account or supplying DataForSEO credentials.

This keyword search volume checker returns one normalized row per unique keyword with search volume, CPC, paid competition, competition level, intent, category IDs, and the latest 12 monthly volume points.

It is designed for bounded list scoring, scheduled SEO dashboards, no-code enrichment, and AI-agent research.

What does this Actor do?

The Actor sends one efficient, bounded request to DataForSEO Labs Keyword Overview and writes the response to the default Apify dataset.

It can:

  • check 1–700 keywords in one run;
  • use a supported Google location and language;
  • deduplicate repeated keywords before the paid request;
  • preserve unavailable metrics as null rather than inventing zeroes;
  • retain the latest 12 monthly search-volume points;
  • enforce estimated and actual upstream-cost ceilings;
  • produce integration-ready JSON, CSV, Excel, XML, RSS, or HTML through Apify dataset exports.

It does not generate keyword suggestions, scrape SERPs, track rankings, send alerts, or query Bing and other engines.

Who is it for?

SEO agencies

Score client keyword lists and feed repeatable metrics into reporting dashboards.

Content and growth teams

Compare demand, CPC, intent, and trend before prioritizing a content backlog.

No-code operators

Enrich rows from Make, Zapier, n8n, Airtable, or Google Sheets without managing another API account.

AI-agent developers

Give an agent typed keyword evidence instead of asking it to estimate demand from general knowledge.

Data teams

Schedule the same bounded input and compare stored datasets over time in your own warehouse.

Why use this keyword metrics checker?

  • No buyer API key: company-managed credentials stay in secret Actor configuration.
  • One row per keyword: results are easy to join back to a list.
  • Nullable by design: missing source values remain missing.
  • Cost guarded: input is rejected before a paid call when its published estimate exceeds the selected ceiling.
  • Bulk efficient: all accepted keywords use one DataForSEO Live task.
  • Apify native: schedule runs, trigger webhooks, export datasets, or call the Actor over API.

What keyword data is returned?

FieldMeaningNullable
keywordTrimmed, deduplicated input keywordNo
locationCodeDataForSEO location codeYes
languageCodeDataForSEO language codeYes
searchVolumeCurrent average monthly Google search volumeYes
cpcHistorical average Google Ads CPC in USDYes
competitionPaid-search competition from 0 to 1Yes
competitionLevelSource level such as LOW, MEDIUM, or HIGHYes
intentPrimary detected search intentYes
foreignIntentsAdditional detected intentsNo; empty array when absent
categoriesDataForSEO category identifiersNo; empty array when absent
monthlySearchVolumeLatest 12 { year, month, searchVolume } pointsNo; empty array when absent
dataUpdatedAtSource metric update timeYes
checkedAtActor extraction time in ISO 8601No

Getting started

  1. Open the Actor input page.
  2. Add at least one keyword to Keywords.
  3. Keep United States and English, or enter another exact DataForSEO-supported location and language name.
  4. Optionally lower the upstream-cost ceiling for a small automation.
  5. Click Start.
  6. Open the Keyword metrics dataset view.
  7. Export the rows or connect the dataset to your next workflow step.

The prefilled three-keyword input is intentionally small and is suitable for a first run.

Input parameters

keywords

Required array of 1–700 keyword phrases.

Each phrase may contain at most:

  • 80 characters;
  • 10 words.

Whitespace is normalized and duplicates are removed case-insensitively. The first spelling of a duplicate is retained.

locationName

Exact DataForSEO location name.

Default: United States.

Examples include United Kingdom, Germany, and Australia.

An unsupported name produces a clear upstream validation error; the Actor does not silently switch geography.

languageName

Exact DataForSEO language name.

Default: English.

Examples include German, Spanish, and French.

maxUpstreamCostUsd

Optional per-run safety ceiling from $0.01212 to $0.10.

Default: $0.10.

This can lower the Actor's fixed hard ceiling but cannot raise it.

The pre-call estimate follows the current DataForSEO formula: $0.012 + $0.00012 × unique keyword count.

Example input

{
"keywords": [
"keyword search volume checker",
"bulk keyword volume checker",
"google keyword planner alternative"
],
"locationName": "United States",
"languageName": "English",
"maxUpstreamCostUsd": 0.02
}

Example output

A current US-English source response is normalized like this:

{
"keyword": "keyword search volume checker",
"locationCode": 2840,
"languageCode": "en",
"searchVolume": 390,
"cpc": 10.52,
"competition": 0.37,
"competitionLevel": "MEDIUM",
"intent": "informational",
"foreignIntents": [],
"categories": [10008],
"monthlySearchVolume": [
{ "year": 2026, "month": 6, "searchVolume": 210 },
{ "year": 2026, "month": 5, "searchVolume": 390 },
{ "year": 2026, "month": 4, "searchVolume": 390 }
],
"dataUpdatedAt": "2026-07-14 09:13:02 +00:00",
"checkedAt": "2026-07-29T02:15:00.000Z"
}

The actual monthlySearchVolume array contains up to 12 points; it is shortened above for readability.

How much does it cost to check keyword search volume?

Pay-per-event pricing has two parts:

  • $0.33 once after the input passes validation;
  • a tiered price for each keyword row saved to the dataset.

At the BRONZE tier, each saved keyword row costs $0.0008.

Unique keywordsBRONZE calculation
3$0.33 + (3 × $0.0008)
100$0.33 + (100 × $0.0008)
500$0.33 + (500 × $0.0008)
700$0.33 + (700 × $0.0008)

Per-row prices are $0.00092 FREE, $0.0008 BRONZE, $0.000624 SILVER, $0.00048 GOLD, $0.00032 PLATINUM, and $0.000224 DIAMOND. Apify shows the applicable price before a run.

Invalid input fails before the start event and before any paid DataForSEO request. A valid run charges the start event before the upstream request, then charges only rows emitted after a successful response and cost verification.

Upstream cost and safety limits

DataForSEO currently charges $0.012 per Live task plus $0.00012 per keyword for this endpoint.

The Actor protects the shared account in four ways:

  1. it validates every keyword before the request;
  2. it caps the request at 700 unique keywords;
  3. it rejects estimated cost above the user's ceiling or the fixed $0.10 ceiling;
  4. it checks the task's returned actual cost before charging or saving item rows.

The Actor never accepts buyer DataForSEO credentials and never logs company credentials.

At 700 keywords, the fixed hard ceiling limits upstream API cost to $0.096. Using the lowest DIAMOND customer price, gross revenue is $0.4868; after Apify's 20% platform margin and the measured representative platform cost, the remaining net margin is above 70%.

Scheduled SEO dashboard workflow

Use an Apify schedule to run the same keyword list weekly or monthly.

For change analysis:

  1. schedule this Actor with a stable location and language;
  2. store each run ID and dataset ID in your warehouse;
  3. join rows by keyword;
  4. compare searchVolume, cpc, competition, and monthly points;
  5. alert or report from your own downstream system.

The Actor supplies snapshots. It does not calculate deltas or send alerts itself.

No-code list enrichment

A typical Make, Zapier, or n8n workflow is:

  1. collect a bounded keyword list from a sheet or form;
  2. start the Actor synchronously;
  3. read dataset items;
  4. branch on nullable fields;
  5. write metrics back to the original rows.

Keep keyword batches together when they share a location and language. Separate runs are needed for different locale combinations.

API usage with cURL

Set APIFY_TOKEN in your shell, then run:

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~bulk-keyword-metrics-checker/runs?token=$APIFY_TOKEN&waitForFinish=300" \
-H "Content-Type: application/json" \
-d '{
"keywords": ["seo reporting dashboard", "keyword performance dashboard"],
"locationName": "United States",
"languageName": "English",
"maxUpstreamCostUsd": 0.02
}'

Read items from the run's defaultDatasetId.

API usage with JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/bulk-keyword-metrics-checker').call({
keywords: ['seo reporting dashboard', 'keyword performance dashboard'],
locationName: 'United States',
languageName: 'English',
maxUpstreamCostUsd: 0.02,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

API usage with Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("automation-lab/bulk-keyword-metrics-checker").call(run_input={
"keywords": ["seo reporting dashboard", "keyword performance dashboard"],
"locationName": "United States",
"languageName": "English",
"maxUpstreamCostUsd": 0.02,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

Use with Apify MCP

Add the Actor to Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/bulk-keyword-metrics-checker"

For Claude Desktop, Cursor, or VS Code, use this equivalent JSON configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/bulk-keyword-metrics-checker"
}
}
}

Example prompts:

  • “Check these 20 keywords for US English volume and CPC, then rank them by volume.”
  • “Get UK English intent and 12-month volume points for this content backlog.”
  • “Return only keywords with commercial intent and non-null CPC.”

Limits and expected behavior

  • Google is the only supported search engine in this MVP.
  • One run uses one location and one language.
  • The hard limit is 700 unique keywords.
  • Metrics reflect DataForSEO's latest available data, not real-time searches.
  • Monthly history is limited to the latest 12 supplied points.
  • Location and language names must match DataForSEO's supported names.
  • Sparse or unknown keywords can produce rows with nullable metrics.
  • Deduplication means repeated case variants do not create repeated rows or repeated item charges.
  • The Actor does not use proxies or a browser.

Failure and retry behavior

The Actor retries only transient HTTP conditions such as 429 and selected 5xx responses, with bounded backoff.

It does not blindly retry deterministic authentication, input, or location errors.

A failed upstream task causes a failed Actor run; it does not emit misleading partial data.

If the returned actual upstream cost exceeds a ceiling, the Actor fails without charging or saving item rows. The upstream provider may already have charged its task cost, which is why the stricter pre-call estimate is also mandatory.

Troubleshooting

“keywords must be a non-empty array”

Add at least one string under keywords. Objects and numbers are not accepted.

“Estimated upstream cost exceeds the run ceiling”

Reduce the unique keyword count or raise maxUpstreamCostUsd up to the fixed maximum of $0.10.

DataForSEO rejects the locale

Use an exact supported location and language name. Check spelling and do not combine locale codes into the name fields.

A metric is null

null means the source did not provide that metric. It does not mean zero. Preserve this distinction in filters and dashboards.

A repeated keyword is missing

The Actor intentionally emits one row per unique case-insensitive keyword. Join duplicates back to your original list downstream if needed.

Legality and responsible use

Use keyword metrics for lawful SEO, advertising, research, and automation purposes.

Do not present estimates as guaranteed traffic, revenue, or advertising outcomes.

The Actor uses DataForSEO through company-managed credentials and does not expose those credentials or raw authentication details.

DataForSEO markets its APIs for building SEO software and its current public Terms of Service do not state a resale prohibition. Terms can change; the publication owner must recheck the current agreement before first Store publication.

You are responsible for complying with Apify terms, DataForSEO terms, and laws applicable to your downstream use.

These Actors solve adjacent jobs. They are not automatic fallbacks and are not invoked by this Actor.

FAQ

Do I need a DataForSEO account?

No. Do not put DataForSEO credentials in the Actor input.

No. Supply the exact list you want checked. Use a keyword discovery source first when you need suggestions.

Can it track Google rankings?

No. This Actor returns keyword metrics, not domain positions or SERP results.

Can I check multiple countries in one run?

No. Start one run per location/language pair so every row has an unambiguous locale.

Does a missing keyword disappear?

No. The Actor emits a row with nullable metrics when the upstream result omits an accepted keyword.

Can I request more than 700 keywords?

No. The official Live endpoint and the Actor safety contract cap a run at 700.

Are monthly values guaranteed to contain 12 points?

No. The Actor keeps up to the latest 12 points available from the source.

How do I export CSV?

Open the default dataset and select CSV, or request the dataset items endpoint with format=csv.

Is the output suitable for agents?

Yes. Field names and nullability are stable and documented, but agents should not infer a value when a metric is null.