# Google Keyword Research Scraper (`fetch_cat/google-keywords-scraper`) Actor

Export localized public Google keyword ideas with seed, query, locale, source, and rank provenance for SEO research and content planning.

- **URL**: https://apify.com/fetch\_cat/google-keywords-scraper.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** SEO tools, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.18 / 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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 Keyword Research Scraper

Use this Google keyword scraper to generate public keyword ideas from seed topics and export them as structured JSON, CSV, or Excel. It is a focused keyword research tool for long-tail discovery, localized content planning, and keyword-list expansion without a Google Ads login. It does not claim to provide Google keyword volume.

### Example input

```json
{
  "keywords": ["running shoes"],
  "country": "us",
  "language": "en",
  "maxResults": 20,
  "expandAlphabet": true
}
```

### Example output

```json
{
  "keyword": "running shoes for women",
  "seedKeyword": "running shoes",
  "country": "us",
  "language": "en",
  "source": "Google Autocomplete",
  "queryVariant": "running shoes",
  "sourceRank": 1
}
```

### What data it exports

| Field | Description |
|---|---|
| `keyword` | Public keyword suggestion |
| `seedKeyword` | Original input seed |
| `country` | Requested two-letter country code |
| `language` | Requested two-letter language code |
| `source` | Public source provenance |
| `queryVariant` | Exact seed expansion that produced the suggestion |
| `sourceRank` | Position in the source response |

This Actor does **not** invent search volume, CPC, competition, or difficulty. Those metrics are not available from the anonymous public suggestion source and are therefore not advertised or returned.

### Input settings

| Setting | Description | Default |
|---|---|---|
| `keywords` | One to 20 seed topics | required |
| `country` | Two-letter country code | `us` |
| `language` | Two-letter language code | `en` |
| `maxResults` | Unique ideas to save (1–500) | `50` |
| `expandAlphabet` | Expand each seed with a–z variants | `true` |

### Ready-to-run examples

Open a public example to inspect its input, run it, or reuse it as a task:

- [Export Multi-Seed Google Keyword Expansion](https://apify.com/fetch_cat/google-keywords-scraper/examples/multi-seed-keyword-expansion)
- [Export Fast Google Keyword Ideas](https://apify.com/fetch_cat/google-keywords-scraper/examples/fast-google-keyword-ideas)

**Fast seed check**

```json
{"keywords":["running shoes"],"country":"us","language":"en","maxResults":10,"expandAlphabet":false}
```

**Broader localized expansion**

```json
{"keywords":["email marketing","content strategy"],"country":"gb","language":"en","maxResults":100,"expandAlphabet":true}
```

### Who is it for?

This Actor is for SEO specialists, content teams, ecommerce marketers, agencies, and developers who need a repeatable way to turn seed topics into exportable public keyword ideas.

### Use cases

- Build long-tail topic lists for editorial planning
- Compare suggestions across countries and languages
- Discover phrasing for category pages, FAQs, and ads
- Feed keyword ideas into spreadsheets, warehouses, or downstream SEO tools

### Pricing

Pay per run start and per keyword idea saved. See the live [Pricing tab](https://apify.com/fetch_cat/google-keywords-scraper/pricing) for current rates and account-tier discounts. You are charged only for ideas saved to the dataset.

### Tips and limits

- Use one focused seed at a time when you want the maximum number of ideas for that topic.
- Disable alphabet expansion for a faster, narrower result set.
- Suggestions reflect the public source at run time and can vary by locale and over time.
- A source rate limit can produce partial output; already saved ideas are preserved.

### API usage

**cURL**

```bash
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~google-keywords-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"keywords":["running shoes"],"country":"us","language":"en","maxResults":20}'
```

**Node.js**

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/google-keywords-scraper').call({
  keywords: ['running shoes'], country: 'us', language: 'en', maxResults: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
```

**Python**

```python
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('fetch_cat/google-keywords-scraper').call(run_input={
    'keywords': ['running shoes'], 'country': 'us', 'language': 'en', 'maxResults': 20,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
```

Use the completed run's dataset ID to download JSON, JSONL, CSV, or Excel.

### MCP and agents

Connect through [Apify MCP](https://mcp.apify.com/?tools=fetch_cat/google-keywords-scraper) so an AI agent can generate keyword lists as part of a research workflow.

```bash
claude mcp add apify --transport http "https://mcp.apify.com/?tools=fetch_cat/google-keywords-scraper"
```

Or add this server configuration to an MCP-compatible client:

```json
{
  "mcpServers": {
    "apify": {"url": "https://mcp.apify.com/?tools=fetch_cat/google-keywords-scraper"}
  }
}
```

Example prompts:

- “Generate 50 public keyword ideas for sustainable running shoes in the US.”
- “Compare public suggestion phrasing for email marketing in the US and UK.”

### FAQ

#### Does it return monthly search volume or CPC?

No. The anonymous public suggestion source does not expose those values. The Actor returns only source-backed keyword ideas and provenance.

#### Can I research multiple seeds?

Yes. Submit up to 20 seeds in `keywords`; the output identifies the originating seed for every idea.

#### Are duplicates removed?

Yes. Duplicate suggestions are removed within each country/language run.

#### What data can I export with Google keyword scraper?

You can export each public suggestion with its seed keyword, country, language, source, exact query variant, and source rank.

#### Can I run Google Keyword Research Scraper through an API, schedule, or MCP client?

Yes. Use the Apify API example above, create a schedule in Apify Console, or connect the Actor through Apify MCP.

#### How much does it cost to use Google Keyword Research Scraper?

Runs are charged once at startup and for each saved keyword idea. See the live **Pricing** tab for current account-tier rates.

### Related Actors

#### More Google scrapers

- [Google Scholar Profiles Scraper](https://apify.com/fetch_cat/google-scholar-profiles-scraper)
- [Google News Journalist Lead Finder](https://apify.com/fetch_cat/google-news-journalist-lead-finder)
- [Google People Also Ask & Related Questions Scraper](https://apify.com/fetch_cat/google-people-also-ask-scraper)
- [Google Maps Photos Scraper](https://apify.com/fetch_cat/google-maps-photos-scraper)
- [Google Search Results Scraper](https://apify.com/fetch_cat/google-search-results-scraper)

* [Google Shopping Results Scraper](https://apify.com/fetch_cat/google-shopping-results-scraper)

### Support

Open an issue from the Actor's **Issues** tab with the input (excluding secrets), expected behavior, and run ID. We will investigate reproducible source or parsing problems.

# Actor input Schema

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

One to 20 topics to expand.

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

Two-letter country code used by Google.

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

Two-letter language code used by Google.

## `maxResults` (type: `integer`):

Maximum unique suggestions saved across all seeds.

## `expandAlphabet` (type: `boolean`):

Query the seed plus a–z variants for broader long-tail coverage.

## Actor input object example

```json
{
  "keywords": [
    "running shoes"
  ],
  "country": "us",
  "language": "en",
  "maxResults": 20,
  "expandAlphabet": true
}
```

# Actor output Schema

## `dataset` (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": [
        "running shoes"
    ],
    "country": "us",
    "language": "en",
    "maxResults": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/google-keywords-scraper").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"],
    "country": "us",
    "language": "en",
    "maxResults": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/google-keywords-scraper").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"
  ],
  "country": "us",
  "language": "en",
  "maxResults": 20
}' |
apify call fetch_cat/google-keywords-scraper --silent --output-dataset

```

## MCP server setup

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

```

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/egergSfjzqC3z8Swu/builds/kEHMHHDiaXvwz9Lif/openapi.json
