# Google Ads Keywords-for-Keywords (`opspilot.cc/google-ads-keywords`) Actor

Discover related keywords for any seed keyword with Google Ads search volumes, CPC, competition, and 12-month monthly trends. 217 countries × 46 languages. Perfect for keyword research, content planning, and SEO gap analysis.

- **URL**: https://apify.com/opspilot.cc/google-ads-keywords.md
- **Developed by:** [wang wei](https://apify.com/opspilot.cc) (community)
- **Categories:** E-commerce, SEO tools, Social media
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$0.50 / actor start

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Google Ads Keyword Research — Search Volume, CPC & Competition

Discover related Google Ads keywords from one seed term per run. Export search volume, CPC, competition, bid estimates, monthly trends, and semantic concepts to JSON, CSV, or Excel.

### Why Use This Actor

- Find up to approximately 2,100 related suggestions per seed and country.
- Compare demand across major global markets.
- Build SEO content clusters and PPC keyword lists.
- Export structured, queryable arrays instead of opaque text.
- Run without configuring external credentials.

### Quick Start

Use the visual input form:

1. Enter one seed keyword or phrase.
2. Select one or more target countries.
3. Select the target language.
4. Run the Actor and open the Dataset.

Example API input:

```json
{
  "seed_keywords": "best running shoes",
  "locations": ["United States", "United Kingdom"],
  "language": "English",
  "date_from": "2025-07-18",
  "date_to": "2026-07-18"
}
````

The Actor creates two search tasks: one keyword × two countries.

### Input Reference

#### Seed Keyword

Enter exactly one keyword or phrase per run. Empty automated-test inputs are safely completed with `seo tools`. Multiple keywords are rejected before any paid request is sent.

#### Target Locations

Select one or more countries from the multi-select dropdown. The curated list covers 39 major markets:

United States, United Kingdom, Germany, France, Canada, Australia, Japan, India, China, Brazil, Italy, Spain, Netherlands, South Korea, Mexico, Indonesia, Turkiye, Switzerland, Sweden, Poland, Belgium, Austria, Norway, Denmark, Finland, Ireland, Singapore, New Zealand, Israel, United Arab Emirates, Saudi Arabia, South Africa, Philippines, Thailand, Vietnam, Malaysia, Argentina, Chile, and Colombia.

The default is United States. Empty automated-test inputs use the same default.

#### Target Language

Select the target language market for keyword suggestions and search-volume data. Keywords are not translated automatically. Choose one language from the dropdown:

English, Chinese (Simplified), Chinese (Traditional), Japanese, Korean, Hindi, Arabic, Indonesian, Vietnamese, Thai, German, French, Spanish, Portuguese, Russian, Italian, Dutch, Polish, Turkish, or Hebrew.

The default is English. Users do not need to know or guess language codes.

#### Date From / Date To

Set the monthly search-history window using `YYYY-MM-DD` dates. `Date From` defaults to 12 months ago and `Date To` defaults to today. If either field is empty in an API or automated-test request, the Actor fills it automatically.

### Output Reference

Each Dataset row represents one keyword suggestion and contains only user-relevant fields:

| Field | Type | Description |
|---|---|---|
| `keyword` | string | Suggested keyword |
| `seed_keyword` | string | Seed keyword that produced the suggestion |
| `location_name` | string | Selected target country |
| `language` | string | Selected result language |
| `search_volume` | integer/null | Average monthly searches |
| `cpc` | number/null | Average cost per click in USD |
| `low_top_of_page_bid` | number/null | Low top-of-page bid estimate in USD |
| `high_top_of_page_bid` | number/null | High top-of-page bid estimate in USD |
| `competition` | string/null | `LOW`, `MEDIUM`, or `HIGH` |
| `competition_index` | integer/null | Competition score from 0 to 100 |
| `monthly_searches` | array | Queryable objects containing `year`, `month`, and `search_volume` |
| `concepts` | array | Queryable semantic concept values associated with the keyword |

Internal location codes, language codes, provider flags, task IDs, response codes, and other system fields are not included in Dataset rows.

The default Key-Value Store also contains a `SUMMARY` record with task counts, fetched and exported totals, duplicate counts, error totals, and account tier.

### Pricing & Limits

| Tier or setting | Limit |
|---|---|
| Free users | **5 runs per day** |
| Paid Apify users | Unlimited runs |
| Seed keyword | Exactly 1 per run |
| Target locations | 39 selectable major markets |
| Language | One of 20 selectable languages |
| Date range | Defaults to the latest 12 months; user-adjustable |
| Suggestions | Up to approximately 2,100 per search task |

The result limit is fixed by the service and is not user-configurable. Usage is billed through the Actor's configured Apify events.

### Use Cases

- **SEO content planning** — discover related topics and long-tail keyword clusters.
- **PPC planning** — compare CPC, bid ranges, volume, and competition before campaign launch.
- **Market selection** — compare keyword demand across major countries.
- **Localization research** — find how demand changes by country and language.
- **Trend monitoring** — analyze `monthly_searches` as structured monthly data.
- **Data pipelines** — export results to spreadsheets, databases, CRMs, Make, Zapier, or webhooks.

### FAQ

**How are multiple countries processed?**\
The single seed keyword is searched separately for every selected country. One keyword and three countries create three tasks.

**Do I need country or language codes?**\
No. Both settings use curated dropdowns, and the Actor resolves the underlying codes automatically.

**What happens if an automated test submits empty input?**\
The Actor uses safe defaults: `seo tools`, United States, and English.

**Can I export arrays to CSV?**\
Yes. JSON preserves the full array structure. CSV and Excel exports serialize array values while keeping each result in a consistent field.

**Where are run-level diagnostics?**\
Open the default Key-Value Store and inspect the `SUMMARY` record.

### Support

Open an issue from the Actor page and include the run ID plus the `SUMMARY` record. Do not include account credentials.

# Actor input Schema

## `seed_keywords` (type: `string`):

Enter one seed keyword or phrase per run. Example: seo tools

## `locations` (type: `array`):

Pick the countries to query. Pick one or more — the Actor runs one task per (seed × location).

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

Select the target language market for keyword suggestions and search-volume data. Keywords are not translated automatically. Defaults to English.

## `date_from` (type: `string`):

Start date for monthly search history in YYYY-MM-DD format. Defaults to 12 months ago.

## `date_to` (type: `string`):

End date for monthly search history in YYYY-MM-DD format. Defaults to today.

## Actor input object example

```json
{
  "seed_keywords": "seo tools",
  "locations": [
    "United States"
  ],
  "language": "English",
  "date_from": "2025-07-18",
  "date_to": "2026-07-18"
}
```

# Actor output Schema

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

Array of keyword suggestion objects, one per result. Each row contains: keyword, search\_volume, cpc, competition, competition\_index, low\_top\_of\_page\_bid, high\_top\_of\_page\_bid, monthly\_searches\[], concepts\[], plus seed\_keyword + location + language lineage.

## `summary` (type: `string`):

Run-level summary: seed keyword / location counts, expanded task count, fetched / pushed / duplicate totals, and error samples. Stored as SUMMARY in the default key-value store.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("opspilot.cc/google-ads-keywords").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("opspilot.cc/google-ads-keywords").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{}' |
apify call opspilot.cc/google-ads-keywords --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=opspilot.cc/google-ads-keywords",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Ads Keywords-for-Keywords",
        "description": "Discover related keywords for any seed keyword with Google Ads search volumes, CPC, competition, and 12-month monthly trends. 217 countries × 46 languages. Perfect for keyword research, content planning, and SEO gap analysis.",
        "version": "1.3",
        "x-build-id": "t8RNgBj5qpYzhYRbA"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/opspilot.cc~google-ads-keywords/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-opspilot.cc-google-ads-keywords",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/opspilot.cc~google-ads-keywords/runs": {
            "post": {
                "operationId": "runs-sync-opspilot.cc-google-ads-keywords",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/opspilot.cc~google-ads-keywords/run-sync": {
            "post": {
                "operationId": "run-sync-opspilot.cc-google-ads-keywords",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "seed_keywords",
                    "locations",
                    "language",
                    "date_from",
                    "date_to"
                ],
                "properties": {
                    "seed_keywords": {
                        "title": "Seed Keyword",
                        "type": "string",
                        "description": "Enter one seed keyword or phrase per run. Example: seo tools",
                        "default": "seo tools"
                    },
                    "locations": {
                        "title": "Target Locations (select one or more)",
                        "type": "array",
                        "description": "Pick the countries to query. Pick one or more — the Actor runs one task per (seed × location).",
                        "items": {
                            "type": "string",
                            "enum": [
                                "United States",
                                "United Kingdom",
                                "Germany",
                                "France",
                                "Canada",
                                "Australia",
                                "Japan",
                                "India",
                                "China",
                                "Brazil",
                                "Italy",
                                "Spain",
                                "Netherlands",
                                "South Korea",
                                "Mexico",
                                "Indonesia",
                                "Turkiye",
                                "Switzerland",
                                "Sweden",
                                "Poland",
                                "Belgium",
                                "Austria",
                                "Norway",
                                "Denmark",
                                "Finland",
                                "Ireland",
                                "Singapore",
                                "New Zealand",
                                "Israel",
                                "United Arab Emirates",
                                "Saudi Arabia",
                                "South Africa",
                                "Philippines",
                                "Thailand",
                                "Vietnam",
                                "Malaysia",
                                "Argentina",
                                "Chile",
                                "Colombia"
                            ],
                            "enumTitles": [
                                "United States",
                                "United Kingdom",
                                "Germany",
                                "France",
                                "Canada",
                                "Australia",
                                "Japan",
                                "India",
                                "China",
                                "Brazil",
                                "Italy",
                                "Spain",
                                "Netherlands",
                                "South Korea",
                                "Mexico",
                                "Indonesia",
                                "Turkiye",
                                "Switzerland",
                                "Sweden",
                                "Poland",
                                "Belgium",
                                "Austria",
                                "Norway",
                                "Denmark",
                                "Finland",
                                "Ireland",
                                "Singapore",
                                "New Zealand",
                                "Israel",
                                "United Arab Emirates",
                                "Saudi Arabia",
                                "South Africa",
                                "Philippines",
                                "Thailand",
                                "Vietnam",
                                "Malaysia",
                                "Argentina",
                                "Chile",
                                "Colombia"
                            ]
                        },
                        "default": [
                            "United States"
                        ]
                    },
                    "language": {
                        "title": "Target Language",
                        "enum": [
                            "English",
                            "Chinese (Simplified)",
                            "Chinese (Traditional)",
                            "Japanese",
                            "Korean",
                            "Hindi",
                            "Arabic",
                            "Indonesian",
                            "Vietnamese",
                            "Thai",
                            "German",
                            "French",
                            "Spanish",
                            "Portuguese",
                            "Russian",
                            "Italian",
                            "Dutch",
                            "Polish",
                            "Turkish",
                            "Hebrew"
                        ],
                        "type": "string",
                        "description": "Select the target language market for keyword suggestions and search-volume data. Keywords are not translated automatically. Defaults to English.",
                        "default": "English"
                    },
                    "date_from": {
                        "title": "Date From",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "Start date for monthly search history in YYYY-MM-DD format. Defaults to 12 months ago.",
                        "default": "2025-07-18"
                    },
                    "date_to": {
                        "title": "Date To",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "End date for monthly search history in YYYY-MM-DD format. Defaults to today.",
                        "default": "2026-07-18"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
