# Google Autocomplete Scraper — Bulk Keyword Suggestions (`talvok/google-autocomplete-scraper`) Actor

Get Google and YouTube autocomplete suggestions for many keywords at once, in any language and country. Optional A-Z, 0-9 and question expansion, recursive depth, deduplicated results.

- **URL**: https://apify.com/talvok/google-autocomplete-scraper.md
- **Developed by:** [Talvok Studio](https://apify.com/talvok) (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 $0.35 / 1,000 suggestions

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 Autocomplete Scraper — Bulk Keyword Suggestions

Get the **autocomplete suggestions** that Google and YouTube show while people type, for many keywords at once, in any language and country. Turn one seed keyword into hundreds of real long-tail searches with A-Z, 0-9 and question expansion, deduplicated and ready for Excel, Google Sheets or your API.

### What it's for

- **SEO and keyword research:** find the long-tail queries people actually type, by country and language.
- **Content ideas:** question expansion ("how", "why", "best", "vs", "near me"…) gives ready-made article and FAQ topics.
- **PPC:** discover new keywords and negative keywords for Google Ads campaigns.
- **Product research:** see which brands, models, sizes and features people search next to your product.
- **YouTube:** video ideas and titles from the YouTube search box.

### How to use

1. Type one or more **seed keywords** (e.g. `running shoes`, `crm software`).
2. Choose the **source** (Google Search or YouTube), the **language** (`en`, `it`, `de`…) and the **country** (`us`, `gb`, `it`…). Suggestions really differ by country.
3. Pick the expansions:
   - **A-Z:** `running shoes a`, `running shoes b` … `running shoes z`
   - **0-9:** `running shoes 0` … `running shoes 9`
   - **Questions and modifiers:** built-in lists for English (how, what, why, where, when, who, which, can, is, best, vs, for, near me) and Italian (come, cosa, perché, dove, quando, chi, quale, migliore, vs, per, vicino a me). You can replace them with your own words in any language; write `{keyword}` to place a word after the keyword (`{keyword} vs`).
   - **Depth 2:** also queries every suggestion found at level 1. Much bigger output; capped by **Max queries per keyword**.
4. Run, then export the results as JSON, CSV or Excel, or read them via API.

Each suggestion is saved **once per seed keyword**, even if several queries return it. The seed keyword itself is not saved as a suggestion.

### Input example

```json
{
  "keywords": ["running shoes", "trail running"],
  "source": "google",
  "language": "en",
  "country": "us",
  "alphabet": true,
  "numbers": false,
  "questions": true,
  "maxDepth": 1
}
```

### Output example

```json
[
  {
    "seed": "running shoes",
    "query": "running shoes w",
    "suggestion": "running shoes with high heel drop",
    "position": 7,
    "expansionType": "alphabet",
    "language": "en",
    "country": "us",
    "source": "google"
  },
  {
    "seed": "running shoes",
    "query": "best running shoes",
    "suggestion": "best running shoes for men",
    "position": 2,
    "expansionType": "question",
    "language": "en",
    "country": "us",
    "source": "google"
  }
]
```

- `query`: the exact text sent to autocomplete
- `position`: rank of the suggestion in Google's list for that query (1-10)
- `expansionType`: `base`, `alphabet`, `number`, `question` or `recursive` (depth 2)

### Pricing

Pay per result: **$0.50 per 1,000 suggestions**, charged only for unique suggestions saved to the dataset; the run stops automatically at the spending limit you set.

### Notes

- Speed: about 350 unique suggestions in 15 seconds for one keyword with A-Z and questions, about 2,300 in 70 seconds at depth 2.
- The scraper sends few requests at a time and pauses between them. If Google answers "too many requests" (HTTP 429) it waits and retries; if the refusal continues, the run stops with a clear message instead of trying to bypass it: try again later or enable a proxy in the input.
- Suggestions are the public, non-personalised ones: they can differ slightly from what you see when signed in to Google.

# Actor input Schema

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

One or more keywords to get suggestions for, e.g. "running shoes", "crm software", "vegan recipes". Each keyword is processed separately and its suggestions are deduplicated.

## `source` (type: `string`):

Where the suggestions come from: the Google search box or the YouTube search box.

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

Two-letter language code of the suggestions, e.g. "en", "it", "de", "fr", "es", "pt-BR".

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

Two-letter country code, e.g. "us", "gb", "it", "de". Suggestions differ by country (try "football" in us and gb). Leave empty for no country.

## `alphabet` (type: `boolean`):

Also query "keyword a", "keyword b" … "keyword z" (26 more queries per keyword). The fastest way to get hundreds of long-tail suggestions.

## `numbers` (type: `boolean`):

Also query "keyword 0" … "keyword 9" (10 more queries per keyword). Useful for years, sizes and models.

## `questions` (type: `boolean`):

Also query question words and modifiers such as "how keyword", "best keyword", "keyword vs", "keyword near me". Built-in lists exist for English and Italian; for other languages add your own below.

## `questionModifiers` (type: `array`):

Optional. Replaces the built-in list. A word is put before the keyword ("how" → "how running shoes"); use {keyword} to place it elsewhere ("{keyword} vs" → "running shoes vs"). Built-in English list: how, what, why, where, when, who, which, can, is, best, {keyword} vs, {keyword} for, {keyword} near me.

## `maxDepth` (type: `integer`):

1 = the keyword and its expansions. 2 = also query every suggestion found at level 1 (many more results and queries).

## `maxQueriesPerKeyword` (type: `integer`):

Safety cap on the number of autocomplete requests for each seed keyword, mostly for depth 2. Each request returns up to 10 suggestions.

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

Optional. Use a proxy if Google starts rate-limiting requests (HTTP 429).

## Actor input object example

```json
{
  "keywords": [
    "running shoes"
  ],
  "source": "google",
  "language": "en",
  "country": "us",
  "alphabet": true,
  "numbers": false,
  "questions": true,
  "maxDepth": 1,
  "maxQueriesPerKeyword": 500,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

All suggestions saved by the run, in the default dataset.

# 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"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("talvok/google-autocomplete-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"] }

# Run the Actor and wait for it to finish
run = client.actor("talvok/google-autocomplete-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"
  ]
}' |
apify call talvok/google-autocomplete-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,talvok/google-autocomplete-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/4Wc7AXv8v3btmBD2m/builds/i6pawNWUMx3B10WRw/openapi.json
