# Amazon Keyword Suggestions Scraper — Autocomplete + Volume (`memo23/amazon-keywords-scraper`) Actor

Scrape Amazon autocomplete keyword suggestions for any seed term. 12 marketplaces, 25+ departments, A–Z / 0–9 / buyer-modifier expansion, recursive keyword trees — every phrase scored by a volume proxy so in-demand terms rise to the top. Source rank + product thumbnails included. JSON or CSV.

- **URL**: https://apify.com/memo23/amazon-keywords-scraper.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** E-commerce, SEO tools, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 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.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

<h1 align="center">Amazon Keyword Suggestions Scraper 🔎</h1>

<p align="center">
  <img src="https://raw.githubusercontent.com/muhamed-didovic/muhamed-didovic.github.io/main/assets/amazon-keywords-logo.png" alt="Amazon Keyword Suggestions Scraper" width="160"/>
</p>

Turn any seed keyword into hundreds of **ranked Amazon autocomplete suggestions** — the exact phrases real shoppers see when they start typing in the Amazon search bar. Built for listing SEO, PPC research, niche discovery, and ecommerce content planning.

Most "autocomplete dumps" hand you an unsorted list. This actor adds the things that make it a real keyword tool:

- 📊 **Volume proxy** — a relative popularity score for every phrase (how many query variants surfaced it).
- 🏬 **Department-scoped suggestions** — what shoppers type inside Books differs from Electronics; scope to any of 25+ departments.
- 🌍 **12 marketplaces** — US, UK, DE, FR, IT, ES, CA, MX, AU, JP, IN, and BR, each served by its own completion service (no proxy tricks needed).
- 🌳 **Recursive keyword trees** — feed suggestions back in as seeds to mine the long tail several levels deep.

> Pure HTTP. No login, no API key, no browser, no CAPTCHA solver.

***

### Why use this scraper?

- **Find what shoppers actually type** — autocomplete is Amazon telling you, in its own words, what its customers search for.
- **Rank by popularity, not just A–Z** — the volume proxy floats in-demand phrases to the top instead of dumping an unsorted list.
- **Scale one seed into hundreds** — A–Z / 0–9 / buyer-modifier / custom-suffix expansion and recursive depth multiply each seed into a deep long-tail set.
- **Compare marketplaces side by side** — the same seed swept across the US, Germany, and Japan reveals how search wording changes per market.
- **See what Amazon pairs with each phrase** — source rank, ranking strategy, and the product thumbnail Amazon shows next to the suggestion.
- **Cheap and fast** — a light public endpoint, fetched in parallel. Billed per suggestion.

***

### Overview

The actor outputs **one row per suggestion** (not one row per seed). Each row carries the phrase plus its ranking signals — volume proxy, Amazon's own slot position, marketplace, department, thumbnail, and the recursion depth it was found at. Run it with a single seed for a quick autocomplete pull, or with expansion toggles + recursion across multiple marketplaces for an exhaustive keyword map.

***

### Supported inputs

| You provide | The actor does |
|---|---|
| One or more **seed keywords** | Fetches Amazon autocomplete suggestions for each |
| **Marketplaces** (US, UK, DE, FR, IT, ES, CA, MX, AU, JP, IN, BR) | Sweeps each marketplace's own completion service |
| A **department** (Books, Electronics, Fashion, …) | Scopes suggestions to that department instead of All |
| **A–Z / 0–9 / buyer-modifier** toggles + **custom suffixes** | Appends each variant → long-tail completions (up to ~50× more ideas) |
| **Recursive depth** (0–3) | Feeds discovered suggestions back as new seeds → keyword tree |

***

### Use cases

| Audience | What they get |
|---|---|
| Amazon sellers & FBA | The exact phrases for listing titles, bullets, and backend search terms |
| PPC / Amazon Ads teams | Demand language for Sponsored Products campaigns and negative-keyword mining |
| Product researchers | Niche and long-tail discovery before committing to a product |
| Multi-market brands | Side-by-side search wording across US / EU / JP / LATAM marketplaces |
| Tool & dashboard builders | A cheap, fast suggestion feed to power your own product |

***

### How it works

<p align="center">
  <img src="https://raw.githubusercontent.com/muhamed-didovic/muhamed-didovic.github.io/main/assets/how-it-works-amazon-keywords.png" alt="How it works" width="900"/>
</p>

1. Each seed is expanded into a set of query variants (the seed itself, plus optional A–Z / 0–9 / buyer-modifier / custom suffixes), multiplied across the marketplaces you ask for.
2. All variants are fetched **in parallel** against Amazon's public completion service (`completion.amazon.*/api/2017/suggestions`).
3. Every returned phrase is aggregated: identical suggestions are merged, and a **volume proxy** counts how many distinct variants surfaced each — a relative popularity signal.
4. If recursive depth > 0, the discovered suggestions become the next round of seeds (bounded by a request budget).
5. Results are ranked per seed and marketplace (volume proxy, then Amazon's own slot) and written one row per suggestion.

> **Note on marketplaces:** Amazon's completion service selects the marketplace via a query parameter, not by your IP — so per-country results are genuine without any proxy setup. That's different from most platforms.

***

### Input configuration

| Field | Type | Default | Description |
|---|---|---|---|
| `keywords` | string\[] | — (required) | Seed terms to get suggestions for |
| `marketplaces` | string\[] | `["US"]` | Any of US, UK, DE, FR, IT, ES, CA, MX, AU, JP, IN, BR |
| `department` | string | `"aps"` | Department (search alias) to scope to; `aps` = All departments |
| `expandAlphabet` | boolean | `false` | Append a–z to each seed for long-tail expansion |
| `expandNumbers` | boolean | `false` | Append 0–9 to each seed |
| `expandBuyerModifiers` | boolean | `false` | Append best / cheap / for kids / gift / … buyer-intent modifiers |
| `customSuffixes` | string\[] | `[]` | Your own suffixes, e.g. "under 50", "stainless steel" |
| `expansionDepth` | integer | `0` | Recursively re-seed from discovered suggestions (0–3) |
| `maxSuggestionsPerKeyword` | integer | `0` | Cap per seed per marketplace after ranking (0 = no cap) |
| `maxItems` | integer | `1000` | Hard cap on total rows (charging-aware) |
| `deduplicateSuggestions` | boolean | `false` | Collapse the same phrase across seeds/marketplaces into one row |
| `includeMetadata` | boolean | `true` | Include refTag, strategy id, thumbnail URL, ghost flag |
| `maxConcurrency` | integer | `10` | Simultaneous requests |
| `proxy` | object | off | Optional; not required for correct per-marketplace results |

#### Example input

```json
{
  "keywords": ["laptop stand", "coffee grinder"],
  "marketplaces": ["US", "DE"],
  "department": "aps",
  "expandBuyerModifiers": true,
  "expansionDepth": 0,
  "maxItems": 1000
}
```

***

### Output overview

Every row is a single suggestion with its ranking signals. Rows are ordered by `rank` within each (`seedKeyword`, `marketplace`) pair (1 = most popular by volume proxy). Export as JSON, CSV, Excel, or pull via the Apify API.

#### Output sample

```json
{
  "suggestion": "laptop stand portable foldable travel",
  "seedKeyword": "laptop stand",
  "query": "laptop stand portable",
  "marketplace": "US",
  "domain": "amazon.com",
  "department": "aps",
  "rank": 1,
  "volumeProxy": 2,
  "amazonRank": 2,
  "depth": 0,
  "surfacedByQueries": ["laptop stand portable", "laptop stand for travel"],
  "refTag": "nb_sb_ss_p13n-expert-pd-ops-ranker_ci_hl-bn-left_2_21",
  "strategyId": "p13n-expert-pd-ops-ranker",
  "thumbnailUrl": "https://m.media-amazon.com/images/I/41cMBeetqaL.__AC_SL75__.jpg",
  "isGhost": false,
  "scrapedAt": "2026-07-22T20:05:06.094Z"
}
```

#### Key output fields

| Field | Meaning |
|---|---|
| `suggestion` | The autocomplete phrase Amazon serves |
| `seedKeyword` | The seed it derives from |
| `query` | The exact query variant that surfaced it |
| `marketplace` / `domain` | Where it was found (US → amazon.com, DE → amazon.de, …) |
| `department` | Department scope it was fetched under |
| `rank` | Rank within its seed + marketplace (1 = top), by volume proxy |
| `volumeProxy` | How many query variants surfaced this phrase — relative popularity |
| `amazonRank` | The slot Amazon itself served it at (lower = more prominent) |
| `depth` | Recursion depth it was found at (0 = direct seed) |
| `thumbnailUrl` | Product image Amazon pairs with the phrase, when present |
| `scrapedAt` | ISO timestamp |

***

### FAQ

**Does this need an Amazon login, API key, or token?**
No. It uses Amazon's public search-completion endpoint over plain HTTP.

**Is `volumeProxy` an exact search volume?**
No — it's a *relative* popularity signal (how many query variants surfaced the phrase). It's excellent for ranking ideas against each other, not a substitute for paid search-volume data.

**Do I need a proxy for other marketplaces?**
No. The marketplace is selected by a query parameter, so a run from anywhere returns genuine amazon.de, amazon.co.jp, etc. results.

**How many suggestions per query?**
Amazon returns up to ~10 per query. With A–Z expansion that becomes hundreds of long-tail ideas per seed; buyer modifiers, custom suffixes, and recursion deepen it further.

**Does it scrape products, reviews, or search volume?**
No — this actor is focused on autocomplete keyword suggestions. Pair it with a product or reviews scraper if you need listing data.

**Will huge expansions run forever?**
No. A built-in request budget caps total fetches and logs when it truncates, so an A–Z + deep-recursion run stays bounded.

***

### Support

Questions, custom fields, or a tailored scraper? Email **muhamed.didovic@gmail.com** or open an issue on the actor's Issues tab. Issues are monitored and usually answered within a day.

***

### Additional services

Need this wired into a pipeline — scheduled runs, a webhook into your CRM/warehouse, a custom-shaped dataset, or a different platform's autocomplete? I build and maintain bespoke scrapers. Reach out at **muhamed.didovic@gmail.com**.

***

### Explore more scrapers

Browse the rest of the portfolio (Etsy, Amazon Sellers, TikTok Suggestions, Glassdoor, Trustpilot, and more) on the author's Apify page: **https://apify.com/memo23**

***

### 🤖 For AI Agents & LLM Apps

This actor is a clean keyword-research tool for agentic workflows: call it via the Apify API or MCP with a seed list and it returns structured, ranked keyword rows (`suggestion`, `volumeProxy`, `amazonRank`, `marketplace`) ready for downstream reasoning — listing optimization, ad-group generation, or market comparison. Deterministic input schema, per-item pricing, no session state.

***

### ⚠️ Disclaimer

This Actor collects **publicly available** Amazon search-autocomplete data for legitimate research, SEO, and market-analysis purposes. It does not log in, bypass authentication, or access private or personal data. Use of this Actor must comply with Amazon's Terms of Service and all applicable laws including data-protection regulations (GDPR, CCPA, etc.). The Actor's authors are not responsible for any misuse. Users must:

- Respect rate limits and avoid overloading Amazon's infrastructure
- Not use scraped data to violate user privacy or terms
- Use the data in compliance with applicable jurisdictions
- Not republish scraped content in violation of copyright

We do not store any scraped data; the Actor returns it directly to your Apify dataset for your authorized use. Amazon is a trademark of its respective owner; this Actor is not affiliated with, endorsed by, or sponsored by Amazon.com, Inc.

***

### SEO Keywords

amazon keyword tool, amazon search suggestions, amazon autocomplete scraper, amazon seo keywords, amazon keyword research, amazon ppc keywords, amazon listing optimization, amazon long-tail keywords, amazon search api, amazon keyword discovery, amazon fba keyword research, amazon backend search terms, ecommerce keyword research, amazon suggest scraper, amazon autocomplete api, keyword suggestions scraper, amazon marketplace keywords, amazon niche research, apify amazon scraper, amazon json csv export

# Actor input Schema

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

One or more seed terms to fetch Amazon autocomplete suggestions for. Each seed is expanded into long-tail suggestions ranked by a relative volume proxy.

## `marketplaces` (type: `array`):

Amazon marketplaces to sweep: US, UK, DE, FR, IT, ES, CA, MX, AU, JP, IN, BR. Suggestions come from the marketplace's own completion service (no proxy needed for correct per-country results). A phrase appearing across many marketplaces earns a higher volume proxy. Defaults to \["US"].

## `department` (type: `string`):

Scope suggestions to one Amazon department instead of All departments — e.g. what shoppers type inside Books differs from Electronics.

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

Append every letter a–z to each seed ("coffee grinder a", "coffee grinder b", …) to surface hundreds of long-tail completions per seed. Multiplies the request count ~26× — keep concurrency reasonable.

## `expandNumbers` (type: `boolean`):

Append every digit 0–9 to each seed. Useful for sized or versioned terms ("iphone 15", "size 8").

## `expandBuyerModifiers` (type: `boolean`):

Append buyer-intent modifiers to each seed: best, cheap, small, large, mini, portable, wireless, for kids, for women, for men, for home, for travel, gift. Mirrors how shoppers actually search.

## `customSuffixes` (type: `array`):

Your own suffixes to append to each seed, e.g. "under 50", "stainless steel", "prime". Combined with the toggles above.

## `expansionDepth` (type: `integer`):

Feed returned suggestions back in as new seeds, building a keyword tree. 0 = seeds only (default). 1–2 recommended; higher values grow the request count quickly.

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

Cap on suggestions returned per seed keyword (per marketplace), applied after ranking by volume proxy. 0 = no per-seed cap.

## `maxItems` (type: `integer`):

Hard cap on the total number of suggestion rows pushed to the dataset (charging-aware).

## `deduplicateSuggestions` (type: `boolean`):

When enabled, a suggestion surfaced by multiple seeds or marketplaces collapses into one row (volume proxy summed). When disabled (default), one row per (seed, marketplace, suggestion) keeps full attribution.

## `includeMetadata` (type: `boolean`):

Include Amazon's raw per-suggestion signals: refTag, ranking strategy id, product thumbnail URL, and ghost flag.

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

Maximum simultaneous requests to Amazon's completion service. The endpoint is light, so 10–20 is safe.

## `proxy` (type: `object`):

Leave empty — the endpoint is public and marketplace selection happens via a query parameter, so no proxy is required. Paying users are auto-routed through built-in residential proxies for resilience at high volume.

## Actor input object example

```json
{
  "keywords": [
    "laptop stand",
    "coffee grinder"
  ],
  "marketplaces": [
    "US"
  ],
  "department": "aps",
  "expandAlphabet": false,
  "expandNumbers": false,
  "expandBuyerModifiers": false,
  "expansionDepth": 0,
  "maxSuggestionsPerKeyword": 0,
  "maxItems": 1000,
  "deduplicateSuggestions": false,
  "includeMetadata": true,
  "maxConcurrency": 10
}
```

# 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": [
        "laptop stand",
        "coffee grinder"
    ],
    "marketplaces": [
        "US"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/amazon-keywords-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": [
        "laptop stand",
        "coffee grinder",
    ],
    "marketplaces": ["US"],
}

# Run the Actor and wait for it to finish
run = client.actor("memo23/amazon-keywords-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": [
    "laptop stand",
    "coffee grinder"
  ],
  "marketplaces": [
    "US"
  ]
}' |
apify call memo23/amazon-keywords-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=memo23/amazon-keywords-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/DoXesFQA1mb8oW9bb/builds/vmg4lNtRcQ10rAqI4/openapi.json
