# Google Keyword Ideas (volume, CPC, difficulty, intent) (`psypherz/google-keyword-ideas`) Actor

Turn seed keywords into hundreds of Google keyword ideas with search volume, CPC, competition, keyword difficulty, search intent and 12-month trend. 49 countries.

- **URL**: https://apify.com/psypherz/google-keyword-ideas.md
- **Developed by:** [Muhammad Yasin Bin Abdul Rahman](https://apify.com/psypherz) (community)
- **Categories:** SEO tools
- **Security:** Limited permissions
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.84 / 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.
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

## Google Keyword Ideas (volume, CPC, difficulty, intent)

Turn seed keywords into hundreds of Google keyword ideas, each with monthly search volume, CPC, competition, keyword difficulty, search intent and a 12-month trend. Choose long-tail suggestions that contain your seed, or related ideas on the same topic. 49 countries.

**Price: US$0.05 per seed, plus US$0.002 per idea for the first 100 in a run, then US$0.0005.** 100 ideas cost US$0.25. 1,000 ideas cost US$0.70.

### What people use it for

- **SEO content plans:** find long-tail keywords with real volume and low difficulty to write about.
- **Google Ads:** build ad groups with CPC and top-of-page bid ranges.
- **Intent sorting:** separate buying searches (transactional, commercial) from research searches (informational).
- **Niche research:** see how big a topic is and whether interest is rising or falling.
- **AI agents and dashboards:** clean JSON, one row per keyword.

### Example output

Real output from the default input (seed "standing desk", US, 29 Oct 2026):

| keyword | searchVolume | cpcUsd | keywordDifficulty | searchIntent | trendYearlyPct |
|---|---|---|---|---|---|
| standing workstation for desk | 135,000 | 5.16 | 38 | transactional | 0 |
| electric standing desk | 22,200 | 3.27 | 51 | transactional | -76 |
| flexispot standing desk | 22,200 | 2.51 | 11 | transactional | -18 |
| best standing desk | 8,100 | 7.28 | 36 | commercial | -18 |

```json
{
  "seedKeyword": "standing desk",
  "keyword": "electric standing desk",
  "searchVolume": 22200,
  "cpcUsd": 3.27,
  "competition": "HIGH",
  "keywordDifficulty": 51,
  "searchIntent": "transactional",
  "trendYearlyPct": -76,
  "monthlySearches": [{"month": "2025-10", "volume": 22200}, {"month": "2025-11", "volume": 22200}],
  "lowTopOfPageBidUsd": 0.57,
  "highTopOfPageBidUsd": 5.33,
  "country": "US",
  "language": "en"
}
```

Volumes come from Google Ads. Google groups close variants (like "standing desk" and "desk for standing") and reports the same volume for each, so expect repeated numbers at the top of a list. `keywordDifficulty` runs from 0 to 100: how hard it is to rank in Google's top 10. `trendYearlyPct` compares the latest month with the same month a year earlier.

### Input

| Field | What it does | Default |
|---|---|---|
| `keywords` | Up to 20 seed keywords. | 1 sample |
| `mode` | `suggestions`: longer searches containing the seed. `ideas`: related searches on the same topic. | `suggestions` |
| `maxResultsPerKeyword` | Ideas per seed, highest volume first (up to 1,000). | `100` |
| `minSearchVolume` | Skip ideas with fewer monthly searches than this. | `0` |
| `country` | Two-letter country code (49 countries). | `US` |
| `language` | Two-letter language code. | `en` |

### Pricing

| Event | Price |
|---|---|
| Seed request (each seed that returns ideas) | US$0.05 |
| Keyword idea, first 100 in a run | US$0.002 |
| Keyword idea, after the first 100 | US$0.0005 |

Examples: 10 ideas cost US$0.07. 100 ideas cost US$0.25. 1,000 ideas cost US$0.70. A seed that returns no ideas is not charged.

### Limits

- Up to 20 seeds and 1,000 ideas per seed per run.
- Google Ads volumes are rounded and grouped by Google. Use them to compare keywords.
- Free Apify plan: one seed and 10 ideas per run. A run with the prefilled example input returns a stored, dated sample (marked `cachedExample: true`) at no charge.

### FAQ

**How is this different from the Bulk Keyword Search Volume tool?** That tool checks keywords you already have. This one finds new keywords from a seed.

**Can an AI agent call it?** Yes. Pass seeds, get compact JSON back, and pay per idea.

### More tools from the same developer

Same style: clean JSON output, pay only for results, no charge on failed items.

| Tool | What it does |
|---|---|
| [Bulk Keyword Search Volume](https://apify.com/PsypherZ/keyword-search-volume) | Google Ads search volume, CPC, competition and 12-month trend for up to 10,000 keywords |
| [Amazon Keyword Search Volume](https://apify.com/PsypherZ/amazon-keyword-volume) | Monthly Amazon searches for up to 10,000 keywords in 16 markets, plus related keywords |
| [Competitor Keywords](https://apify.com/PsypherZ/competitor-keywords) | Every Google keyword a domain ranks for, with traffic, plus its closest competitors |
| [Google Trends API](https://apify.com/PsypherZ/google-trends-api) | Interest over time, by region, and rising queries and topics for up to 500 keywords |
| [Google SERP Results](https://apify.com/PsypherZ/google-serp-results) | Organic results, featured snippets and People Also Ask for any keyword, country and device |
| [AI Brand Visibility Tracker](https://apify.com/PsypherZ/ai-brand-visibility) | Which brands ChatGPT, Claude, Gemini and Perplexity recommend, and where yours ranks |
| [Google AI Overview Tracker](https://apify.com/PsypherZ/google-ai-overview-tracker) | Which keywords show an AI Overview, what it says, and whether it cites your site |
| [Audio and Video Transcriber](https://apify.com/PsypherZ/audio-video-transcriber) | Timestamped transcripts from audio and video files in 90+ languages |
| [Subtitle Generator](https://apify.com/PsypherZ/subtitle-generator) | Ready-to-use SRT and WebVTT subtitles from audio and video files |
| [Podcast Transcriber](https://apify.com/PsypherZ/podcast-transcriber) | Timestamped transcripts of podcast episodes from any RSS feed or Apple Podcasts link |
| [Image OCR](https://apify.com/PsypherZ/image-ocr) | Text from images in 20 languages, with confidence scores |
| [AI Image Upscaler](https://apify.com/PsypherZ/image-upscaler) | Upscale photos and artwork 2x, 3x or 4x with Real-ESRGAN AI |
| [PDF to Text and Markdown](https://apify.com/PsypherZ/pdf-to-text-markdown) | Clean text and Markdown from PDFs, with OCR for scanned pages |
| [Bulk PageSpeed Insights Audit](https://apify.com/PsypherZ/bulk-pagespeed-audit) | Core Web Vitals and Lighthouse scores for many pages, mobile and desktop |
| [Email List Validator](https://apify.com/PsypherZ/email-list-validator) | Clean email lists: syntax, domain, mail server, throwaway and role checks, plus typo fixes |
| [HTTP Request Runner](https://apify.com/PsypherZ/http-request-runner) | Send thousands of GET, POST and other API requests and get status, headers and body back |
| [Bulk File Downloader](https://apify.com/PsypherZ/bulk-file-downloader) | Save up to 5,000 direct file links to storage, each with a download link and checksum |
| [Video Frame Extractor](https://apify.com/PsypherZ/video-frame-extractor) | Still images from video files every N seconds, at set times, or evenly spaced |

# Actor input Schema

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

Up to 20 seed keywords. Each one is expanded into keyword ideas.

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

Suggestions find long-tail versions of the seed ("electric standing desk"). Ideas find related topics ("l shaped desk", "desk mat").

## `maxResultsPerKeyword` (type: `integer`):

Highest search volume first.

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

Only return ideas with at least this many monthly Google searches. 0 returns all.

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

Two-letter country code for the Google market.

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

Two-letter language code, for example en, de, es.

## Actor input object example

```json
{
  "keywords": [
    "standing desk"
  ],
  "mode": "suggestions",
  "maxResultsPerKeyword": 100,
  "minSearchVolume": 0,
  "country": "US",
  "language": "en"
}
```

# Actor output Schema

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

One row per keyword idea: search volume, CPC, competition, difficulty, intent and 12-month trend.

# 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": [
        "standing desk"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("psypherz/google-keyword-ideas").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": ["standing desk"] }

# Run the Actor and wait for it to finish
run = client.actor("psypherz/google-keyword-ideas").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": [
    "standing desk"
  ]
}' |
apify call psypherz/google-keyword-ideas --silent --output-dataset

```

## MCP server setup

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

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/VwFL2yZIubLC0Z5BV/builds/YdVeoBtfRucilLw3w/openapi.json
