# Google Autocomplete Keyword Ideas and Long Tail Keywords (`boubap/google-keyword-ideas`) Actor

Google autocomplete keyword ideas for your seed keywords, in any language and country. Expands each seed with a to z, digits and question words into long tail keywords. One row per unique suggestion. $0.50 per 1,000 suggestions. Not for researching individuals.

- **URL**: https://apify.com/boubap/google-keyword-ideas.md
- **Developed by:** [Baptiste Bouton](https://apify.com/boubap) (community)
- **Categories:** SEO tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.38 / 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 Keyword Ideas and Long Tail Keywords

Give it a few seed keywords and it collects what Google autocomplete suggests for each, in the language and country
you pick. Each seed is also tried with the letters a to z (and optionally digits and question words), which turns
10 suggestions into about 250 per seed. You get one row per unique suggestion for $0.50 per 1,000. No API key, no login.

This Actor is for product, service and topic keywords. It is not for researching individuals: do not use person
names as seeds.

### What you get

- **Suggestion**: the keyword Google proposes.
- **Seed, prefix and query**: which seed led to it, the letter, digit or question word added, and the exact text sent.
- **Position**: the rank of the suggestion in Google's list for that query, from 1 to 10.
- **Language and country** of the request.

### Use cases

- Find long tail keywords for blog posts, landing pages and product pages.
- Build a keyword list for an SEO or Google Ads campaign in another country or language.
- See what people ask about a product category with the question expansion ("how", "what", "why").
- Feed a content calendar or an AI writing workflow with real search phrases.

### Input

| Field | Description | Default |
|---|---|---|
| `seeds` | Seed keywords, up to 100 per run | |
| `language` | Language code (`en`, `fr`, `de`, `pt-BR`...) | `en` |
| `country` | Two-letter country code (`us`, `gb`, `fr`...) | `us` |
| `expandAlphabet` | Add `a` to `z` after each seed (27 requests per seed) | `true` |
| `expandDigits` | Add `0` to `9` after each seed | `false` |
| `expandQuestions` | Put question words before each seed (English, French, German, Spanish, Italian, Portuguese) | `false` |
| `maxResults` | Maximum number of suggestions, and so the maximum charge | `5000` |

Example:

```json
{ "seeds": ["crm software", "running shoes"], "language": "en", "country": "us", "expandAlphabet": true }
```

Check the language code: Google does not reject a code it does not know (such as `xx`), it answers in English.

### Output

One row per suggestion. Real output for the seed `crm software`, from a run on 26 October 2026:

```json
[
  {
    "suggestion": "crm software meaning",
    "seed": "crm software",
    "prefix": null,
    "query": "crm software",
    "position": 2,
    "language": "en",
    "country": "us",
    "fetchedAt": "2026-10-26T08:00:10.919Z"
  },
  {
    "suggestion": "crm software acronym",
    "seed": "crm software",
    "prefix": "a",
    "query": "crm software a",
    "position": 1,
    "language": "en",
    "country": "us",
    "fetchedAt": "2026-10-26T08:00:11.426Z"
  }
]
```

The first suggestion of the first query is often the seed itself: it is skipped, so the list starts at position 2.
In the same run, 10 seeds such as `crm software`, `coffee maker` and `web hosting` with the a to z expansion gave
2,535 distinct suggestions (242 to 262 per seed) in 2 minutes 18 seconds.

Some suggestions depend on where the request comes from, not only on `country`: in this run, made from Apify servers in
the United States, `car insurance` brought suggestions such as `car insurance maryland` and `car insurance virginia`.

### Speed and limits

Requests go out one at a time, two per second, directly from Apify's servers (no proxy): a seed with the a to z expansion takes about 15 seconds. The source is
Google autocomplete, which has no official API. If Google starts limiting requests (HTTP 429 or 403, captcha page or a
redirect to its "sorry" page), the run stops at once and keeps every suggestion already collected. It also stops
after 5 failed queries in a row (network errors or server errors). Nothing is charged
for the queries that were not made: run the remaining seeds again later.

### Pricing

$0.0005 per suggestion ($0.50 per 1,000), with volume discounts for higher Apify plans. Duplicates are removed before
charging, the seed itself is not counted, and failed queries are free. A seed with the a to z expansion gives about
250 suggestions, so about $0.125. Set `maxResults` or a maximum cost per run in the Apify Console to cap the spend.

### Long tail keyword recipes

- **Blog topics**: seeds such as `standing desk` with `expandQuestions` on, then keep rows starting with "how" and "best".
- **Local or foreign markets**: same seeds with `language` `de` and `country` `de`, or `fr` and `fr`, to get the phrases people type there.
- **Product variants and years**: turn on `expandDigits` to bring model numbers, sizes and years.
- **Ads negative keywords**: expand a brand-neutral seed and scan the suggestions for words you do not want to pay for.

### Integrations

Run it from the Apify API, a schedule, Make, Zapier or n8n and send the rows to Google Sheets, Airtable or a database.
With the Apify MCP server an AI assistant can call it to expand keywords while it writes a content plan.

### FAQ

**Do I need an API key?** No. The Actor reads Google autocomplete without a key or a login.

**Does it give search volume?** No. It returns the phrases Google suggests and their position in the list, not
volumes or difficulty.

**Does it collect personal data?** It is built for product and topic keywords and keeps no profile data. Google may
still suggest the names of public figures. Do not use person names as seeds: the Actor is not for researching individuals.

**What if Google limits requests?** The run stops at once, keeps what it collected and charges only that. Run the
remaining seeds again later.

### Related Actors

- [Google Trends Explore](https://apify.com/boubap/google-trends-explore): interest over time and by region for the
  keywords you found here.
- [PageSpeed Insights Bulk Audit](https://apify.com/boubap/pagespeed-bulk-audit): Core Web Vitals for the pages you
  write for them.

# Actor input Schema

## `seeds` (type: `array`):

Keywords to expand, one per line, for example "crm software". Up to 100 seeds per run; duplicates are removed. Use product, service or topic keywords. Do not use person names as seeds: this Actor is not for researching individuals.

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

Language of the suggestions, as a code: en, fr, de, es, pt-BR and so on. Default: en.

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

Two-letter country code Google uses to rank the suggestions: us, gb, fr, de and so on. Default: us.

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

Also ask Google for the seed followed by each letter ("crm software a" to "crm software z"): about 250 suggestions per seed instead of 10, with 27 requests per seed.

## `expandDigits` (type: `boolean`):

Also ask for the seed followed by each digit, which brings years, sizes and model numbers. 10 more requests per seed.

## `expandQuestions` (type: `boolean`):

Also ask for question words followed by the seed ("how crm software", "what crm software"). Available in English, French, German, Spanish, Italian and Portuguese. 10 more requests per seed.

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

Maximum number of suggestions in this run, and so the maximum charge. Default 5000.

## Actor input object example

```json
{
  "seeds": [
    "crm software",
    "running shoes"
  ],
  "language": "en",
  "country": "us",
  "expandAlphabet": true,
  "expandDigits": false,
  "expandQuestions": false,
  "maxResults": 5000
}
```

# Actor output Schema

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

Dataset items of the run: one item per result, with the fields described in the dataset schema.

# 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 = {
    "seeds": [
        "crm software",
        "running shoes"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("boubap/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 = { "seeds": [
        "crm software",
        "running shoes",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("boubap/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 '{
  "seeds": [
    "crm software",
    "running shoes"
  ]
}' |
apify call boubap/google-keyword-ideas --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,boubap/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/e8tNa5oJG6Q7GIHPb/builds/VPbjDS8WalrP48Msl/openapi.json
