# Google Autocomplete Keyword Scraper (+ YouTube & Bing) (`datawright-labs/autocomplete-keyword-scraper`) Actor

Bulk keyword ideas from Google, YouTube, Google Shopping and Bing autocomplete (search suggestions). A-Z, 0-9, question, preposition and 'vs' expansion, any language and country, deduplicated across engines with rank and relevance.

- **URL**: https://apify.com/datawright-labs/autocomplete-keyword-scraper.md
- **Developed by:** [Datawright Labs](https://apify.com/datawright-labs) (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.16 / 1,000 keyword 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

**Turn one seed keyword into hundreds of long-tail keyword ideas** straight from the search boxes people actually type into. This Actor collects **autocomplete suggestions** (a.k.a. Google Suggest, "search suggestions", "People also search" style queries) from **Google Search, YouTube, Google Shopping and Bing** in bulk, expands each seed with **A-Z, 0-9, question words, prepositions and comparisons**, and returns **one deduplicated row per keyword idea** with the engines that suggested it, its best position and relevance score.

It's the free-tool workflow of AnswerThePublic / keywordtool.io / Ubersuggest's suggestion tab, automated for **any number of seeds, any language and any country**, with clean JSON/CSV/Excel output.

### Why use this autocomplete scraper?

- 🔤 **Multi-engine in one run**: Google, YouTube, Google Shopping and Bing. A suggestion found on several engines appears **once**, with all its engines listed (`engineCount` is a great demand signal).
- 🌳 **Expansion modes**: `a-z` (`seed a` ... `seed z`), optional **A-Z prefix**, `0-9`, **questions** (how, what, why, where, can, is...), **prepositions** (for, with, without, near, to...), **comparisons** (vs, alternative, or...), plus **depth 2** (suggestions of suggestions).
- 🌍 **Any market**: set language (`hl`) and country (`gl` / Bing market), e.g. `de` + `de`, `fr` + `ca`, `es` + `mx`.
- 🧮 **Ranking signals**: `bestPosition` (1 = top suggestion), engine `relevanceScore`, `engineCount`, `isQuestion`, `wordCount`, `containsKeyword`.
- 🧹 **Filters**: must contain all seed words, negative keywords, cap per seed.
- ⚡ **Fast and light**: a 27-query A-Z expansion on Google takes a few seconds and runs on 256 MB.
- 🧾 A **SUMMARY** record with requests, failures and counts per seed.

### Use cases

- **SEO keyword research**: long-tail and question keywords for blog posts, FAQ sections and programmatic SEO pages.
- **YouTube SEO**: video title and tag ideas from YouTube's own autocomplete.
- **E-commerce & Amazon-style product research**: buyer-intent modifiers from Google Shopping suggestions (brands, sizes, "for men", "sale").
- **PPC**: discover modifiers and **negative keywords** before launching Google Ads or Microsoft Ads campaigns.
- **Content strategy & AI writing**: feed real user questions into briefs, outlines or LLM prompts.
- **Market & brand research**: see what people associate with a brand or product ("brand vs", "brand alternative", "is brand legit").

### How to use it

1. Enter one or more **seed keywords**.
2. Pick **sources** (Google, YouTube, Google Shopping, Bing) and **expansions**.
3. Set **language** and **country**, then click **Start**.
4. Export the dataset to CSV/Excel/Google Sheets, or call the Actor via the API, Zapier, Make or n8n.

#### Input example

```json
{
  "keywords": ["coffee grinder", "best crm for"],
  "engines": ["google", "youtube", "bing"],
  "expansions": ["a-z", "questions"],
  "language": "en",
  "country": "us",
  "excludeWords": ["reddit"]
}
```

#### How many suggestions will I get?

Each request returns up to 15 suggestions (Google/YouTube/Shopping) or up to 25 (Bing in the US). Roughly, per seed keyword:

| Settings | Requests per engine | Typical unique ideas per seed |
|---|---|---|
| No expansion | 1 | 10–25 |
| `a-z` | 27 | 200–400 |
| `a-z` + `questions` on 3 engines | 40 | 600–1,200 |
| `a-z` + depth 2 | up to ~230 | 1,500–3,000 |

Use **Max suggestions per seed** or the run's **Maximum cost per run** to cap the output.

### Output example

```json
{
  "keyword": "coffee grinder",
  "suggestion": "coffee grinder for espresso",
  "engines": ["google", "youtube", "bing", "google-shopping"],
  "engineCount": 4,
  "bestPosition": 1,
  "relevanceScore": 1300,
  "expansionTypes": ["seed", "a-z"],
  "sourceQueries": ["coffee grinder", "coffee grinder f"],
  "depth": 1,
  "wordCount": 4,
  "isQuestion": false,
  "containsKeyword": true,
  "language": "en",
  "country": "us",
  "scrapedAt": "2026-10-19T15:47:11.311Z"
}
```

Rows are sorted per seed by depth, then number of engines, then best position, so the strongest ideas come first.

### How much does it cost to scrape Google autocomplete?

You pay **$0.0002 per unique keyword suggestion** ($0.20 per 1,000). Duplicates across engines/expansions are merged before you pay, filtered-out suggestions are free, and there is no start fee.

| Job | Typical suggestions | Cost |
|---|---|---|
| 1 seed, Google, A-Z expansion (27 queries) | ~200-250 | **~$0.05** |
| 1 seed, Google + YouTube + Bing, A-Z + questions | ~500-700 | **~$0.10-0.14** |
| 1,000 keyword ideas | 1,000 | **$0.20** |
| 50 seeds, Google, A-Z + questions | ~15,000 | **~$3** |

- Apify's **free plan includes $5 of monthly credit**, i.e. about **25,000 keyword ideas a month for free**.
- Paid Apify plans get automatic discounts: **Silver -10%**, **Gold and above -20%**.
- Use **Max suggestions per seed** or **Maximum cost per run** to cap spend.

### Google autocomplete scraper vs. the alternatives

| | This Actor | Typing into Google by hand | Free keyword tools (web UI) | Paid keyword suites |
|---|---|---|---|---|
| Google + YouTube + Google Shopping + Bing in one run | ✅ | ❌ | usually one engine | ✅ |
| A-Z, 0-9, questions, prepositions, "vs", depth 2 | ✅ | ❌ | partial, daily caps | ✅ |
| Bulk seeds, any language/country | ✅ | ❌ | limited | ✅ |
| Deduplicated, with position/relevance/engine count | ✅ | ❌ | ❌ | ✅ |
| Search volume | ❌ (use a volume tool on the output) | ❌ | sometimes | ✅ |
| Cost model | $0.20 per 1,000 ideas | free, slow | free with caps / upsell | monthly subscription |

### Use it as an API (Python, JavaScript, cURL, MCP)

Every Apify Actor is also a REST API, so you can call this Google autocomplete API from your own code, a no-code tool or an AI agent.

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("datawright-labs/autocomplete-keyword-scraper").call(run_input={"keywords": ["coffee grinder"], "engines": ["google"], "expansions": ["a-z", "questions"]})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

#### JavaScript / Node.js

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('datawright-labs/autocomplete-keyword-scraper').call({"keywords": ["coffee grinder"], "engines": ["google"], "expansions": ["a-z", "questions"]});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### cURL (run and get results in one request)

```bash
curl -X POST "https://api.apify.com/v2/acts/datawright-labs~autocomplete-keyword-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"keywords": ["coffee grinder"], "engines": ["google"], "expansions": ["a-z", "questions"]}'
```

#### AI agents (MCP)

Add `https://mcp.apify.com/?tools=datawright-labs/autocomplete-keyword-scraper` to Claude, Cursor or any MCP client and the agent can run it as a tool.

Results can also go straight to **Google Sheets, Slack, Make, Zapier, n8n, Airbyte or a webhook** via Apify integrations, and you can run it on a **Schedule**.

### FAQ

#### Does it return search volume?

No. Autocomplete shows what people search for, ordered by popularity, but engines don't publish volumes. Use `engineCount`, `bestPosition` and `relevanceScore` as relative popularity signals, or pass the list to a search-volume tool.

#### Which endpoints does it use?

The public suggestion endpoints that browsers and search boxes use (Google's `suggestqueries.google.com` OpenSearch suggest service, Bing's OpenSearch suggest service). It sends a modest number of requests at a gentle rate, uses no login, and collects no personal data.

**Some requests failed with HTTP 429/403.**
Very large runs from one IP can be rate-limited. The Actor retries automatically; for big runs enable **Apify Proxy** and/or lower **Parallel requests**. Failed requests are listed in the SUMMARY record and you never pay for them.

#### Can I get Amazon or DuckDuckGo suggestions?

Not at the moment. Open an issue if you need another source.

#### Is there a Google autocomplete API?

Google has no official, documented autocomplete API, but browsers use a public suggest endpoint. This Actor calls it (and YouTube, Shopping and Bing suggest) for you in bulk and returns clean, deduplicated rows over the Apify API.

#### How do I get YouTube search suggestions for video ideas?

Select the `youtube` engine. You get YouTube's own autocomplete for each seed and expansion, which is ideal for video titles and tags.

#### Is this an AnswerThePublic alternative?

For the "questions / prepositions / comparisons" part, yes: it produces the same style of long-tail and question keywords from live autocomplete, in bulk and in any language, without a monthly plan.

### More tools from Datawright Labs

- [Bulk PageSpeed & Core Web Vitals Checker](https://apify.com/datawright-labs/pagespeed-auditor): audit PageSpeed / Lighthouse scores for many URLs.
- [Sitemap URL Extractor](https://apify.com/datawright-labs/sitemap-url-extractor): get every URL of a site from its sitemaps.
- [Website Screenshot API](https://apify.com/datawright-labs/website-screenshot): bulk full-page screenshots and PDFs.
- [Greenhouse, Lever & Ashby Jobs Scraper](https://apify.com/datawright-labs/ats-jobs-scraper): normalized job feeds from 5 ATS platforms.
- [Broken Link Checker](https://apify.com/datawright-labs/broken-link-checker): find broken links, images and redirects across a whole site.
- [App Store Top Charts & Rank Tracker](https://apify.com/datawright-labs/app-store-top-charts): daily top free/paid/grossing app rankings with rank changes.

Made by **Datawright Labs**: reliable, fairly priced web data tools. Questions or a missing feature? Open an issue on the Issues tab; we usually reply within a day.

# Actor input Schema

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

One keyword or phrase per line, e.g. 'coffee grinder' or 'best crm for'. Each seed is expanded and its suggestions are deduplicated.

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

Where to collect suggestions from. Suggestions found on several engines are merged into one row listing all of them.

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

Extra queries per seed to uncover long-tail ideas. a-z = 'seed a' ... 'seed z' (26 queries); 0-9 = 'seed 0' ... 'seed 9'; questions = 'how/what/why/... seed' (13); prepositions = 'seed for/with/to/near...' (12); comparisons = 'seed vs/alternative/or...' (8). Leave empty to query only the seed itself.

## `prefixExpansion` (type: `boolean`):

With A-Z expansion, also query 'a seed' ... 'z seed' (26 more queries per engine).

## `depth` (type: `integer`):

1 = suggestions for the seed and its expansions. 2 = also query every suggestion found at level 1 (much larger keyword tree; capped at 200 level-1 suggestions per seed).

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

Two-letter language code (hl), e.g. en, de, fr, es, pt, ja.

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

Two-letter country code (gl / market), e.g. us, gb, ca, de, fr, au, in.

## `maxSuggestionsPerKeyword` (type: `integer`):

Save at most this many suggestions per seed keyword (best ranked first). 0 = no limit.

## `mustContainKeyword` (type: `boolean`):

Drop suggestions that don't contain every word of the seed (accents ignored).

## `excludeWords` (type: `array`):

Negative keywords: drop suggestions that contain any of these words or phrases, e.g. free, reddit, near me.

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

Autocomplete requests in flight at once. Keep it low (2-6) to avoid rate limits.

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

Apify Proxy spreads requests over several IPs, which helps for big runs. Small runs usually work without a proxy.

## Actor input object example

```json
{
  "keywords": [
    "coffee grinder",
    "best crm for"
  ],
  "engines": [
    "google",
    "youtube",
    "bing"
  ],
  "expansions": [
    "a-z",
    "questions"
  ],
  "prefixExpansion": false,
  "depth": 1,
  "language": "en",
  "country": "us",
  "maxSuggestionsPerKeyword": 0,
  "mustContainKeyword": false,
  "excludeWords": [],
  "maxConcurrency": 4,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `suggestions` (type: `string`):

All unique suggestions with engines, best position, relevance, expansion type and keyword flags.

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

SUMMARY record: requests, failures and suggestion counts per seed keyword.

# 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": [
        "coffee grinder",
        "best crm for"
    ],
    "engines": [
        "google",
        "youtube",
        "bing"
    ],
    "expansions": [
        "a-z",
        "questions"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("datawright-labs/autocomplete-keyword-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": [
        "coffee grinder",
        "best crm for",
    ],
    "engines": [
        "google",
        "youtube",
        "bing",
    ],
    "expansions": [
        "a-z",
        "questions",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("datawright-labs/autocomplete-keyword-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": [
    "coffee grinder",
    "best crm for"
  ],
  "engines": [
    "google",
    "youtube",
    "bing"
  ],
  "expansions": [
    "a-z",
    "questions"
  ]
}' |
apify call datawright-labs/autocomplete-keyword-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,datawright-labs/autocomplete-keyword-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/JCdOROZPe9CdSvV1S/builds/42gfpO1tApO3Z7n2q/openapi.json
