# Keyword Research: Google, YouTube & Bing Autocomplete (`rimulabs/keyword-autocomplete-research`) Actor

Turn seed keywords into hundreds of real long-tail searches from Google, YouTube, Bing, Google Shopping, News and Images autocomplete. A–Z, question and preposition expansions, any country and language, ranked by how many sources confirm each keyword.

- **URL**: https://apify.com/rimulabs/keyword-autocomplete-research.md
- **Developed by:** [Rimu Labs](https://apify.com/rimulabs) (community)
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 1,000 keyword founds

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/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

## Keyword Research: Google, YouTube & Bing Autocomplete

Turn a few seed keywords into **hundreds of real long-tail searches**, the phrases people actually type, from **Google, YouTube, Bing, Google Shopping, Google News and Google Images** autocomplete. It runs in any country and language. Each keyword is ranked by how many engines confirm it.

It needs no API key or login, and you pay per keyword.

### What you get

| Field | Example |
|---|---|
| `keyword` | crm for real estate agents |
| `seed` | crm for |
| `sources` | `["google", "youtube", "bing"]` |
| `sourceCount` | 3 (found on 3 engines, a strong signal) |
| `timesSuggested` | 11 (how often it appeared across all expansions) |
| `bestRank` | 1 (its best position in a suggestion list) |
| `isQuestion` | `true` for "how/what/why…" keywords, which are good for FAQs and content |
| `wordCount`, `country`, `language` | 5 · NZ · en |

A real run in October 2026, with seeds `crm for` and `plumber auckland`, Google + YouTube + Bing, A–Z and questions, country NZ, returned **443 keywords**:

- The top results, confirmed on all three engines, were `crm for sales`, `crm for small business`, `crm for real estate`, `crm for insurance agents` and `crm for realtors`.
- Question keywords included `which crm is best for small business` and `what does crm stand for`.

### Use cases

- **SEO content planning:** long-tail and question keywords for articles, FAQs and landing pages.
- **YouTube SEO:** what viewers type into YouTube search, for titles, tags and video ideas.
- **E-commerce:** Google Shopping suggestions show buying-intent modifiers such as size, brand, "for women" and "on sale".
- **PPC keyword lists:** seed lists for Google Ads and Microsoft Ads campaigns.
- **Local SEO:** set the country (e.g. `nz`, `au`, `gb`) to see local modifiers like suburbs and "near me".
- **AI agents:** callable through Apify's MCP server to give agents real search demand.

### How it works

1. Each seed is expanded:
   - **A–Z and 0–9** after the seed (`crm for a`, `crm for b`, …)
   - **Questions** (`how crm for`, `what crm for`, …)
   - **Modifiers** (`for`, `vs`, `near`, `best`, `cheap`, …)
   - **A–Z before** the seed
2. Every expansion is sent to the engines you pick, for the country and language you pick.
3. Results are merged and de-duplicated, then ranked: keywords found on more engines and more often come first.

### Pricing

**$0.50 per 1,000 keywords** returned, plus Apify's small run start fee. One seed across 3 engines with A–Z and questions usually returns 200–400 keywords, about **$0.10–$0.20**. Set **Max keywords per seed**, or a max total charge, to cap any run.

### Notes

- Suggestions are what each engine shows at the time of the run. They change over time and by location.
- This tool doesn't estimate search volume. Use it to discover the keywords, then check volumes in your keyword tool of choice.
- Only public suggestion endpoints are used. Engines whose sites disallow automated access to suggestions (e.g. Amazon, DuckDuckGo) are deliberately not included.

***

Built and maintained by Rimu Labs ([rimulabs.com](https://rimulabs.com)). Open an issue on the Issues tab; replies within 24 hours.

# Actor input Schema

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

One or more seed keywords, e.g. "crm for", "running shoes", "plumber auckland".

## `sources` (type: `array`):

Which autocomplete engines to query. More sources give more and better-confirmed keywords.

## `expansions` (type: `array`):

How to expand each seed. Each expansion adds about 13–36 queries per source.

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

Two-letter country code for localised suggestions (us, gb, au, nz, de, ...).

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

Language code (en, de, es, fr, ...).

## `maxKeywordsPerSeed` (type: `integer`):

Keeps the best-confirmed keywords for each seed (found by more sources first).

## `outputMode` (type: `string`):

Aggregate removes duplicates across seeds and lists every seed a keyword came from.

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

Datacenter proxies keep large runs fast and unblocked.

## Actor input object example

```json
{
  "keywords": [
    "crm for"
  ],
  "sources": [
    "google",
    "youtube",
    "bing"
  ],
  "expansions": [
    "alphabet",
    "questions"
  ],
  "country": "us",
  "language": "en",
  "maxKeywordsPerSeed": 200,
  "outputMode": "per-keyword",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `keywords` (type: `string`):

One row per keyword: the engines that suggested it, how often, its best position and whether it is a question.

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

Seeds processed, keywords returned and request statistics.

# 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": [
        "crm for"
    ],
    "maxKeywordsPerSeed": 200,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("rimulabs/keyword-autocomplete-research").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": ["crm for"],
    "maxKeywordsPerSeed": 200,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("rimulabs/keyword-autocomplete-research").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": [
    "crm for"
  ],
  "maxKeywordsPerSeed": 200,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call rimulabs/keyword-autocomplete-research --silent --output-dataset

```

## MCP server setup

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

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/yC4Wa1aTwviiJ3ez6/builds/3dDNX0j6zt0wCYkOh/openapi.json
