# Google Autocomplete Scraper - Keyword Ideas from 7 Engines (`datatrail/keyword-ideas-7-autocompletes`) Actor

Expand seed keywords through Google, YouTube, Google Shopping, Amazon, Bing, DuckDuckGo and eBay autocomplete in one run. One row per unique keyword with how many engines suggest it and its best position in each: a quick demand signal for SEO, YouTube and e-commerce.

- **URL**: https://apify.com/datatrail/keyword-ideas-7-autocompletes.md
- **Developed by:** [Datatrail](https://apify.com/datatrail) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-usage

## 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 - Keyword Ideas from 7 Engines

Turn one seed keyword into hundreds of real search phrases, pulled from the autocomplete of **Google, YouTube, Google Shopping, Amazon, Bing, DuckDuckGo and eBay** in a single run.

Instead of seven separate lists, you get **one row per unique keyword** with:

| Field | What it means |
|---|---|
| `keyword` | The suggested phrase (normalized) |
| `enginesCount` | How many engines suggest it. A phrase suggested by 6–7 engines is searched everywhere; one suggested only by Amazon or YouTube tells you where the intent is |
| `engines` | Which engines suggest it |
| `bestPosition` | Its best position in each engine's dropdown (1 = first) |
| `appearances` | How many expansions returned it |
| `words`, `containsSeed`, `seed`, `fromQueries` | For filtering and long-tail work |

From a real run, seed `standing desk`, all 7 engines, expansion `all`: **1,104 unique keywords in 18 seconds**, of which 10 appear in all 7 engines, e.g. `standing desk with drawers`, `standing desk riser`, `standing desk chair`.

Example from a real run (seed `coffee`, Google, YouTube, Amazon and Bing, expansion `alphabet`: 1,098 keywords):

```json
{
  "keyword": "coffee table",
  "engines": ["google", "amazon", "bing", "youtube"],
  "enginesCount": 4,
  "bestPosition": {"google": 1, "amazon": 1, "bing": 1, "youtube": 1},
  "appearances": 7,
  "words": 2,
  "containsSeed": true
}
```

### Who uses it

- **SEO and content teams**: build topic clusters from real queries, prioritized by cross-engine agreement.
- **YouTubers**: find what people type on YouTube specifically.
- **Amazon and eBay sellers**: discover the product words buyers use, for listings and ads.

### How to use it

1. Add seed keywords.
2. Pick engines and the expansion (`alphabet` adds a–z after the seed; `questions` adds how/what/why/best/vs/for…).
3. Optional: set *Only keywords suggested by at least N engines* to keep the strongest ideas.

Language and country change the suggestions; Amazon uses the matching marketplace.

### Pricing

Pay per result: **one charge per unique keyword** (already merged across engines). Use *minEngines* to pay only for the strongest ideas. Set a maximum cost per run and the Actor stops cleanly when it is reached.

### Notes

Uses the public autocomplete endpoints each site serves to its own search box. Suggestions show what people type, not search volume.

### Schedule it, use the API or connect it to your tools

- **Schedule** daily or weekly runs in Apify to watch how suggestions change for your keywords.
- Call it from your code with the **Apify API** (Python, JavaScript or plain HTTP) and get the results as JSON, CSV or Excel.
- Send results to **Google Sheets, Slack, Zapier, Make or a webhook** with Apify integrations.

### Troubleshooting

- **Few keywords**: use the `alphabet` or `all` expansion and more engines.
- **Results look like another country**: set language and country; Amazon uses the matching marketplace.

### FAQ

**Is this a keyword research tool?** Yes: it gives you the phrases people really type, ranked by how many engines suggest them.

**Does it give search volume?** No. Autocomplete shows what people type, not how often. Cross-engine agreement is a quick demand signal.

**Which engines?** Google, YouTube, Google Shopping, Amazon, Bing, DuckDuckGo and eBay.

# Actor input Schema

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

One or more starting keywords, e.g. "standing desk".

## `engines` (type: `array`):

Autocomplete sources to query. More engines give more ideas and a stronger cross-engine signal.

## `expand` (type: `string`):

alphabet: seed + a…z. questions: how/what/why… + seed and seed + best/vs/for…. all: both.

## `minEngines` (type: `integer`):

Raise it to keep only the strongest ideas (and pay for fewer rows).

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

Language code for the results, e.g. en, en-US, de, es.

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

Two-letter code, e.g. us, gb, de.

## `amazonMarketplace` (type: `string`):

Defaults to the country above.

## `maxConcurrency` (type: `integer`):

How many pages to fetch in parallel. Lower it if you see blocks.

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

Proxy used for the requests. The default works for most runs.

## Actor input object example

```json
{
  "seeds": [
    "standing desk"
  ],
  "engines": [
    "google",
    "youtube",
    "amazon",
    "bing"
  ],
  "expand": "alphabet",
  "minEngines": 1,
  "language": "en",
  "country": "us",
  "maxConcurrency": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

One row per unique keyword with the engines that suggest it.

# 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": [
        "standing desk"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("datatrail/keyword-ideas-7-autocompletes").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": ["standing desk"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("datatrail/keyword-ideas-7-autocompletes").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": [
    "standing desk"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call datatrail/keyword-ideas-7-autocompletes --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,datatrail/keyword-ideas-7-autocompletes"
        }
    }
}
```

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/uuAuzrmh2wNm9kSB2/builds/zUir3slutERkldcLI/openapi.json
