# Bulk Keyword Search Volume – 1,000 Keywords for $0.25 (`rt-solutions/bulk-keyword-search-volume`) Actor

Google Ads search volume, CPC, competition, bids and up to 4 years of history: 1,000 keywords for a flat $0.25. Keyword ideas, difficulty and intent. 217 countries, licensed data.

- **URL**: https://apify.com/rt-solutions/bulk-keyword-search-volume.md
- **Developed by:** [RT SOLUTIONS](https://apify.com/rt-solutions) (community)
- **Categories:** SEO tools, AI
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $200.00 / 1,000 batch of up to 1,000 keywords

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Bulk Keyword Search Volume – 1,000 Keywords for $0.25

Get **Google search volume, CPC, competition, top‑of‑page bids and up to 4 years of monthly history** for **up to 1,000 keywords for one flat $0.25**. Or turn up to 20 seed keywords into **thousands of keyword ideas** for $0.50. 217 countries, any language.

The data is **licensed Google Ads (Keyword Planner) data** from DataForSEO, not scraped: no blocks, no captchas, the same numbers as Google Keyword Planner.

### Why this one

| | This Actor | Other bulk keyword Actors |
|---|---|---|
| 1,000 keywords | **$0.25 flat** | $0.30 – $1.99 per batch, or $3–11 per 1,000 |
| Keyword ideas (up to 20 seeds, up to 20,000 ideas) | **$0.50 flat** | $0.75+ |
| History | up to **48 months**, same price | usually 12 months |
| Trend % (month, quarter, year) | ✅ computed for you | ❌ |
| Keyword difficulty + search intent | optional, +$0.45 per 1,000 | rare |
| Countries | 217 | often fewer |
| Batch with no data | **not charged** | often charged |

### Input examples

1,000 keywords in the US with 24 months of history:

```json
{ "keywords": ["running shoes", "crm software", "best vpn"], "country": "United States", "historyMonths": 24 }
```

Keyword ideas in French, at least 100 searches per month, with difficulty and intent:

```json
{ "mode": "ideas", "keywords": ["chaussures de running"], "country": "France", "language": "fr", "maxIdeas": 2000, "minSearchVolume": 100, "includeSeoMetrics": true }
```

### Output example (real run)

```json
{
  "keyword": "crm software",
  "country": "United States",
  "language": "all",
  "searchVolume": 201000,
  "cpc": 37.13,
  "competition": "LOW",
  "competitionIndex": 4,
  "lowTopOfPageBid": 7.14,
  "highTopOfPageBid": 51.57,
  "trendPercent": { "monthly": 174, "quarterly": 124, "yearly": 233 },
  "monthlySearches": [{ "month": "2026-09", "searchVolume": 550000 }, { "month": "2026-08", "searchVolume": 201000 }],
  "keywordDifficulty": 59,
  "searchIntent": "commercial",
  "source": "Google Ads (DataForSEO, licensed)"
}
```

`keywordDifficulty` and `searchIntent` appear only with the SEO option.

### Use cases

- **SEO & content teams**: size thousands of topics at once and keep the ones with volume.
- **PPC**: CPC and top‑of‑page bids to budget Google Ads campaigns, by country.
- **Agencies & SaaS**: cheap bulk keyword metrics through the Apify API, on a schedule.
- **Market research**: 4‑year demand history and trend by country.

### Pricing

- **Search volume: $0.25 per batch of up to 1,000 keywords**, whatever the number in the batch ($0.23 / $0.20 on higher Apify plans).
- **Keyword ideas: $0.50 per request** (up to 20 seeds, up to 20,000 ideas).
- **Difficulty + intent (optional): +$0.45 per batch of up to 1,000 keywords.**
- A batch where Google returns no data is **not charged**. Set a maximum cost per run in Apify to cap spending.

Tip: send your keywords in one run — 1,000 keywords cost the same as 10.

### Apify free plan

On the **Apify free plan** you get **one free trial run** (up to 100 keywords, or 1 seed and 50 ideas) with no setup. After that, add **your own DataForSEO API login** in the "Apify free plan" section (DataForSEO gives $1 of free credit at sign‑up), or use a paid Apify plan — no key needed and no limit. A blocked run stops immediately with a message and nothing is charged.

### Good to know

- Volumes are Google Ads monthly averages, rounded by Google (e.g. 9,900 / 12,100). Google groups very close variants (plural, typos) under the same volume.
- Google Ads accepts keywords up to 80 characters and 10 words. Symbols like `! ( ) ,` are removed automatically; longer keywords are skipped with a warning.
- Very rare phrases come back with `searchVolume: null`.
- Language empty = all languages (Keyword Planner default).

### Use with AI agents (MCP)

You can run this Actor from Claude, ChatGPT, Cursor or any other MCP client through the Apify MCP server (https://mcp.apify.com), using the Actor ID `rt-solutions/bulk-keyword-search-volume`. Ask in plain language, for example: *"Get the monthly Google search volume and CPC in the United States for these 300 keywords, with 24 months of history."* The agent starts the run and reads the results for you. The Actor also works through the Apify API and integrations such as Make, n8n and Zapier.

### FAQ

**How do I get Google search volume for thousands of keywords at once?** Paste up to 1,000 keywords per batch, pick a country and optional language, and start the run. The data is licensed Google Ads (Keyword Planner) data from DataForSEO, so there are no blocks or captchas.

**How much does it cost to get search volume for 10,000 keywords?** 10 batches of 1,000 keywords × $0.25 = $2.50 ($2.30 or $2.00 on higher Apify plans). Keyword difficulty and search intent add $0.45 per batch, $4.50 for 10,000 keywords.

**Is the data the same as Google Keyword Planner?** Yes. Volumes are Google Ads monthly averages, rounded by Google (e.g. 9,900 / 12,100), and very close variants share the same volume.

**Why is `searchVolume` empty for some keywords?** Very rare phrases come back with `searchVolume: null`. Keywords longer than 80 characters or 10 words are skipped with a warning.

**Which countries and languages are supported?** 217 countries and any language. An empty language means all languages, the Keyword Planner default.

**Can I schedule it to track keyword demand?** Yes. Schedule runs in Apify; each keyword also comes with up to 48 months of monthly history and computed monthly, quarterly and yearly trend %.

### Related Actors

- [Keyword Search Volume (per keyword, with SERP data)](https://apify.com/rt-solutions/keyword-search-volume)
- [Google Trends Scraper](https://apify.com/rt-solutions/google-trends-scraper)
- [AI Brand Visibility Tracker](https://apify.com/rt-solutions/ai-brand-visibility-tracker)
- [Semrush Website Traffic Scraper](https://apify.com/rt-solutions/semrush-website-traffic-scraper)

# Actor input Schema

## `mode` (type: `string`):

Metrics for your list (one $0.25 batch per 1,000 keywords), or new keyword ideas from up to 20 seeds per $0.50 request.

## `keywords` (type: `array`):

One per line, as many as you want (sent in batches of 1,000). Ideas mode: each line is a seed (20 seeds per request). Google Ads accepts up to 80 characters and 10 words per keyword; symbols like ! ( ) , are removed.

## `country` (type: `string`):

Google Ads data for this country (217 countries).

## `language` (type: `string`):

Language code or name, e.g. en, fr, German. Empty = all languages, like Google Keyword Planner's default.

## `historyMonths` (type: `integer`):

Monthly search volumes per keyword, up to 48 months (4 years). 0 = none. Same price.

## `includeSeoMetrics` (type: `boolean`):

Keyword difficulty (0-100) and search intent (commercial, informational, navigational, transactional) for every keyword: +$0.45 per batch of up to 1,000 keywords. Available for 94 countries.

## `maxIdeas` (type: `integer`):

Ideas mode only. Sorted by search volume. Same price whatever the number.

## `minSearchVolume` (type: `integer`):

Keywords below this volume are dropped from the results.

## `searchPartners` (type: `boolean`):

Add search volume from Google's search partner sites.

## `dataForSeoLogin` (type: `string`):

Only needed on the Apify free plan after the free trial. Paid Apify plans need no key.

## `dataForSeoPassword` (type: `string`):

From app.dataforseo.com → API Access.

## Actor input object example

```json
{
  "mode": "volume",
  "keywords": [
    "running shoes",
    "best running shoes for flat feet",
    "trail running shoes women"
  ],
  "country": "United States",
  "historyMonths": 12,
  "includeSeoMetrics": false,
  "maxIdeas": 1000,
  "minSearchVolume": 0,
  "searchPartners": false
}
```

# Actor output Schema

## `overview` (type: `string`):

Main metrics.

## `results` (type: `string`):

One row per keyword with all metrics.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "running shoes",
        "best running shoes for flat feet",
        "trail running shoes women"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("rt-solutions/bulk-keyword-search-volume").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "keywords": [
        "running shoes",
        "best running shoes for flat feet",
        "trail running shoes women",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("rt-solutions/bulk-keyword-search-volume").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "running shoes",
    "best running shoes for flat feet",
    "trail running shoes women"
  ]
}' |
apify call rt-solutions/bulk-keyword-search-volume --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,rt-solutions/bulk-keyword-search-volume"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/iKzWKnEHjS5UnHQNx/builds/33egAVo0hjSzMogJH/openapi.json
