{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Autocomplete Scraper — Keyword Suggestions + Volume",
    "description": "Scrape Amazon autocomplete keyword suggestions from any seed. 16 marketplaces (US–IE), multi-department sweeps, A–Z suffix + prefix, locale-aware modifiers, question/comparison slices, filters and monitor mode — every phrase ranked by a volume-proxy score. Search URL + thumbnails. JSON or CSV.",
    "version": "0.0",
    "x-build-id": "90igNT9JhCEtdiUZt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~amazon-autocomplete-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-amazon-autocomplete-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/memo23~amazon-autocomplete-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-amazon-autocomplete-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/memo23~amazon-autocomplete-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-amazon-autocomplete-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "keywords"
        ],
        "properties": {
          "keywords": {
            "title": "Seed keywords",
            "type": "array",
            "description": "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.",
            "items": {
              "type": "string"
            }
          },
          "marketplaces": {
            "title": "Marketplaces",
            "type": "array",
            "description": "Amazon marketplaces to sweep: US, UK, DE, FR, IT, ES, CA, MX, AU, JP, IN, BR, NL, AE, SA, IE. Suggestions come from the marketplace's own completion service (no proxy needed for correct per-country results). Defaults to [\"US\"].",
            "default": [
              "US"
            ],
            "items": {
              "type": "string"
            }
          },
          "departments": {
            "title": "Departments",
            "type": "array",
            "description": "Scope suggestions to one or more Amazon departments. What shoppers type inside Books differs from Electronics. Leave as All departments unless you want a scoped sweep.",
            "items": {
              "type": "string",
              "enum": [
                "aps",
                "stripbooks",
                "electronics",
                "computers",
                "fashion",
                "toys-and-games",
                "garden",
                "beauty",
                "grocery",
                "videogames",
                "hpc",
                "sporting",
                "pets",
                "baby-products",
                "kitchen",
                "automotive",
                "software",
                "digital-text",
                "arts-crafts",
                "appliances",
                "industrial",
                "instant-video",
                "mobile-apps",
                "office-products",
                "tools",
                "luggage"
              ],
              "enumTitles": [
                "All departments",
                "Books",
                "Electronics",
                "Computers",
                "Clothing, Shoes & Jewelry",
                "Toys & Games",
                "Garden & Outdoor",
                "Beauty & Personal Care",
                "Grocery & Gourmet Food",
                "Video Games",
                "Health & Household",
                "Sports & Outdoors",
                "Pet Supplies",
                "Baby",
                "Home & Kitchen",
                "Automotive",
                "Software",
                "Kindle Store",
                "Arts, Crafts & Sewing",
                "Appliances",
                "Industrial & Scientific",
                "Prime Video",
                "Apps & Games",
                "Office Products",
                "Tools & Home Improvement",
                "Luggage & Travel Gear"
              ]
            },
            "default": [
              "aps"
            ]
          },
          "expandAlphabet": {
            "title": "A–Z suffix expansion",
            "type": "boolean",
            "description": "Append every letter a–z to each seed (\"coffee grinder a\", \"coffee grinder b\", …). Multiplies the request count ~26×.",
            "default": false
          },
          "expandPrefixAlphabet": {
            "title": "A–Z prefix expansion",
            "type": "boolean",
            "description": "Prepend every letter a–z to each seed (\"a coffee grinder\", \"b coffee grinder\", …). Amazon matches the typed prefix, so this list barely overlaps the suffix expansion.",
            "default": false
          },
          "expandNumbers": {
            "title": "0–9 expansion",
            "type": "boolean",
            "description": "Append every digit 0–9 to each seed. Useful for sized or versioned terms (\"iphone 15\", \"size 8\").",
            "default": false
          },
          "expandBuyerModifiers": {
            "title": "Buyer-modifier expansion",
            "type": "boolean",
            "description": "Append locale-aware buyer-intent modifiers. US gets best/cheap/for kids; DE gets günstig/für kinder; JP gets 安い/ギフト — and so on per marketplace.",
            "default": false
          },
          "expandQuestions": {
            "title": "Question expansion",
            "type": "boolean",
            "description": "Prepend question stems (how to, what is, why, where to buy — plus localized stems such as wie, comment, cómo).",
            "default": false
          },
          "expandComparisons": {
            "title": "Comparison expansion",
            "type": "boolean",
            "description": "Append comparison stems (vs, versus, or — plus localized oder/ou/o).",
            "default": false
          },
          "expandPrepositions": {
            "title": "Preposition expansion",
            "type": "boolean",
            "description": "Append prepositions (with, without, for, under, over — plus localized mit/ohne, avec/sans, con/sin).",
            "default": false
          },
          "customSuffixes": {
            "title": "Custom suffixes",
            "type": "array",
            "description": "Your own suffixes to append to each seed, e.g. \"under 50\", \"stainless steel\", \"prime\". Combined with the toggles above.",
            "items": {
              "type": "string"
            }
          },
          "expansionDepth": {
            "title": "Recursive expansion depth",
            "minimum": 0,
            "maximum": 3,
            "type": "integer",
            "description": "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.",
            "default": 0
          },
          "resultOrder": {
            "title": "Suggestion order",
            "enum": [
              "volume",
              "alphabetical"
            ],
            "type": "string",
            "description": "How suggestions are ranked within each seed × marketplace × department group.",
            "default": "volume"
          },
          "mustContainSeed": {
            "title": "Must contain the seed",
            "type": "boolean",
            "description": "Drop suggestions that drifted away from the seed phrase entirely.",
            "default": false
          },
          "mustIncludeTerms": {
            "title": "Must include any of these terms",
            "type": "array",
            "description": "Keep only suggestions containing at least one of these words or phrases (case-insensitive).",
            "items": {
              "type": "string"
            }
          },
          "excludeTerms": {
            "title": "Exclude terms",
            "type": "array",
            "description": "Drop any suggestion containing one of these substrings. Case-insensitive.",
            "items": {
              "type": "string"
            }
          },
          "onlyQuestions": {
            "title": "Questions only",
            "type": "boolean",
            "description": "Keep only question-shaped suggestions (how/what/why… or containing ?).",
            "default": false
          },
          "onlyLongTail": {
            "title": "Long-tail only",
            "type": "boolean",
            "description": "Keep only suggestions of three or more words.",
            "default": false
          },
          "minWordCount": {
            "title": "Minimum word count",
            "minimum": 0,
            "type": "integer",
            "description": "Drop suggestions shorter than this many words. 0 = no minimum.",
            "default": 0
          },
          "monitorMode": {
            "title": "Monitor mode — only new keywords",
            "type": "boolean",
            "description": "Remember suggestions from previous runs (in a named key-value store) and return ONLY phrases not seen before. Use this on a schedule to watch autocomplete drift.",
            "default": false
          },
          "monitorKey": {
            "title": "Monitor key",
            "type": "string",
            "description": "Names the monitor watch-list so you can keep separate lists per topic or market. Letters, numbers and hyphens.",
            "default": "default"
          },
          "maxSuggestionsPerKeyword": {
            "title": "Max suggestions per seed",
            "type": "integer",
            "description": "Cap on suggestions returned per seed keyword (per marketplace × department), applied after ranking. 0 = no per-seed cap.",
            "default": 0
          },
          "maxItems": {
            "title": "Max total results",
            "type": "integer",
            "description": "Hard cap on the total number of suggestion rows pushed to the dataset (charging-aware).",
            "default": 1000
          },
          "deduplicateSuggestions": {
            "title": "Deduplicate across seeds",
            "type": "boolean",
            "description": "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, department, suggestion) keeps full attribution.",
            "default": false
          },
          "includeMetadata": {
            "title": "Include suggestion metadata",
            "type": "boolean",
            "description": "Include Amazon's raw per-suggestion signals: refTag, ranking strategy id, product thumbnail URL, and ghost flag.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "type": "integer",
            "description": "Maximum simultaneous requests to Amazon's completion service. The endpoint is light, so 10–20 is safe.",
            "default": 10
          },
          "requestDelayMs": {
            "title": "Delay between requests (ms)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional pause after each autocomplete request. Raise this for very large jobs if Amazon starts returning empty bodies.",
            "default": 0
          },
          "proxy": {
            "title": "Proxy configuration (optional override)",
            "type": "object",
            "description": "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."
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}