{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Search Scraper · 20 Marketplaces · Ranks & Ads",
    "description": "Scrape Amazon search results by keyword or URL on 20 marketplaces: ASIN, title, price, list price, stars, reviews, sponsored/Prime/Amazon's Choice/Best Seller flags, delivery, coupon, bought-in-past-month and position, plus organic rank, sales estimate, video ads and brand banners. No login.",
    "version": "1.0",
    "x-build-id": "WAHCgguc22Mf4Xmpc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/molded_mountainpass~amazon-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-molded_mountainpass-amazon-search-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/molded_mountainpass~amazon-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-molded_mountainpass-amazon-search-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/molded_mountainpass~amazon-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-molded_mountainpass-amazon-search-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",
        "properties": {
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Keywords to search for. Each keyword is a separate search on the marketplace below, and every row says which keyword found it (`searchQuery`). You can combine keywords with Search URLs.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Search URLs",
            "type": "array",
            "description": "Amazon search result URLs (the address after you search on Amazon, containing `/s?k=`). Use them for filters Amazon's own URL supports, such as a category. The marketplace is taken from each URL's domain. Product pages (/dp/) are skipped.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "country": {
            "title": "Marketplace",
            "enum": [
              "US",
              "CA",
              "MX",
              "BR",
              "UK",
              "DE",
              "FR",
              "IT",
              "ES",
              "NL",
              "SE",
              "PL",
              "TR",
              "JP",
              "IN",
              "AU",
              "SG",
              "SA",
              "AE",
              "EG"
            ],
            "type": "string",
            "description": "Amazon marketplace for the Search keywords. Search URLs keep their own marketplace. Empty: amazon.com."
          },
          "language": {
            "title": "Language",
            "enum": [
              "AUTO",
              "en",
              "de",
              "fr",
              "it",
              "es",
              "ja",
              "pt",
              "ar",
              "tr",
              "sv",
              "nl",
              "pl"
            ],
            "type": "string",
            "description": "Language the Actor asks Amazon for (Accept-Language). Auto uses the marketplace's own language, for example German on amazon.de. Pick English to get English text everywhere Amazon offers it.",
            "default": "AUTO"
          },
          "maxResultsPerQuery": {
            "title": "Max results per keyword",
            "minimum": 0,
            "type": "integer",
            "description": "Most result rows per keyword or URL. 0 = no limit (Max pages then limits the run). A page has about 16 results.",
            "default": 50
          },
          "maxResults": {
            "title": "Max total results",
            "minimum": 0,
            "type": "integer",
            "description": "Most result rows in the whole run, across all keywords. 0 = no limit. The run also stops cleanly at the maximum cost per run set in Run options.",
            "default": 0
          },
          "maxPages": {
            "title": "Max pages per keyword",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many result pages to read per keyword (Amazon shows up to about 20). A search stops earlier at its last page, or when a page has fewer than 4 organic results.",
            "default": 5
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "price-asc-rank",
              "price-desc-rank",
              "review-rank",
              "date-desc-rank",
              "featured-rank"
            ],
            "type": "string",
            "description": "Amazon's sort order, as in the Sort by menu on the search page. Every row says which one was used (`sortBy`).",
            "default": "relevance"
          },
          "minPrice": {
            "title": "Min price",
            "minimum": 0,
            "type": "integer",
            "description": "Only products from this price, in the marketplace's currency (dollars on amazon.com, euros on amazon.de, ...). 0 = no minimum.",
            "default": 0
          },
          "maxPrice": {
            "title": "Max price",
            "minimum": 0,
            "type": "integer",
            "description": "Only products up to this price, in the marketplace's currency. 0 = no maximum.",
            "default": 0
          },
          "minStars": {
            "title": "Min star rating",
            "minimum": 0,
            "maximum": 4,
            "type": "integer",
            "description": "Only products rated at least this many stars: 1 to 4, or 0 for all. 4 uses Amazon's own '4 Stars & Up' filter; every value is also checked on each row, and unrated products are left out.",
            "default": 0
          },
          "primeOnly": {
            "title": "Prime only (amazon.com)",
            "type": "boolean",
            "description": "Only Prime-eligible products, using Amazon's Prime filter. Amazon offers this filter on amazon.com only; other marketplaces ignore it.",
            "default": false
          },
          "includeSponsored": {
            "title": "Include sponsored results",
            "type": "boolean",
            "description": "Off: sponsored listings, video ads and brand banners are left out. They still count in positionOnPage, so positions match what shoppers see.",
            "default": true
          },
          "scrapeMode": {
            "title": "What to extract",
            "enum": [
              "search",
              "ads"
            ],
            "type": "string",
            "description": "'Every search result' outputs each organic and sponsored product (see the README for all fields). 'Sponsored ads only' is this Actor's original output: sponsored grid ads, video ads and brand banners in the original format. Without this field, API calls get every search result when they use the fields above (searchQueries, country, ...) and the original output when they use the original ones (searchTerms, domain)."
          },
          "monitoringMode": {
            "title": "Monitoring",
            "enum": [
              "off",
              "changes"
            ],
            "type": "string",
            "description": "'Only new or changed' remembers every search's last results and outputs (and charges) only products that are new or whose price, list price, coupon, badges, rating, 'bought in past month' or rank changed. Rows get changeType, changedFields, priceDelta and rankDelta. Schedule the Actor to track a keyword daily. Works with 'Every search result'.",
            "default": "off"
          },
          "rankChangeThreshold": {
            "title": "Rank change that counts",
            "minimum": 1,
            "type": "integer",
            "description": "In monitoring, a product counts as changed when its organic rank (or an ad's position) moves by at least this many places.",
            "default": 3
          },
          "monitorStoreName": {
            "title": "Monitoring store name",
            "type": "string",
            "description": "Named key-value store that keeps the last results of each search. Use a different name to keep separate histories, for example one per client.",
            "default": "amazon-search-monitor"
          },
          "deliveryZipCodes": {
            "title": "Delivery ZIP or postal code per marketplace",
            "type": "object",
            "description": "Prices, delivery dates and availability depend on where Amazon delivers. Give a postcode per marketplace, by country code or domain, for example {\"US\": \"10001\", \"DE\": \"10115\", \"amazon.co.uk\": \"SW1A 1AA\"}. No extra charge. Rows show deliveryLocation and zipApplied (whether Amazon accepted it)."
          },
          "concurrency": {
            "title": "Parallel searches",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many pages are fetched at the same time. The pages of one keyword are always read in order, so this speeds up runs with several keywords. 3-5 is reliable; more is faster but meets more temporary blocks.",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Amazon blocks datacenter IPs aggressively. Select RESIDENTIAL groups for reliable results; the default works but may return few or zero ads.",
            "default": {
              "useApifyProxy": true
            }
          },
          "saveHtml": {
            "title": "Save page HTML (debugging)",
            "type": "boolean",
            "description": "Store each search page's HTML in the run's key-value store. Useful when reporting a parsing problem.",
            "default": false
          },
          "domain": {
            "title": "Marketplace domain (original name)",
            "type": "string",
            "description": "Older way to pick the marketplace, e.g. amazon.de, still accepted. Marketplace (country) wins when both are set."
          },
          "maxItems": {
            "title": "Max results (original name)",
            "minimum": 0,
            "type": "integer",
            "description": "Older name of Max total results, still accepted."
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}