Amazon Autocomplete Keyword Expander
Turn seed keywords into Amazon's own search-box autocomplete suggestions across 23 marketplaces. Expand past the usual per-query cap with A-Z/0-9/custom suffixes and recursive re-querying of newly found suggestions.
Input schema
Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.
| Field | Type | Required | Description |
|---|---|---|---|
keywords | array | required | One or more seed keywords or phrases to expand into Amazon autocomplete suggestions. |
marketplace | string | optional | Single Amazon marketplace to query. Used when `marketplaces` is empty. |
marketplaces | array | optional | Optional multi-market sweep, e.g. ["US", "GB", "DE"]. Leave empty to use the single `marketplace` value. Codes are the same as the marketplace dropdown. |
Show all input fields
| Field | Type | Required | Description |
|---|---|---|---|
keywords | array | required | One or more seed keywords or phrases to expand into Amazon autocomplete suggestions. |
marketplace | string | optional | Single Amazon marketplace to query. Used when `marketplaces` is empty. |
marketplaces | array | optional | Optional multi-market sweep, e.g. ["US", "GB", "DE"]. Leave empty to use the single `marketplace` value. Codes are the same as the marketplace dropdown. |
departments | array | optional | Amazon department aliases to scope suggestions, e.g. ["aps", "kitchen"]. Leave empty for the all-departments default (`aps`). Common aliases: aps, electronics, computers, fashion, kitchen, stripbooks, beauty, hpc, pet-supplies, toys-and-games, home-improvement, automotive, grocery, office-products, watches, shoes, luggage, digital-text, audible, amazon-devices, instant-video, todays-deals. |
expandAlphabet | boolean | optional | Append each letter a-z to every query (e.g. `yoga mat a`) to surface more than the per-query cap. |
expandPrefixAlphabet | boolean | optional | Prepend each letter a-z to every query (e.g. `a yoga mat`). Returns a different suggestion set from suffix expansion. |
expandNumbers | boolean | optional | Append each digit 0-9 to every query, useful for sizes, models and quantities. |
expandQuestions | boolean | optional | Query locale-aware question stems such as `how to`, `what is` and `where to buy` in front of each seed. |
expandComparisons | boolean | optional | Query comparison tokens such as `vs`, `or`, `versus` and `and` after each seed. |
expandPrepositions | boolean | optional | Query preposition tokens such as `for`, `with`, `without`, `under` and `over` after each seed. |
expandBuyerModifiers | boolean | optional | Query locale-aware buyer-intent modifiers such as `best`, `cheap`, `for men`, `for women` and `waterproof`. |
customSuffixes | array | optional | Additional suffixes to append to every query, e.g. ["for men", "waterproof", "iphone 15"]. |
maxDepth | integer | optional | Recursively re-query newly discovered suggestions as fresh seeds, up to this depth (0 = original seeds only; 3 = three hops). |
queryMode | string | optional | `enhanced` returns thumbnails, widgets and predictive text when Amazon provides them; `organic` is the plain keyword response; `both` requests both and unions the results. |
includeWidgets | boolean | optional | Emit Amazon's optional widget suggestions (carousels, refinements, entity cards) when the enhanced endpoint returns them. |
includeSeed | boolean | optional | Emit one `SEED` record per seed keyword in addition to Amazon's suggestions. |
dedupe | boolean | optional | Merge repeated suggestions into one record per seed, marketplace and department, with a relative volume proxy and provenance. Turn off to emit every occurrence. |
resultOrder | string | optional | Order within each seed, marketplace and department group. `volume` sorts by the relative query-count score (requires dedupe). |
mustContainSeed | boolean | optional | Drop suggestions that do not contain the original seed keyword. |
includeTerms | array | optional | Keep only suggestions containing at least one of these terms. Leave empty to keep all. |
excludeTerms | array | optional | Drop suggestions containing any of these terms. |
onlyQuestions | boolean | optional | Keep only question-shaped suggestions (question word or trailing question mark). |
onlyLongTail | boolean | optional | Keep only suggestions with three or more words. |
minWordCount | integer | optional | Drop suggestions with fewer words than this value. |
maxSuggestions | integer | optional | Hard cap on total records emitted in this run. |
maxSuggestionsPerKeyword | integer | optional | Cap emitted records per seed, marketplace and department. 0 means no per-seed cap. |
maxQueries | integer | optional | Hard cap on HTTP requests across the whole run. The run status message says when this cap stopped it. |
maxConcurrency | integer | optional | Parallel requests. Values above 8 give little extra speed and are more likely to be rate-limited. |
requestDelayMs | integer | optional | Pause per worker between requests. 0 is fastest; 100-250 is gentler. |
Download the published input schema
View complete JSON
{
"description": "Discover Amazon's own search-autocomplete suggestions for one or more seed keywords across 23 marketplaces, with optional alphabetical, question, comparison and buyer-intent expansion.",
"properties": {
"customSuffixes": {
"default": [],
"description": "Additional suffixes to append to every query, e.g. [\"for men\", \"waterproof\", \"iphone 15\"].",
"editor": "stringList",
"prefill": [],
"title": "Custom suffixes",
"type": "array"
},
"dedupe": {
"default": true,
"description": "Merge repeated suggestions into one record per seed, marketplace and department, with a relative volume proxy and provenance. Turn off to emit every occurrence.",
"prefill": true,
"title": "Deduplicate suggestions",
"type": "boolean"
},
"departments": {
"default": [],
"description": "Amazon department aliases to scope suggestions, e.g. [\"aps\", \"kitchen\"]. Leave empty for the all-departments default (`aps`). Common aliases: aps, electronics, computers, fashion, kitchen, stripbooks, beauty, hpc, pet-supplies, toys-and-games, home-improvement, automotive, grocery, office-products, watches, shoes, luggage, digital-text, audible, amazon-devices, instant-video, todays-deals.",
"editor": "stringList",
"prefill": [
"aps"
],
"title": "Departments",
"type": "array"
},
"excludeTerms": {
"default": [],
"description": "Drop suggestions containing any of these terms.",
"editor": "stringList",
"prefill": [],
"title": "Exclude these terms",
"type": "array"
},
"expandAlphabet": {
"default": false,
"description": "Append each letter a-z to every query (e.g. `yoga mat a`) to surface more than the per-query cap.",
"prefill": false,
"title": "Expand with suffix A-Z",
"type": "boolean"
},
"expandBuyerModifiers": {
"default": false,
"description": "Query locale-aware buyer-intent modifiers such as `best`, `cheap`, `for men`, `for women` and `waterproof`.",
"prefill": false,
"title": "Expand with buyer modifiers",
"type": "boolean"
},
"expandComparisons": {
"default": false,
"description": "Query comparison tokens such as `vs`, `or`, `versus` and `and` after each seed.",
"prefill": false,
"title": "Expand with comparisons",
"type": "boolean"
},
"expandNumbers": {
"default": false,
"description": "Append each digit 0-9 to every query, useful for sizes, models and quantities.",
"prefill": false,
"title": "Expand with digits 0-9",
"type": "boolean"
},
"expandPrefixAlphabet": {
"default": false,
"description": "Prepend each letter a-z to every query (e.g. `a yoga mat`). Returns a different suggestion set from suffix expansion.",
"prefill": false,
"title": "Expand with prefix A-Z",
"type": "boolean"
},
"expandPrepositions": {
"default": false,
"description": "Query preposition tokens such as `for`, `with`, `without`, `under` and `over` after each seed.",
"prefill": false,
"title": "Expand with prepositions",
"type": "boolean"
},
"expandQuestions": {
"default": false,
"description": "Query locale-aware question stems such as `how to`, `what is` and `where to buy` in front of each seed.",
"prefill": false,
"title": "Expand with questions",
"type": "boolean"
},
"includeSeed": {
"default": false,
"description": "Emit one `SEED` record per seed keyword in addition to Amazon's suggestions.",
"prefill": false,
"title": "Include seed as a record",
"type": "boolean"
},
"includeTerms": {
"default": [],
"description": "Keep only suggestions containing at least one of these terms. Leave empty to keep all.",
"editor": "stringList",
"prefill": [],
"title": "Must contain any of these terms",
"type": "array"
},
"includeWidgets": {
"default": false,
"description": "Emit Amazon's optional widget suggestions (carousels, refinements, entity cards) when the enhanced endpoint returns them.",
"prefill": false,
"title": "Include widget rows",
"type": "boolean"
},
"keywords": {
"default": [],
"description": "One or more seed keywords or phrases to expand into Amazon autocomplete suggestions.",
"editor": "stringList",
"prefill": [
"wireless earbuds"
],
"title": "Seed keywords",
"type": "array"
},
"marketplace": {
"default": "US",
"description": "Single Amazon marketplace to query. Used when `marketplaces` is empty.",
"editor": "select",
"enum": [
"US",
"CA",
"MX",
"BR",
"IE",
"ES",
"GB",
"FR",
"BE",
"NL",
"DE",
"IT",
"SE",
"ZA",
"PL",
"EG",
"TR",
"SA",
"AE",
"IN",
"SG",
"AU",
"JP"
],
"enumTitles": [
"United States (amazon.com)",
"Canada (amazon.ca)",
"Mexico (amazon.com.mx)",
"Brazil (amazon.com.br)",
"Ireland (amazon.ie)",
"Spain (amazon.es)",
"United Kingdom (amazon.co.uk)",
"France (amazon.fr)",
"Belgium (amazon.com.be)",
"Netherlands (amazon.nl)",
"Germany (amazon.de)",
"Italy (amazon.it)",
"Sweden (amazon.se)",
"South Africa (amazon.co.za)",
"Poland (amazon.pl)",
"Egypt (amazon.eg)",
"Turkey (amazon.com.tr)",
"Saudi Arabia (amazon.sa)",
"United Arab Emirates (amazon.ae)",
"India (amazon.in)",
"Singapore (amazon.sg)",
"Australia (amazon.com.au)",
"Japan (amazon.co.jp)"
],
"prefill": "US",
"title": "Marketplace",
"type": "string"
},
"marketplaces": {
"default": [],
"description": "Optional multi-market sweep, e.g. [\"US\", \"GB\", \"DE\"]. Leave empty to use the single `marketplace` value. Codes are the same as the marketplace dropdown.",
"editor": "stringList",
"prefill": [],
"title": "Multiple marketplaces",
"type": "array"
},
"maxConcurrency": {
"default": 4,
"description": "Parallel requests. Values above 8 give little extra speed and are more likely to be rate-limited.",
"maximum": 10,
"minimum": 1,
"prefill": 1,
"title": "Max concurrent requests",
"type": "integer"
},
"maxDepth": {
"default": 0,
"description": "Recursively re-query newly discovered suggestions as fresh seeds, up to this depth (0 = original seeds only; 3 = three hops).",
"maximum": 3,
"minimum": 0,
"prefill": 0,
"title": "Max recursion depth",
"type": "integer"
},
"maxQueries": {
"default": 400,
"description": "Hard cap on HTTP requests across the whole run. The run status message says when this cap stopped it.",
"maximum": 20000,
"minimum": 1,
"prefill": 3,
"title": "Max queries",
"type": "integer"
},
"maxSuggestions": {
"default": 500,
"description": "Hard cap on total records emitted in this run.",
"maximum": 10000,
"minimum": 1,
"prefill": 3,
"title": "Max suggestions",
"type": "integer"
},
"maxSuggestionsPerKeyword": {
"default": 0,
"description": "Cap emitted records per seed, marketplace and department. 0 means no per-seed cap.",
"maximum": 5000,
"minimum": 0,
"prefill": 0,
"title": "Max suggestions per seed",
"type": "integer"
},
"minWordCount": {
"default": 0,
"description": "Drop suggestions with fewer words than this value.",
"maximum": 20,
"minimum": 0,
"prefill": 0,
"title": "Minimum word count",
"type": "integer"
},
"mustContainSeed": {
"default": false,
"description": "Drop suggestions that do not contain the original seed keyword.",
"prefill": false,
"title": "Must contain the seed",
"type": "boolean"
},
"onlyLongTail": {
"default": false,
"description": "Keep only suggestions with three or more words.",
"prefill": false,
"title": "Long-tail only",
"type": "boolean"
},
"onlyQuestions": {
"default": false,
"description": "Keep only question-shaped suggestions (question word or trailing question mark).",
"prefill": false,
"title": "Questions only",
"type": "boolean"
},
"queryMode": {
"default": "enhanced",
"description": "`enhanced` returns thumbnails, widgets and predictive text when Amazon provides them; `organic` is the plain keyword response; `both` requests both and unions the results.",
"editor": "select",
"enum": [
"enhanced",
"organic",
"both"
],
"enumTitles": [
"Enhanced (thumbnails, widgets, predictive text)",
"Organic (keyword responses only)",
"Both (union of both responses)"
],
"prefill": "enhanced",
"title": "Suggestion endpoint dialect",
"type": "string"
},
"requestDelayMs": {
"default": 100,
"description": "Pause per worker between requests. 0 is fastest; 100-250 is gentler.",
"maximum": 5000,
"minimum": 0,
"prefill": 0,
"title": "Delay between requests (ms)",
"type": "integer"
},
"resultOrder": {
"default": "source",
"description": "Order within each seed, marketplace and department group. `volume` sorts by the relative query-count score (requires dedupe).",
"editor": "select",
"enum": [
"source",
"alphabetical",
"volume"
],
"enumTitles": [
"Source order (first seen)",
"Alphabetical",
"Relative volume proxy"
],
"prefill": "source",
"title": "Result order",
"type": "string"
}
},
"required": [
"keywords"
],
"schemaVersion": 1,
"title": "Amazon Keyword Suggestions Scraper Input",
"type": "object"
}
Output schema
Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.
| Field | Type | Required | Description |
|---|---|---|---|
suggestions | string | optional | Dataset containing all scraped Amazon keyword suggestions. |
Download the published output schema
View complete JSON
{
"actorOutputSchemaVersion": 1,
"description": "Amazon search-autocomplete keyword suggestions with marketplace, department, expansion lineage, relative volume proxy, search URLs, optional thumbnails and widget metadata.",
"properties": {
"suggestions": {
"description": "Dataset containing all scraped Amazon keyword suggestions.",
"template": "{{links.apiDefaultDatasetUrl}}/items",
"title": "Keyword suggestions",
"type": "string"
}
},
"title": "Amazon Autocomplete Keyword Expander Output"
}
Dataset schema
Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.
Download the published dataset schema
View complete JSON
{
"actorSpecification": 1,
"views": {
"overview": {
"display": {
"component": "table",
"properties": {}
},
"title": "Keyword suggestions",
"transformation": {
"fields": [
"seedKeyword",
"suggestion",
"rank",
"volumeProxy",
"department",
"marketplace.countryCode"
]
}
}
}
}
Key-value schema
Published key-value store definitions, when provided by this build.
This definition is not present in the default published build. See the published README for available documentation.
Published README
Read the full published documentation
Amazon Autocomplete Keyword Expander
Turn a handful of seed phrases into the real keyword ideas Amazon's own search box suggests. This actor reads Amazon's public autocomplete service across 23 marketplaces, can sweep several departments in one run, and expands each seed through eight different query axes so you see far more than the ten suggestions a single lookup returns. No account, cookies, or proxy setup is required.
What this actor does
- 23 Amazon marketplaces — from
amazon.comandamazon.co.uktoamazon.co.jp,amazon.com.auandamazon.in - Multi-market and multi-department runs — compare the same seed across countries and browse aliases such as electronics, kitchen, fashion or books
- Eight expansion axes — suffix A-Z, prefix A-Z, 0-9, questions, comparisons, prepositions, buyer modifiers and your own custom suffixes
- Recursive discovery — optionally treat newly found suggestions as fresh seeds, up to three hops deep
- Two response dialects — enhanced (thumbnails, widget cards, predictive text) or organic keyword responses, or both in one pass
- Filters and ranking — keep questions or long-tail phrases, require or exclude terms, cap results per seed and overall, and order by source, alphabet or the relative volume proxy
- Deduplication with provenance — one row per unique phrase per seed, marketplace and department, showing every query variant that surfaced it
- Empty fields are omitted
Output per suggestion
marketplace—countryCode,domain,marketplaceId,currency,languageseedKeyword— the original seed this row belongs toquery/prefix— the exact query text sent to Amazonsuggestion— the suggested keyworddepartment— the Amazon department alias usedlocale— the marketplace language, e.g.en-USsuggestionType— Amazon's response type, e.g.KEYWORDorWIDGET;SEEDfor an echoed seedsuggType— Amazon's finer subtype, e.g.KeywordSuggestionexpansionType/expansionToken—seed,suffixAlphabet,prefixAlphabet,digits,question,comparison,preposition,buyerModifier,customorrecursive, plus the letter, digit or word usedexpansionDepth/expansionParent— recursion level and the suggestion that led to this queryposition/amazonRank— 1-based slot in the response that returned the phrasebestRank/rank— best slot across all queries, and final rank inside the seed groupvolumeProxy— how many distinct query variants surfaced the phrase; a relative signal, not monthly search volumesurfacedByQueries— up to 20 query variants that returned itsearchUrl— ready-to-open Amazon search URL for the suggestionwordCount,isQuestion,containsSeed— shape helpers for filtering and analysisthumbnailUrl— product thumbnail when the enhanced response supplies onewidget— optional widget object:id,template,slot,byline,refinement,title,subtitle,imageUrl,imageShape,linkUrl,items[]predictiveText— Amazon's predictive completion for the query, when presentstrategyId/strategyApiType/candidateSources/refTag/prior/ghost/help— Amazon's own suggestion metadataresponseId/shuffled— request correlation id and whether Amazon randomized the response ordersourceUrl— the exact autocomplete request URLrecordType: "suggestion",scrapedAt
Input
| Field | Type | Default | Description |
|---|---|---|---|
keywords |
array | – | Seed keywords or phrases to expand (required) |
marketplace |
string | US |
Single marketplace; used when marketplaces is empty |
marketplaces |
array | [] |
Optional codes for a multi-market sweep, e.g. ["US","GB","DE"] |
departments |
array | [] |
Department aliases, e.g. ["aps","kitchen","electronics"] |
expandAlphabet |
bool | false |
Append A-Z to each query |
expandPrefixAlphabet |
bool | false |
Prepend A-Z to each query |
expandNumbers |
bool | false |
Append 0-9 to each query |
expandQuestions |
bool | false |
Add locale-aware question stems |
expandComparisons |
bool | false |
Add vs / or / versus / and style tokens |
expandPrepositions |
bool | false |
Add for / with / without / under style tokens |
expandBuyerModifiers |
bool | false |
Add best / cheap / for men style modifiers |
customSuffixes |
array | [] |
Your own suffixes |
maxDepth |
int | 0 |
Recursion depth, 0-3 |
queryMode |
string | enhanced |
enhanced / organic / both |
includeWidgets |
bool | false |
Emit widget rows when available |
includeSeed |
bool | false |
Emit one SEED row per seed |
dedupe |
bool | true |
Merge repeats and add volume/provenance fields |
resultOrder |
string | source |
source / alphabetical / volume |
mustContainSeed |
bool | false |
Drop suggestions without the seed text |
includeTerms |
array | [] |
Keep suggestions containing at least one term |
excludeTerms |
array | [] |
Drop suggestions containing any term |
onlyQuestions |
bool | false |
Keep question-shaped suggestions |
onlyLongTail |
bool | false |
Keep suggestions with 3+ words |
minWordCount |
int | 0 |
Drop shorter suggestions |
maxSuggestions |
int | 500 |
Overall record cap (1-10,000) |
maxSuggestionsPerKeyword |
int | 0 |
Per seed/market/department cap; 0 = no cap |
maxQueries |
int | 400 |
Overall request cap (1-20,000) |
maxConcurrency |
int | 4 |
Parallel requests (1-10) |
requestDelayMs |
int | 100 |
Pause between requests (0-5,000 ms) |
Example: one seed, one market
{
"keywords": ["wireless earbuds"],
"marketplace": "US",
"maxSuggestions": 25
}
Example: full keyword-research sweep
{
"keywords": ["yoga mat"],
"marketplace": "US",
"expandAlphabet": true,
"expandPrefixAlphabet": true,
"expandQuestions": true,
"expandComparisons": true,
"expandPrepositions": true,
"expandBuyerModifiers": true,
"maxSuggestions": 800,
"maxQueries": 400,
"resultOrder": "volume"
}
Example: compare countries and departments
{
"keywords": ["running shoes"],
"marketplaces": ["US", "GB", "DE", "JP"],
"departments": ["aps", "shoes", "fashion"],
"maxSuggestionsPerKeyword": 150,
"maxSuggestions": 1200
}
Example: questions and long-tail only, with thumbnails
{
"keywords": ["air purifier"],
"marketplace": "US",
"expandQuestions": true,
"onlyQuestions": true,
"onlyLongTail": true,
"queryMode": "both",
"includeWidgets": true,
"maxSuggestions": 200
}
Use cases
- Amazon SEO and PPC — build exact-match keyword lists from the phrases shoppers actually type into Amazon
- Listing optimization — find long-tail phrasing for titles, bullets and backend search terms
- Niche research — expand one product idea into hundreds of related buying-intent phrases
- International expansion — compare autocomplete demand signals for the same seed in different marketplaces
- Category discovery — sweep departments to see how suggestions change between broad and scoped searches
- Content planning — turn question and comparison suggestions into buying guides and FAQ content
FAQ
Is this a search-volume tool?
No. Amazon does not publish monthly search volume, and this actor does not invent one. position is the order Amazon returned at request time, and volumeProxy counts how many distinct query variants surfaced the same phrase. Both are relative signals for prioritisation, not absolute demand numbers.
Why do I only get about ten suggestions per query?
Amazon's autocomplete response is capped at roughly ten keyword suggestions per request. The expansion axes work around that cap by sending related queries (yoga mat a, a yoga mat, best yoga mat, and so on), then merging and deduplicating the results.
What is the difference between organic and enhanced?
The organic dialect returns the plain keyword list. The enhanced dialect returns that list plus optional thumbnails, widget cards and predictive text when Amazon provides them. Both requests each dialect and unions the results, which costs twice as many requests but can surface extra phrases.
Why are thumbnails missing for some rows or markets?
Thumbnails come from Amazon's enhanced responses and are mostly present on the US and sometimes Canada marketplaces. Other markets usually return none. The field is omitted when Amazon does not supply an image; no placeholder or synthetic image is ever added.
How does the India marketplace work?
Amazon's own India completion host is occasionally unavailable. When that happens, the actor automatically retries the same Indian marketplace through Amazon's UK and UAE completion hosts, keeping the Indian marketplace id and locale. The run status message tells you which host was used.
Why did my run stop before the result count I expected?
Amazon caps each raw response, and the actor also enforces your maxSuggestions, maxSuggestionsPerKeyword, maxQueries and maxDepth limits. The run status message names the limit that stopped it, so you can raise that specific cap and run again.
Why do some department aliases return unrelated suggestions?
Amazon sometimes returns a generic cross-department fallback instead of an empty list. The record keeps the department alias that produced it, so you can see exactly which scope returned the phrase.
Is authentication, a proxy or a browser required?
No. The autocomplete service is public JSON. The actor calls it directly with no login, cookies, API key, browser rendering or proxy configuration.
Is this affiliated with Amazon?
No. This is an independent third-party actor that reads Amazon's public autocomplete responses.
Limitations
- Amazon returns at most about ten keyword suggestions per query, so breadth comes from the expansion axes and the query cap.
- Thumbnails and widget rows are only available from enhanced responses and are sparse outside the US marketplace.
volumeProxyis a count of distinct query variants, not search volume.- Department scoping is Amazon's own behaviour; an unrelated alias can return a generic fallback row.
- Recursion and many expansion axes multiply request counts. Use
maxQueries,maxSuggestionsandmaxSuggestionsPerKeywordto keep runs bounded.
Python quickstart
Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.
Source build Lh0Nho79lKMarONeP. Documentation is regenerated from the default published build; private drafts are not included.