{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Product Scraper",
    "description": "Scrape Amazon products, prices, offers, sellers, bestsellers and deals in one run. ASINs, search queries, seller IDs, category node IDs or URLs in - clean structured rows out. Pay only per result, no subscription.",
    "version": "1.0",
    "x-build-id": "7GxjPn0AikptXuDHn"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jdtpnjtp~amazon-products/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jdtpnjtp-amazon-products",
        "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/jdtpnjtp~amazon-products/runs": {
      "post": {
        "operationId": "runs-sync-jdtpnjtp-amazon-products",
        "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/jdtpnjtp~amazon-products/run-sync": {
      "post": {
        "operationId": "run-sync-jdtpnjtp-amazon-products",
        "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 queries",
            "uniqueItems": true,
            "type": "array",
            "description": "Keyword searches (e.g. `wireless earbuds`, `4k monitor`). Each query is paginated up to the per-type cap below. Apply the search filters (sort, price, brand, Prime, condition, rating) in the Search options section. Optional if you provide ASINs / URLs / seller IDs / category IDs.",
            "items": {
              "type": "string"
            }
          },
          "asins": {
            "title": "ASINs or URLs",
            "uniqueItems": true,
            "type": "array",
            "description": "Amazon products by ASIN or product URL (the 10-char code in any /dp/ link, e.g. `B0CHX1W1XY`, or paste the full URL). Each is pulled as a full product detail; when **Offers** is selected, every seller offer for it is pulled too. Optional if you provide search queries / URLs.",
            "items": {
              "type": "string"
            }
          },
          "sellerIds": {
            "title": "Seller IDs",
            "uniqueItems": true,
            "type": "array",
            "description": "Amazon merchant IDs (e.g. `A2L77EE7U53NWQ`). Pulled as seller profiles when **Sellers** is selected. Turn on 'Also list each seller's products' to list each seller's catalog too.",
            "items": {
              "type": "string"
            }
          },
          "categoryNodeIds": {
            "title": "Category node IDs",
            "uniqueItems": true,
            "type": "array",
            "description": "Amazon category node IDs (numeric, e.g. `172282`). Each is browsed page by page up to the per-type cap and returns its product listings. Runs when **Products (search + category)** is selected.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Start URLs",
            "uniqueItems": true,
            "type": "array",
            "description": "Paste any Amazon URL - a product (/dp/), a search results page (/s?k=), a bestseller / new-releases list, a seller page or an offer-listing. Each is auto-detected and parsed into its own row(s), independent of the data types below. (Review URLs are not handled here - use the Amazon Reviews actor.)",
            "items": {
              "type": "string"
            }
          },
          "dataTypes": {
            "title": "Data types to scrape",
            "uniqueItems": true,
            "type": "array",
            "description": "Which Amazon verticals to pull. Each type runs only when you supply matching input (e.g. Offers needs ASINs, Sellers needs Seller IDs). Start URLs always run regardless of this selection.",
            "items": {
              "type": "string",
              "enum": [
                "search",
                "product",
                "offers",
                "sellers",
                "bestsellers",
                "newReleases",
                "deals"
              ],
              "enumTitles": [
                "🔎 Products (search + category)",
                "📦 Product detail (by ASIN)",
                "🏷 Offers (all sellers for an ASIN)",
                "🏪 Sellers (merchant profiles)",
                "🏆 Bestsellers",
                "🆕 New releases",
                "🔥 Deals"
              ]
            },
            "default": [
              "search",
              "product",
              "offers",
              "sellers",
              "bestsellers",
              "newReleases",
              "deals"
            ]
          },
          "country": {
            "title": "Country (Amazon marketplace)",
            "enum": [
              "us",
              "uk",
              "de",
              "fr",
              "it",
              "es",
              "ca",
              "jp"
            ],
            "type": "string",
            "description": "Which Amazon marketplace to scrape.",
            "default": "us"
          },
          "maxResultsPerType": {
            "title": "Max results per type",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Upper bound on results pulled for EACH vertical / input item (search results per query, products per category, offers per ASIN, seller products per seller, etc.). 20 = quick sample, 100 = solid dataset. Search paginates Amazon under the hood to reach this number.",
            "default": 50
          },
          "includeProductDetails": {
            "title": "Fan out search results to full product detail",
            "type": "boolean",
            "description": "When on, every product from a search / category / seller-products row is enriched with a second call that pulls its full product page (specs, variations, all images, description, bestseller rank). **This adds a `product-detail` charge per result on top of the listing event.** Leave off for a fast, cheap listing-only run.",
            "default": false
          },
          "sortBy": {
            "title": "Search sort order",
            "enum": [
              "RELEVANCE",
              "PRICE_LOW_TO_HIGH",
              "PRICE_HIGH_TO_LOW",
              "BEST_SELLER",
              "NEWEST",
              "AVG_REVIEW"
            ],
            "type": "string",
            "description": "Order of keyword-search and category-browse results.",
            "default": "RELEVANCE"
          },
          "searchCategoryId": {
            "title": "Restrict search to category node ID",
            "type": "string",
            "description": "Optional Amazon category node ID to restrict keyword searches to a department (different from the Category node IDs input, which browses a category directly)."
          },
          "brand": {
            "title": "Brand filter",
            "type": "string",
            "description": "Restrict results to one or more brands (comma-separated)."
          },
          "minPrice": {
            "title": "Min price",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price filter (whole units of the marketplace currency)."
          },
          "maxPrice": {
            "title": "Max price",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price filter (whole units of the marketplace currency)."
          },
          "minRating": {
            "title": "Minimum customer rating",
            "enum": [
              "",
              "4",
              "5"
            ],
            "type": "string",
            "description": "Keep only products at or above this average review. Amazon's SERP exposes only a '4 stars & up' facet, so values >= 4 apply it; lower values are not applied.",
            "default": ""
          },
          "isPrime": {
            "title": "Prime eligible only",
            "type": "boolean",
            "description": "Keep only Prime-eligible search results.",
            "default": false
          },
          "productCondition": {
            "title": "Item condition",
            "enum": [
              "ALL",
              "NEW",
              "USED",
              "RENEWED",
              "COLLECTIBLE"
            ],
            "type": "string",
            "description": "Filter search results by item condition.",
            "default": "ALL"
          },
          "dealsAndDiscounts": {
            "title": "Discount filter (search)",
            "enum": [
              "NONE",
              "ALL_DISCOUNTS",
              "TODAYS_DEALS"
            ],
            "type": "string",
            "description": "Restrict keyword-search results to discounted / today's-deal items.",
            "default": "NONE"
          },
          "includeSellerProducts": {
            "title": "Also list each seller's products",
            "type": "boolean",
            "description": "When on, each Seller ID also returns that seller's product catalog (paginated to the per-type cap), each as a `product-result` row.",
            "default": false
          },
          "bestsellersCategory": {
            "title": "Bestsellers / new releases category",
            "type": "string",
            "description": "Category slug for the bestsellers and new-releases lists (e.g. electronics, books, toys, kitchen).",
            "default": "electronics"
          },
          "includeNewReleases": {
            "title": "Also pull new releases with bestsellers",
            "type": "boolean",
            "description": "When on, the new-releases list for the same category is pulled alongside the bestsellers list (you can also select 'New releases' in Data types directly).",
            "default": false
          },
          "dealsCategory": {
            "title": "Deals type",
            "enum": [
              "all",
              "lightning-deals",
              "coupons",
              "premium-brands",
              "amazon-brands"
            ],
            "type": "string",
            "description": "Which deals to pull.",
            "default": "all"
          },
          "dealsDepartmentId": {
            "title": "Deals department node ID",
            "type": "string",
            "description": "Optional Amazon department node ID to scope the deals (e.g. 16333373011)."
          },
          "dealsDiscountMin": {
            "title": "Minimum discount %",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Keep only deals at or above this discount percentage."
          },
          "dealsIsPrime": {
            "title": "Prime exclusive deals only",
            "type": "boolean",
            "description": "Keep only Prime-exclusive deals.",
            "default": false
          },
          "stopOnError": {
            "title": "Stop the whole run on the first error",
            "type": "boolean",
            "description": "If on, the run aborts as soon as one vertical / URL fails (e.g. UPSTREAM_BLOCKED). If off (default), the failure is logged with a free diagnostic row and the run continues.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}