Vexaloom Labs

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.

FieldTypeRequiredDescription
keywordsarrayrequiredOne or more seed keywords or phrases to expand into Amazon autocomplete suggestions.
marketplacestringoptionalSingle Amazon marketplace to query. Used when `marketplaces` is empty.
marketplacesarrayoptionalOptional 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
FieldTypeRequiredDescription
keywordsarrayrequiredOne or more seed keywords or phrases to expand into Amazon autocomplete suggestions.
marketplacestringoptionalSingle Amazon marketplace to query. Used when `marketplaces` is empty.
marketplacesarrayoptionalOptional multi-market sweep, e.g. ["US", "GB", "DE"]. Leave empty to use the single `marketplace` value. Codes are the same as the marketplace dropdown.
departmentsarrayoptionalAmazon 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.
expandAlphabetbooleanoptionalAppend each letter a-z to every query (e.g. `yoga mat a`) to surface more than the per-query cap.
expandPrefixAlphabetbooleanoptionalPrepend each letter a-z to every query (e.g. `a yoga mat`). Returns a different suggestion set from suffix expansion.
expandNumbersbooleanoptionalAppend each digit 0-9 to every query, useful for sizes, models and quantities.
expandQuestionsbooleanoptionalQuery locale-aware question stems such as `how to`, `what is` and `where to buy` in front of each seed.
expandComparisonsbooleanoptionalQuery comparison tokens such as `vs`, `or`, `versus` and `and` after each seed.
expandPrepositionsbooleanoptionalQuery preposition tokens such as `for`, `with`, `without`, `under` and `over` after each seed.
expandBuyerModifiersbooleanoptionalQuery locale-aware buyer-intent modifiers such as `best`, `cheap`, `for men`, `for women` and `waterproof`.
customSuffixesarrayoptionalAdditional suffixes to append to every query, e.g. ["for men", "waterproof", "iphone 15"].
maxDepthintegeroptionalRecursively re-query newly discovered suggestions as fresh seeds, up to this depth (0 = original seeds only; 3 = three hops).
queryModestringoptional`enhanced` returns thumbnails, widgets and predictive text when Amazon provides them; `organic` is the plain keyword response; `both` requests both and unions the results.
includeWidgetsbooleanoptionalEmit Amazon's optional widget suggestions (carousels, refinements, entity cards) when the enhanced endpoint returns them.
includeSeedbooleanoptionalEmit one `SEED` record per seed keyword in addition to Amazon's suggestions.
dedupebooleanoptionalMerge repeated suggestions into one record per seed, marketplace and department, with a relative volume proxy and provenance. Turn off to emit every occurrence.
resultOrderstringoptionalOrder within each seed, marketplace and department group. `volume` sorts by the relative query-count score (requires dedupe).
mustContainSeedbooleanoptionalDrop suggestions that do not contain the original seed keyword.
includeTermsarrayoptionalKeep only suggestions containing at least one of these terms. Leave empty to keep all.
excludeTermsarrayoptionalDrop suggestions containing any of these terms.
onlyQuestionsbooleanoptionalKeep only question-shaped suggestions (question word or trailing question mark).
onlyLongTailbooleanoptionalKeep only suggestions with three or more words.
minWordCountintegeroptionalDrop suggestions with fewer words than this value.
maxSuggestionsintegeroptionalHard cap on total records emitted in this run.
maxSuggestionsPerKeywordintegeroptionalCap emitted records per seed, marketplace and department. 0 means no per-seed cap.
maxQueriesintegeroptionalHard cap on HTTP requests across the whole run. The run status message says when this cap stopped it.
maxConcurrencyintegeroptionalParallel requests. Values above 8 give little extra speed and are more likely to be rate-limited.
requestDelayMsintegeroptionalPause 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.

FieldTypeRequiredDescription
suggestionsstringoptionalDataset 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.com and amazon.co.uk to amazon.co.jp, amazon.com.au and amazon.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, language
  • seedKeyword — the original seed this row belongs to
  • query / prefix — the exact query text sent to Amazon
  • suggestion — the suggested keyword
  • department — the Amazon department alias used
  • locale — the marketplace language, e.g. en-US
  • suggestionType — Amazon's response type, e.g. KEYWORD or WIDGET; SEED for an echoed seed
  • suggType — Amazon's finer subtype, e.g. KeywordSuggestion
  • expansionType / expansionToken — seed, suffixAlphabet, prefixAlphabet, digits, question, comparison, preposition, buyerModifier, custom or recursive, plus the letter, digit or word used
  • expansionDepth / expansionParent — recursion level and the suggestion that led to this query
  • position / amazonRank — 1-based slot in the response that returned the phrase
  • bestRank / rank — best slot across all queries, and final rank inside the seed group
  • volumeProxy — how many distinct query variants surfaced the phrase; a relative signal, not monthly search volume
  • surfacedByQueries — up to 20 query variants that returned it
  • searchUrl — ready-to-open Amazon search URL for the suggestion
  • wordCount, isQuestion, containsSeed — shape helpers for filtering and analysis
  • thumbnailUrl — product thumbnail when the enhanced response supplies one
  • widget — optional widget object: id, template, slot, byline, refinement, title, subtitle, imageUrl, imageShape, linkUrl, items[]
  • predictiveText — Amazon's predictive completion for the query, when present
  • strategyId / strategyApiType / candidateSources / refTag / prior / ghost / help — Amazon's own suggestion metadata
  • responseId / shuffled — request correlation id and whether Amazon randomized the response order
  • sourceUrl — the exact autocomplete request URL
  • recordType: "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.
  • volumeProxy is 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, maxSuggestions and maxSuggestionsPerKeyword to 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.

Open the step-by-step Python guide →

Source build Lh0Nho79lKMarONeP. Documentation is regenerated from the default published build; private drafts are not included.