{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Product Scraper — Prices, Deals & Monitoring",
    "description": "Scrape Amazon search results across 18 marketplaces into clean product rows — numeric prices, list prices, discounts, ratings, review counts, monthly-bought signals, sponsored flags, badges, Prime and ASINs. Monitor mode returns only new or changed products on scheduled runs. Pure HTTP, JSON/CSV.",
    "version": "0.0",
    "x-build-id": "heNZgdLPuIkeTQTlw"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~amazon-product-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-amazon-product-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-product-scraper/runs": {
      "post": {
        "operationId": "runs-sync-memo23-amazon-product-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-product-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-amazon-product-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": {
          "queries": {
            "title": "🔍 Search queries or ASINs",
            "type": "array",
            "description": "Keywords or bare ASINs to search on Amazon. Each entry runs its own paginated crawl on every selected marketplace. Example: \"usb c cable\", \"yoga mat\", \"B082Z1YYRK\".",
            "items": {
              "type": "string"
            }
          },
          "marketplaces": {
            "title": "🌍 Marketplaces",
            "type": "array",
            "description": "Which Amazon marketplaces the queries run on. Prices come back in the marketplace currency with the ISO code attached. Start URLs ignore this and use the domain in the URL.",
            "items": {
              "type": "string",
              "enum": [
                "com",
                "co.uk",
                "de",
                "fr",
                "it",
                "es",
                "ca",
                "com.au",
                "co.jp",
                "in",
                "nl",
                "se",
                "pl",
                "com.be",
                "ae",
                "com.mx",
                "com.tr",
                "sg"
              ],
              "enumTitles": [
                "amazon.com (US)",
                "amazon.co.uk (UK)",
                "amazon.de (Germany)",
                "amazon.fr (France)",
                "amazon.it (Italy)",
                "amazon.es (Spain)",
                "amazon.ca (Canada)",
                "amazon.com.au (Australia)",
                "amazon.co.jp (Japan)",
                "amazon.in (India)",
                "amazon.nl (Netherlands)",
                "amazon.se (Sweden)",
                "amazon.pl (Poland)",
                "amazon.com.be (Belgium)",
                "amazon.ae (UAE)",
                "amazon.com.mx (Mexico)",
                "amazon.com.tr (Turkey)",
                "amazon.sg (Singapore)"
              ]
            },
            "default": [
              "com"
            ]
          },
          "startUrls": {
            "title": "📎 Start URLs (optional)",
            "type": "array",
            "description": "Direct Amazon URLs, mixed freely: search results (amazon.com/s?k=…), best-seller lists (/gp/bestsellers/…), category pages (/b?node=…) or product pages (/dp/ASIN). Any supported marketplace — the domain in the URL wins. Runs in addition to queries.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "sortBy": {
            "title": "↕️ Sort results by",
            "enum": [
              "relevance",
              "price-asc",
              "price-desc",
              "rating",
              "newest",
              "bestSellers"
            ],
            "type": "string",
            "description": "Result ordering for keyword queries (start URLs keep whatever sort their URL carries).",
            "default": "relevance"
          },
          "minPrice": {
            "title": "Min price",
            "minimum": 0,
            "type": "integer",
            "description": "Lower price bound in the marketplace currency (applies to keyword queries)."
          },
          "maxPrice": {
            "title": "Max price",
            "minimum": 0,
            "type": "integer",
            "description": "Upper price bound in the marketplace currency (applies to keyword queries)."
          },
          "maxItems": {
            "title": "Max products (whole run)",
            "minimum": 1,
            "type": "integer",
            "description": "Hard ceiling of product rows across the whole run. Also capped by your plan and charge limit."
          },
          "maxItemsPerQuery": {
            "title": "Max products per query / URL",
            "minimum": 1,
            "type": "integer",
            "description": "Upper bound of product rows per search query or start URL. One search page yields ~20–48 products.",
            "default": 200
          },
          "monitorMode": {
            "title": "📡 Monitor mode",
            "enum": [
              "off",
              "price-changes",
              "all-changes"
            ],
            "type": "string",
            "description": "Schedule the same input to receive only what changed. \"Price changes\" emits new products and price moves; \"All changes\" also emits rating and review-count moves. The first run builds the baseline and returns all products. Runs that find no changes publish no billable rows.",
            "default": "off"
          },
          "monitorName": {
            "title": "📡 Monitor name",
            "type": "string",
            "description": "Stable name for the monitoring baseline — use the same name (with the same queries/marketplaces) on every scheduled run of the same watch. Example: \"competitor-asins-us\"."
          },
          "concurrency": {
            "title": "Concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many listing pages to fetch in parallel (1–20). The default is safe for any memory size.",
            "default": 6
          },
          "proxy": {
            "title": "Proxy (optional override)",
            "type": "object",
            "description": "Leave unset for the built-in residential setup (recommended — Amazon blocks datacenter IPs). Set only to route traffic through your own Apify proxy groups instead."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}