# Google Keyword Planner Alternative - Ideas, Bids & Volume (`tenfoldfleet/google-keyword-planner`) Actor

Get keyword ideas from Google Keyword Planner without a Google Ads account: enter seed keywords or a website URL and get ideas with monthly search volume, CPC, competition and top-of-page bids. $3 per 1,000 ideas + $0.12 per request; ideas without volume are free.

- **URL**: https://apify.com/tenfoldfleet/google-keyword-planner.md
- **Developed by:** [Tenfold Fleet](https://apify.com/tenfoldfleet) (community)
- **Categories:** SEO tools, Marketing, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 keyword ideas

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

### What does Google Keyword Planner do?

**Google Keyword Planner** is an unofficial tool that gets you **keyword ideas from [Google Keyword Planner](https://ads.google.com/home/tools/keyword-planner/) without a Google Ads account**. Enter **seed keywords** or a **website URL**, the same two ways you start in Keyword Planner itself, and get back new keyword ideas with **monthly search volume**, **CPC**, **competition**, **top-of-page bid ranges** and **12 months of search history**. This Actor is not affiliated with, endorsed by or sponsored by Google. Google Ads and Keyword Planner are trademarks of Google LLC.

One Keyword Planner request returns about **1,000 to 5,000 keyword ideas**. You choose how many you keep (up to 5,000 per run), filter them by minimum search volume and sort them by relevance or volume. It works like a **keyword ideas API**: run it from the Apify Console, the API, Make, Zapier, n8n or an AI agent through MCP, and download the ideas as JSON, CSV or Excel.

### Why use it?

- **No Google Ads account, no billing setup.** Keyword Planner shows search volume ranges ("1K-10K") unless you run paid ads. Here you get exact average monthly searches.
- **Keyword research for SEO**: find long-tail keywords and questions around a topic before writing content.
- **PPC planning**: see top-of-page bid ranges and competition before you launch a Google Ads campaign.
- **Competitor research**: put in a competitor's domain or a single page and see which keywords Google associates with it.
- **Bulk and automated**: up to 200 seed keywords per run, in 94 countries and their languages, scheduled or called from code.
- **Simple pricing**: $3 per 1,000 ideas plus $0.12 per request, with every idea as its own dataset row. Ideas without search volume are free.

### What data can it extract?

| Field | Example | What it is |
|---|---|---|
| `keyword` | `trail running shoes women` | The keyword idea |
| `searchVolume` | `14800` | Average monthly Google searches (last 12 months) |
| `cpc` | `1.17` | Average cost per click in USD |
| `competition` | `HIGH` | Google Ads competition: LOW, MEDIUM or HIGH |
| `competitionIndex` | `100` | Competition as a number from 0 to 100 |
| `lowTopOfPageBid` | `0.38` | Top-of-page bid, low range, USD |
| `highTopOfPageBid` | `1.81` | Top-of-page bid, high range, USD |
| `monthlySearches` | `[{ "month": "2026-08", "searchVolume": 9900 }, ...]` | Last 12 months, newest first (seasonality) |
| `seed` | `running shoes, trail running shoes` | The seeds or URL that produced the idea |
| `location`, `language` | `United States`, `English` | Country and language of the data |
| `source` | `google_ads` | `google_ads` = Keyword Planner; `labs_preview` = free-plan preview |

### How to get keyword ideas from Google Keyword Planner

1. Click **Try for free** (or **Start**) on this page.
2. Enter one or more **seed keywords**, for example `running shoes`, and/or a **website or page URL**, for example `semrush.com`.
3. Pick the **country** and **language** (United States and English by default).
4. Set **Max keyword ideas** (500 by default) and, if you want, a **minimum monthly search volume** and **sort by search volume**.
5. Click **Start**. A run takes about 10-30 seconds per request.
6. Download the keyword ideas as **JSON, CSV or Excel**, or read them through the API.

Already have a keyword list and only need the numbers? Use [Keyword Search Volume, CPC & Difficulty Checker](https://apify.com/tenfoldfleet/keyword-search-volume): generate ideas here, check volume and keyword difficulty there.

### How much does it cost?

This Actor uses **pay-per-event** pricing, so you pay only for what you get:

| Event | Price |
|---|---|
| Keyword idea with search volume | **$0.003** ($3 per 1,000 ideas) |
| Keyword Planner request (up to 20 seed keywords, or one website) | **$0.12** |
| Ideas without search volume, empty requests, errors, skipped seeds | **free** |

**Example:** 2 seed keywords, 500 ideas = $0.12 + 500 x $0.003 = **$1.62**. 1,000 ideas for a competitor's website = **$3.12**.

The request fee covers the data provider's fixed fee for each Keyword Planner request. A request that returns no ideas is not charged. Set a **maximum cost per run** and the Actor never starts a request you cannot pay for.

**Free Apify plan:** each run gets a **free preview of 10 keyword ideas** from a related keyword database (`source: "labs_preview"`), not the full Keyword Planner list, because every Keyword Planner request costs the developer a data fee. Any paid Apify plan gets the full list (up to 5,000 ideas per run).

### Input

```json
{
    "seedKeywords": ["running shoes", "trail running shoes"],
    "url": "",
    "location": "United States",
    "language": "English",
    "maxIdeas": 500,
    "minSearchVolume": 0,
    "sortBy": "relevance",
    "includeAdultKeywords": false
}
```

- `seedKeywords`: every 20 seeds make one Keyword Planner request (max 200 seeds per run). Seeds are lowercased and deduplicated, and symbols Google rejects (`, ! @ % ^ ( ) = { } ; ~ < > ? \ |`) are removed.
- `url`: a domain (`semrush.com`) uses the whole site; a URL with a path uses that page only. You can combine it with seeds (one extra request).
- `location` and `language` accept names or codes: `"US"`, `"GB"`, `"Germany"`, `"en"`, `"de"`.
- `maxIdeas` is shared across all requests in the run. Ideas are filtered and sorted **before** the cut, so `sortBy: "search_volume"` with `maxIdeas: 100` gives you the 100 biggest ideas.

### Output

```json
{
    "keyword": "hoka trail running shoes",
    "seed": "running shoes, trail running shoes",
    "searchVolume": 9900,
    "competition": "HIGH",
    "competitionIndex": 100,
    "cpc": 1.17,
    "lowTopOfPageBid": 0.38,
    "highTopOfPageBid": 1.81,
    "monthlySearches": [
        { "month": "2026-08", "searchVolume": 9900 },
        { "month": "2026-07", "searchVolume": 9900 }
    ],
    "location": "United States",
    "language": "English",
    "source": "google_ads",
    "error": null
}
```

Rows with an `error` field (a seed that was too long, a request that returned nothing) are free. Download the dataset as **JSON, CSV, Excel, XML or HTML**, or fetch it with the Apify API.

### Tips

- **Broad seeds give more ideas.** `running shoes` returns thousands of ideas; a 6-word seed returns far fewer.
- **Group related seeds.** Keyword Planner combines all seeds in a request, so put up to 20 seeds about the same topic together.
- **Use `minSearchVolume`** (for example 100) to skip tiny long-tail ideas and pay only for keywords worth targeting.
- **Competitor pages:** a single blog post URL returns ideas for that topic; a bare domain returns ideas for the whole site.
- **Seasonality:** `monthlySearches` shows when demand peaks, so you can publish or bid before it.

### FAQ

#### Do I need a Google Ads account?

No. The Actor gets Keyword Planner data through the DataForSEO API, so you need neither a Google Ads account nor an active campaign.

#### Where does the data come from?

From Google Ads Keyword Planner (keyword ideas for keywords and for sites), through the DataForSEO API. The search volume is Google's average monthly searches over the last 12 months.

#### Why are search volumes rounded, like 9,900 or 14,800?

Google Keyword Planner rounds volumes into buckets. This Actor returns exactly what Google returns.

#### How is this different from the Keyword Search Volume Checker?

This Actor **finds new keywords** from your seeds or a website. [Keyword Search Volume Checker](https://apify.com/tenfoldfleet/keyword-search-volume) **checks a list you already have** and adds keyword difficulty and search intent.

#### Can I use it in Make, Zapier, n8n or an AI agent?

Yes. Call it through the Apify API, the Apify integrations for Make, Zapier and n8n, or the Apify MCP server, which lets AI agents such as Claude run it as a tool.

#### Why did my free-plan run return only 10 ideas?

Every Keyword Planner request costs the developer a fee, so free-plan runs get a 10-idea preview from a related keyword database. Any paid Apify plan returns the full Keyword Planner list.

#### Support

Found a problem or need a feature? Open an issue on the Actor's **Issues** tab and we'll answer quickly.

This Actor is not affiliated with, endorsed by or sponsored by Google. Google Ads and Keyword Planner are trademarks of Google LLC. It returns aggregated, public keyword statistics and no personal data.

### More tools from Tenfold Fleet

| Actor | Output |
|---|---|
| [AliExpress Keyword Scraper - Exact Sold Counts by Search Term](https://apify.com/tenfoldfleet/aliexpress-search-scraper) | product |
| [Amazon Product Scraper - Details, Prices & Search by ASIN](https://apify.com/tenfoldfleet/amazon-product-scraper) | product |
| [ATS Jobs Scraper - Greenhouse, Lever, Ashby & 5 More](https://apify.com/tenfoldfleet/ats-jobs-scraper) | job posting |
| [Backlinks Checker - Referring Domains, Anchors & Domain Rank](https://apify.com/tenfoldfleet/backlinks-checker) | backlink |
| [Bilibili Scraper - Videos, Comments, Danmaku & Search](https://apify.com/tenfoldfleet/bilibili-scraper) | video or comment |
| [Businesses Without Websites - Local Leads with Phone & Rating](https://apify.com/tenfoldfleet/businesses-without-websites) | lead |
| [Contact Details Scraper - One Lead Record per Company Website](https://apify.com/tenfoldfleet/company-contact-finder) | website with contacts |
| [Google Ads Transparency Center Scraper - Competitor Ads by Site](https://apify.com/tenfoldfleet/google-ads-transparency-scraper) | ad |
| [Google AI Overviews Checker - Citations & Domain Tracker](https://apify.com/tenfoldfleet/google-ai-overviews-checker) | keyword checked |
| [Google Jobs Scraper - Salary, Apply Links & Posting Dates](https://apify.com/tenfoldfleet/google-jobs-scraper) | job listing |
| [Google News Scraper - Articles, Real URLs & Full Text](https://apify.com/tenfoldfleet/google-news-scraper) | article |
| [Google Trends Scraper - Interest, Regions & Related Queries](https://apify.com/tenfoldfleet/google-trends-scraper) | keyword |
| [Keyword Ideas & Related Keywords - Difficulty, Volume & CPC](https://apify.com/tenfoldfleet/keyword-ideas) | keyword idea |
| [Keyword Search Volume, CPC & Difficulty Checker (Bulk)](https://apify.com/tenfoldfleet/keyword-search-volume) | keyword with data |
| [Remote Job Board Scraper - Remote Jobs Aggregator, 7 Sites](https://apify.com/tenfoldfleet/remote-jobs-aggregator) | unique remote job |
| [SEEK Job Scraper - Australia, NZ, Jobstreet & JobsDB](https://apify.com/tenfoldfleet/seek-job-scraper) | job listing |
| [SEO Audit Tool - Technical On-Page SEO Checker & Score](https://apify.com/tenfoldfleet/seo-audit-tool) | page audit |
| [SEO Competitor Keywords - Domain Ranked Keywords & Keyword Gap](https://apify.com/tenfoldfleet/seo-competitor-keywords) | keyword |
| [Shopify Inventory Scraper - SKUs, Variants & In-Stock Status](https://apify.com/tenfoldfleet/shopify-products-scraper) | product |
| [Shopify App & Theme Detector - Store Analyzer & Contacts](https://apify.com/tenfoldfleet/shopify-store-analyzer) | shopify store |
| [Sitemap URL Extractor - All URLs from sitemap.xml & robots.txt](https://apify.com/tenfoldfleet/sitemap-url-extractor) | url |
| [Technology Detector - Wappalyzer & BuiltWith Alternative](https://apify.com/tenfoldfleet/tech-stack-detector) | website |
| [URL to Markdown - Web Page to LLM-Ready Text for AI Agents](https://apify.com/tenfoldfleet/url-to-markdown) | page |
| [Website Traffic Checker - Bulk Domain Traffic Estimate](https://apify.com/tenfoldfleet/website-traffic-checker) | domain with traffic data |
| [Workday Jobs Scraper - myworkdayjobs.com API with Salary](https://apify.com/tenfoldfleet/workday-jobs-scraper) | job posting |
| [YouTube Livestream & Channel Scraper - Videos, Likes & Stats](https://apify.com/tenfoldfleet/youtube-channel-scraper) | video |
| [YouTube Comments Scraper - Replies, Likes & Sort by Newest](https://apify.com/tenfoldfleet/youtube-comments-scraper) | comment |
| [YouTube Shorts Analytics Scraper - Views, Likes & Hashtags](https://apify.com/tenfoldfleet/youtube-shorts-scraper) | short |
| [YouTube Captions Downloader - Transcript & Subtitles Scraper](https://apify.com/tenfoldfleet/youtube-transcript-scraper) | transcript |

# Actor input Schema

## `seedKeywords` (type: `array`):

Keywords to get ideas for, one per line, like the 'Start with keywords' box in Google Keyword Planner. Every 20 seeds make one Keyword Planner request (up to 200 seeds per run). Seeds are lowercased and deduplicated; symbols Google does not accept (, ! @ % ^ ( ) = { } ; ~ \` < > ? \ |) are removed. Seeds longer than 80 characters or 10 words are skipped for free.

## `url` (type: `string`):

Get keyword ideas for a website, like the 'Start with a website' box in Google Keyword Planner. A domain ("semrush.com") uses the whole site; a URL with a path ("https://example.com/blog/post") uses that page only. Works on its own or together with seed keywords (one extra request).

## `location` (type: `string`):

Country whose Google search volume, CPC and bids you want. A country name or 2-letter code works ("United States", "US", "GB", "Germany"); 94 countries.

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

Search language, as a name or code ("English", "en", "de"). If the language has no data for the chosen country, the country's main language is used instead (for example Germany + English uses German).

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

Maximum keyword ideas returned per run, shared across all requests (one request returns about 1,000-3,000 ideas). Ideas are filtered and sorted before the cut, and you only pay for ideas returned.

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

Only return ideas with at least this many average monthly searches. 0 returns every idea, including ideas Google has no volume for (those are free).

## `sortBy` (type: `string`):

relevance = Google Keyword Planner's order; search_volume = highest monthly searches first. The sort runs before the cut to Max keyword ideas.

## `includeAdultKeywords` (type: `boolean`):

Include adult keyword ideas. Off by default, as in Google Keyword Planner.

## Actor input object example

```json
{
  "seedKeywords": [
    "running shoes",
    "trail running shoes"
  ],
  "location": "United States",
  "language": "English",
  "maxIdeas": 100,
  "minSearchVolume": 0,
  "sortBy": "relevance",
  "includeAdultKeywords": false
}
```

# 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 = {
    "seedKeywords": [
        "running shoes",
        "trail running shoes"
    ],
    "maxIdeas": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("tenfoldfleet/google-keyword-planner").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 = {
    "seedKeywords": [
        "running shoes",
        "trail running shoes",
    ],
    "maxIdeas": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("tenfoldfleet/google-keyword-planner").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 '{
  "seedKeywords": [
    "running shoes",
    "trail running shoes"
  ],
  "maxIdeas": 100
}' |
apify call tenfoldfleet/google-keyword-planner --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,tenfoldfleet/google-keyword-planner"
        }
    }
}
```

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/tb86hdNKr1Tdyr7hw/builds/hJ2uHrFe416hDqnRl/openapi.json
