{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Seller Data Extractor And Product Catalog Scraper",
    "description": "Extract detailed seller information with the Amazon Seller Data Extractor Scraper. Retrieve seller names, ratings, product listings, feedback scores, and sales data. Perfect for competitor analysis, market research, and business insights. Fast, accurate, and scalable for bulk sellers.",
    "version": "0.1",
    "x-build-id": "OLujKW7ofuchUoaJM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapier~amazon-seller-data-extractor-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapier-amazon-seller-data-extractor-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/scrapier~amazon-seller-data-extractor-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapier-amazon-seller-data-extractor-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/scrapier~amazon-seller-data-extractor-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapier-amazon-seller-data-extractor-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": {
          "sellerAsinTargets": {
            "title": "📦 Product ASINs (resolve seller from product page)",
            "type": "array",
            "description": "One ASIN per row (example: B00P8XQPY4). We open the product page and resolve the seller behind the offer. (Base-compatible field: `asinInputs` also still works.)",
            "items": {
              "type": "string"
            }
          },
          "sellerIdTargets": {
            "title": "👤 Seller IDs / merchant IDs",
            "type": "array",
            "description": "Amazon seller IDs like A33W53J5GVPZ8K — use when you already know exactly which storefront to scrape. (Base-compatible field: `usernameInputs` also still works.)",
            "items": {
              "type": "string"
            }
          },
          "discoveryKeywords": {
            "title": "🔎 Keywords (discover sellers)",
            "type": "array",
            "description": "Search-style phrases (e.g. \"handmade ceramics UK\"). We run the search, open matching products, and resolve each one's seller — de-duplicated by seller ID — then run the SAME storefront product-catalog fetch + per-product enrichment as every other input path. (Base-compatible field: `keywordInputs` also still works.)",
            "items": {
              "type": "string"
            }
          },
          "sellerProfileUrls": {
            "title": "🔗 Direct seller profile URLs",
            "type": "array",
            "description": "Full Amazon seller storefront links (e.g. https://www.amazon.com/sp?seller=…). (Base-compatible field: `startUrls` also still works.)",
            "items": {
              "type": "string"
            }
          },
          "fetchProductCatalog": {
            "title": "🛍️ Fetch storefront product catalog",
            "type": "boolean",
            "description": "When ON, each resolved seller's storefront listing is fetched and paginated to collect ASIN/title/price/rating for every product the seller sells. Off = base behavior only (seller record, no catalog).",
            "default": true
          },
          "maxProductsPerSeller": {
            "title": "🔢 Max catalog products per seller",
            "minimum": 0,
            "maximum": 2000,
            "type": "integer",
            "description": "Caps how many storefront products are collected PER SELLER — a SEPARATE budget from your seller targets above (0 = unlimited, bounded only by the page-depth safety valve below).",
            "default": 20
          },
          "maxCatalogPages": {
            "title": "📄 Max catalog pages per seller",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Safety valve on storefront pagination depth (`&page=N`) so a run can't loop forever on a huge storefront.",
            "default": 5
          },
          "enrichCatalogProducts": {
            "title": "🧪 Enrich catalog products with live details",
            "type": "boolean",
            "description": "When ON, each catalog product (up to the cap below) gets an extra fetch of its own `/dp/<ASIN>` page to add availability, feature bullets, and variation names/count on top of the catalog row.",
            "default": true
          },
          "maxEnrichedProducts": {
            "title": "🔢 Max products to enrich per seller",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "Caps the extra per-product detail-page fetches PER SELLER — its own budget, separate from the catalog cap above (each enrichment costs one additional request, so keep this modest on large storefronts).",
            "default": 10
          },
          "marketplaceDomain": {
            "title": "🌐 Amazon marketplace domain",
            "type": "string",
            "description": "Examples: amazon.com, amazon.co.uk, amazon.de, amazon.co.jp. (Base-compatible field: `amazonDomain` also still works.)"
          },
          "pageLocale": {
            "title": "🗣️ Page language (locale)",
            "type": "string",
            "description": "Optional locale string (en-US, en-GB, de-DE…) — sets the Accept-Language request header so Amazon serves that locale's page copy when it has one. Leave blank to let Amazon decide. (Base-compatible field: `language` also still works.)"
          },
          "proxyCountryHint": {
            "title": "🌎 Proxy country hint",
            "type": "string",
            "description": "ISO-style country for proxy routing, or AUTO to derive it from the marketplace domain. (Base-compatible field: `proxyCountry` also still works.)"
          },
          "captchaSolverAssist": {
            "title": "🤖 Retry harder on soft blocks",
            "type": "boolean",
            "description": "No third-party CAPTCHA-image solving service runs here — flipping this ON instead doubles the anti-bot retry ladder with longer backoff, which genuinely rescues more runs against soft blocks/verification interstitials (base-compatible field: `useCaptchaSolver` also still works)."
          },
          "feedbackSortOrder": {
            "title": "⭐ Feedback sort order",
            "enum": [
              "recent",
              "helpful",
              "rating"
            ],
            "type": "string",
            "description": "How feedbacks[] is actually ordered before maxFeedbackPerSeller truncates it: freshest first, most 'found helpful' votes first, or highest star rating first (base-compatible field: `sortOrder` also still works)."
          },
          "maxFeedbackPerSeller": {
            "title": "💬 Max feedback rows per seller",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Cap feedback rows per seller (0 = grab everything the page allows). (Base-compatible field: `maxComments` also still works.)"
          },
          "maxParallelSellers": {
            "title": "⚡ Max parallel seller tasks",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Higher = faster but hotter on Amazon's radar. Lower (1–5) = gentler. (Base-compatible field: `maxConcurrency` also still works.)"
          },
          "proxyConfiguration": {
            "title": "🧩 Proxy configuration (optional)",
            "type": "object",
            "description": "This actor always runs on residential proxies. UI choices here stay for compatibility but may be overridden automatically."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}