# Keyword Search Volume — Estimated Monthly Searches & Trends (`intelscrape/keyword-search-volume`) Actor

Keyword Search Volume tool: estimated monthly Google searches for any keyword with no API key, plus 12-month trend, seasonality and peak month, related and rising queries and autocomplete keyword ideas. Optional exact Google Ads volume with your own DataForSEO key. Pay per keyword.

- **URL**: https://apify.com/intelscrape/keyword-search-volume.md
- **Developed by:** [IntelScrape](https://apify.com/intelscrape) (community)
- **Categories:** SEO tools, Marketing
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Keyword Search Volume — Estimated Monthly Searches & Trends

![Keyword Search Volume — Estimated Monthly Searches & Trends](https://api.apify.com/v2/key-value-stores/hRabN9WfDGrT4nSvV/records/keyword-search-volume-banner.png)

🇨🇳 **关键词搜索量估算工具**：基于 Google 趋势校准，估算每个关键词的谷歌月搜索量，并提供12个月趋势、季节性与峰值月份、相关词、上升词和自动补全关键词建议。无需任何API密钥，按关键词付费。

🇸🇬 **Volum Carian Kata Kunci**: anggaran carian Google bulanan bagi setiap kata kunci, berserta trend 12 bulan, musim dan bulan puncak, kata kunci berkaitan dan meningkat, serta cadangan autolengkap. Tiada kunci API diperlukan.

#### 🤖 NEW: Connect This To Your AI!

Use this actor from Claude, ChatGPT, Cursor or any MCP client through the **[IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace)**, or call it directly over the Apify API.

#### 🏆 Featured Bots by IntelScrape

- [Skip Trace Pro](https://apify.com/intelscrape/skip-trace-pro)
- [TruePeopleSearch Scraper](https://apify.com/intelscrape/truepeoplesearch-scraper)
- [TikTok Email Scraper](https://apify.com/intelscrape/tiktok-scraper)
- [Amazon Product Reviews Scraper](https://apify.com/intelscrape/amazon-product-review-scraper)
- [Website Contact Scraper](https://apify.com/intelscrape/contact-info-scraper)
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace)

⚡ Works with n8n, Make, Zapier, Google Sheets and the Apify API.

![price](https://img.shields.io/badge/price-%246%20per%201K%20keywords-blue) ![billing](https://img.shields.io/badge/billing-pay%20per%20keyword-green) ![API key](https://img.shields.io/badge/API%20key-not%20required-brightgreen) ![volume](https://img.shields.io/badge/volume-estimated-orange)

**Estimated monthly search volume, trend direction and keyword ideas for any list of keywords, with no subscription and no API key.**

> **Honest coverage & billing:** Volumes are estimates (see accuracy figures above), not Google Ads data. You pay only for results actually delivered, and a built-in cost guard stops the run at your max-charge limit.

🌍 Built for teams in the **US, China and Singapore**, and anyone who needs this data in a spreadsheet or pipeline.

⭐ Found it useful? Please leave a review; it helps others find it.

⚖️ **Lawful business use only.** Collect public data only, and comply with the source site's terms, copyright and data-protection laws (GDPR, CCPA, China PIPL, Singapore PDPA).

*Examples below are illustrative; names and values may be fictional or out of date.*

### What is Keyword Search Volume?

Keyword tools charge monthly subscriptions, and Google Keyword Planner hides real numbers behind ad spend. **Keyword Search Volume** estimates monthly Google searches by calibrating public Google Trends data against reference keywords with known volume, then adds the 12-month trend, seasonality, related and rising queries and autocomplete ideas. No account, no API key, pay per keyword.

### What does it do?

- **Estimated monthly searches** with a low/high range and a confidence label
- **12-month trend**: monthly interest and estimated searches per month
- **Trend direction** (rising / stable / falling), 12-month change % and peak month
- **Related & rising queries (on by default)** from Google Trends
- **Autocomplete keyword ideas (on by default)** from Google suggest
- **Search intent** (brand/navigational vs generic) used to adjust the estimate
- **Bring your own calibration**: add one keyword whose real volume you know (e.g. from Search Console) for better accuracy and non-US countries
- **Optional exact volume**: add your own DataForSEO login for Google Ads volume, CPC and competition (billed to your DataForSEO account)

### Why choose us over cheaper scrapers?

- **Honest output**: limits are documented, missing data is labeled, never invented
- **Clean, consistent schema** ready for Excel, Sheets, BI tools or an LLM
- **No account risk**: no logins, no cookies
- **Pay per result** with a cost guard; no subscription
- **Maintained by IntelScrape** and fixed fast when the source changes

### Who is it for?

- **SEO keyword research**: prioritise keywords by estimated demand
- **Content planning**: publish before the peak month
- **Product & market validation**: compare demand for product ideas
- **PPC planning**: shortlist keywords before paying for exact data
- **Trend spotting**: find rising queries in your niche
- **Agency reporting**: cheap bulk checks for client keyword lists

### How to use it

#### In Apify Console (no code)

1. Click **Try for free** / **Start**. The form is prefilled with a working example.
2. Change the inputs (see examples below).
3. Click **Start**, then export the results as **JSON, CSV, Excel, XML or HTML**, or open them in Google Sheets.
4. Optional: **Schedule** the actor to run hourly, daily or weekly.

#### Via API

```bash
curl -X POST "https://api.apify.com/v2/acts/intelscrape~keyword-search-volume/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"keywords": ["coffee maker", "espresso machine", "french press", "cold brew coffee", "pour over coffee"], "country": "US", "includeRelatedQueries": true, "includeAutocomplete": true}'
```

Or use the official [Apify JavaScript](https://docs.apify.com/api/client/js/) and [Python](https://docs.apify.com/api/client/python/) clients:

```python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("intelscrape/keyword-search-volume").call(run_input={"keywords": ["coffee maker", "espresso machine", "french press", "cold brew coffee", "pour over coffee"], "country": "US", "includeRelatedQueries": true, "includeAutocomplete": true})
for item in client.dataset(run["default_dataset_id"]).iterate_items():
    print(item)
```

#### With AI agents (MCP)

Add Apify's MCP server (`https://mcp.apify.com`) or the [IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace) to Claude Desktop, Cursor, ChatGPT or any MCP client, then ask in plain language, e.g. *"Run intelscrape/keyword-search-volume with the default input and summarise the results."*

### Input examples

**Default: 5 keywords, US**

```json
{
  "keywords": ["coffee maker", "espresso machine", "french press", "cold brew coffee", "pour over coffee"],
  "country": "US",
  "includeRelatedQueries": true,
  "includeAutocomplete": true
}
```

**Your own calibration keyword (any country)**

```json
{
  "keywords": ["fahrrad kaufen", "e-bike test"],
  "country": "DE",
  "calibrationKeyword": "fahrrad",
  "calibrationMonthlyVolume": 90500
}
```

**Exact volume with your DataForSEO account**

```json
{
  "keywords": ["crm software"],
  "dataforseoLogin": "you@example.com",
  "dataforseoPassword": "YOUR_API_PASSWORD"
}
```

### Output fields

| Field | Description |
|---|---|
| `keyword / country / intent` | What was checked |
| `estimatedMonthlySearches` | Estimated Google searches per month |
| `estimatedRange` | {low, high} plausible range |
| `confidence` | medium / low / very low / below measurable threshold |
| `last12Months` | Monthly trendsIndex and estimatedSearches |
| `trendDirection / trendChange12mPct / peakMonth` | Trend summary |
| `relatedQueries / risingQueries` | Google Trends related searches |
| `autocompleteSuggestions` | Google autocomplete ideas |
| `exact` | Google Ads volume, CPC, competition (only with your DataForSEO key) |
| `charged` | Whether this row was billed |

#### Sample output

```json
{
  "keyword": "coffee maker",
  "country": "US",
  "intent": "generic",
  "estimatedMonthlySearches": 330000,
  "estimatedRange": { "low": 110000, "high": 980000 },
  "confidence": "medium",
  "trendDirection": "falling",
  "trendChange12mPct": -21,
  "peakMonth": "2026-04",
  "risingQueries": [{ "query": "caraway coffee maker", "growth": "+1,450%" }],
  "autocompleteSuggestions": ["coffee maker with grinder", "coffee maker walmart"],
  "charged": true
}
```

### Pricing (pay per event)

| Event | When it is charged | Price |
|---|---|---|
| **Actor start** | once per run (covers Google Trends calibration) | $0.01 |
| **Keyword** | per keyword with usable data | $0.006 |

#### Cost examples

| Run | Cost |
|---|---|
| Default run: 5 keywords | $0.04 |
| 100 keywords | $0.61 |
| 500 keywords | $3.01 |

Platform usage is included in these prices. Set **Max charge per run** in the run options to cap spend; the actor stops cleanly when the limit is reached and keeps everything collected so far.

### FAQ

#### How accurate are the estimates?

They are estimates, not Google Ads numbers. In our test against published figures, 16 of 28 keywords were within 3×; brand/navigational terms were mostly within 2×, generic terms had a median error around 3×. Use them to rank and compare keywords, not as exact traffic forecasts.

#### Is this free like Google Keyword Planner?

There is no subscription; you pay $0.006 per keyword plus $0.01 per run. Keyword Planner shows only ranges unless you run ads.

#### Do I need an API key?

No. An optional DataForSEO login adds exact Google Ads volume, billed to your own DataForSEO account.

#### Which countries are supported?

Built-in calibration covers the US. For other countries add a calibration keyword with its known monthly volume (e.g. from Search Console).

#### Am I charged if Google Trends returns nothing?

No. Rows without usable data are saved with "charged": false and a note, and are not billed.

#### What are rising queries?

Searches related to your keyword whose interest grew fastest recently, from Google Trends.

#### Why is a small keyword "below measurable threshold"?

Google Trends reports 0 for very low-volume terms. The row gives an upper bound instead of a fake number.

#### How long does a run take?

Roughly 15–60 seconds per keyword, because Google Trends is rate-limited. Small runs (up to 25 keywords) stop at a 4.5-minute budget; any keyword not reached is returned with "charged": false so you can re-run it. Larger lists run until done.

#### Can I use it from an AI agent or n8n?

Yes, via the Apify API, n8n/Make/Zapier integrations or the IntelScrape MCP server.

### Honest limits

- Volumes are estimates (see accuracy figures above), not Google Ads data.
- Built-in calibration is US only; other countries need your own calibration keyword.
- Very low-volume keywords may show "below measurable threshold".
- Google Trends rate limits make runs slower than API tools; rows without data are not charged.

### Related IntelScrape bots

- [AI Search Visibility Tracker](https://apify.com/intelscrape/ai-search-visibility-tracker): brand visibility in AI Overviews
- [Google News Scraper](https://apify.com/intelscrape/google-news-scraper): headlines & summaries
- [Website Contact Scraper](https://apify.com/intelscrape/contact-info-scraper): emails, phones & socials from sites
- [Amazon Product Reviews Scraper](https://apify.com/intelscrape/amazon-product-review-scraper): review text & stars
- [Bilibili Scraper](https://apify.com/intelscrape/bilibili-scraper): B站 videos, views, comments
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace): IntelScrape tools for AI agents

### Legal

This actor collects publicly available data only. You are responsible for using the results lawfully and in line with the source's terms and applicable privacy laws (GDPR, CCPA, PIPL, PDPA). Process personal data only with a legitimate purpose. IntelScrape is not affiliated with, endorsed by or sponsored by the data source; all trademarks belong to their owners.

# Actor input Schema

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

One keyword per line (up to 500).

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

Two-letter country code (US, GB, DE...) or WORLDWIDE. Built-in volume calibration covers the US; for other countries add a calibration keyword below, otherwise you get relative demand and trends only.

## `includeRelatedQueries` (type: `boolean`):

Top and rising related searches from Google Trends.

## `includeAutocomplete` (type: `boolean`):

Google autocomplete suggestions for each keyword.

## `calibrationKeyword` (type: `string`):

A keyword whose real monthly volume you know (from your Google Search Console or Ads). Makes estimates more accurate and enables non-US countries.

## `calibrationMonthlyVolume` (type: `integer`):

Known monthly searches for the calibration keyword.

## `dataforseoLogin` (type: `string`):

Add your own DataForSEO API login to also get exact Google Ads search volume, CPC and competition. Billed to your DataForSEO account (about $0.09 per request of up to 1,000 keywords).

## `dataforseoPassword` (type: `string`):

Your DataForSEO API password.

## `proxyConfiguration` (type: `object`):

Apify Proxy keeps Google Trends from rate-limiting the run.

## Actor input object example

```json
{
  "keywords": [
    "coffee maker",
    "espresso machine",
    "french press",
    "cold brew coffee",
    "pour over coffee"
  ],
  "country": "US",
  "includeRelatedQueries": true,
  "includeAutocomplete": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

No description

# 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": [
        "coffee maker",
        "espresso machine",
        "french press",
        "cold brew coffee",
        "pour over coffee"
    ],
    "includeRelatedQueries": true,
    "includeAutocomplete": true,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("intelscrape/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": [
        "coffee maker",
        "espresso machine",
        "french press",
        "cold brew coffee",
        "pour over coffee",
    ],
    "includeRelatedQueries": True,
    "includeAutocomplete": True,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("intelscrape/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": [
    "coffee maker",
    "espresso machine",
    "french press",
    "cold brew coffee",
    "pour over coffee"
  ],
  "includeRelatedQueries": true,
  "includeAutocomplete": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call intelscrape/keyword-search-volume --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,intelscrape/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/NlD3v4MsTJgaFE0YU/builds/wqRGYjUwZanh7UnND/openapi.json
