{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Real-time Scraper",
    "description": "Scrape Amazon products, full customer reviews (NO login / NO cookie), offers, sellers, bestsellers, deals and influencer storefronts in one run. ASINs, search queries or URLs in - clean structured rows out. Pay only per result, no subscription.",
    "version": "1.0",
    "x-build-id": "6yKnFarmTeNZ85PIY"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jdtpnjtp~amazon/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jdtpnjtp-amazon",
        "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/runs": {
      "post": {
        "operationId": "runs-sync-jdtpnjtp-amazon",
        "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/run-sync": {
      "post": {
        "operationId": "run-sync-jdtpnjtp-amazon",
        "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": {
          "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 **Reviews** is selected, its reviews are pulled too. Optional if you provide search queries / URLs.",
            "items": {
              "type": "string"
            }
          },
          "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.",
            "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, an offer-listing or a reviews page. Each is auto-detected and parsed into its own row(s), independent of the data types below.",
            "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 fetch seller products' to list each seller's catalog too.",
            "items": {
              "type": "string"
            }
          },
          "influencerUsernames": {
            "title": "Influencer usernames",
            "uniqueItems": true,
            "type": "array",
            "description": "Amazon influencer / creator storefront usernames (e.g. `mkbhd`). Pulled as a profile + recommended products when **Influencers** is selected.",
            "items": {
              "type": "string"
            }
          },
          "dataTypes": {
            "title": "Data types to scrape",
            "uniqueItems": true,
            "type": "array",
            "description": "Which Amazon verticals to pull. Defaults to all. 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": [
                "products",
                "reviews",
                "offers",
                "sellers",
                "bestsellers",
                "deals",
                "influencers"
              ],
              "enumTitles": [
                "📦 Products (search + ASIN detail)",
                "📝 Reviews (across all star ratings)",
                "🏷 Offers (all sellers for an ASIN)",
                "🏪 Sellers (merchant profiles)",
                "🏆 Bestsellers / new releases",
                "🔥 Deals",
                "🌟 Influencer storefronts"
              ]
            },
            "default": [
              "products",
              "reviews",
              "offers",
              "sellers",
              "bestsellers",
              "deals",
              "influencers"
            ]
          },
          "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, reviews 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
          },
          "includeReviews": {
            "title": "Also harvest reviews for every product",
            "type": "boolean",
            "description": "When on, reviews are pulled for every ASIN you supply AND every product returned by your searches. If you tick the **Reviews** data type this is implied. Each review billed as one `review` event.",
            "default": false
          },
          "reviewStarFilter": {
            "title": "Review star filter",
            "enum": [
              "all_stars",
              "five_star",
              "four_star",
              "three_star",
              "two_star",
              "one_star",
              "positive",
              "critical"
            ],
            "type": "string",
            "description": "Which reviews to keep. Default returns the deduped set across all star ratings; pick a single rating or sentiment to narrow it.",
            "default": "all_stars"
          },
          "reviewSort": {
            "title": "Review sort",
            "enum": [
              "recent",
              "helpful"
            ],
            "type": "string",
            "description": "Order of harvested reviews.",
            "default": "recent"
          },
          "searchSortBy": {
            "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 results.",
            "default": "RELEVANCE"
          },
          "searchCategoryId": {
            "title": "Category node ID",
            "type": "string",
            "description": "Optional Amazon category node ID to restrict the search to a department."
          },
          "searchBrand": {
            "title": "Brand filter",
            "type": "string",
            "description": "Restrict results to one or more brands (comma-separated)."
          },
          "searchMinPrice": {
            "title": "Min price",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price filter (whole units of the marketplace currency)."
          },
          "searchMaxPrice": {
            "title": "Max price",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price filter (whole units of the marketplace currency)."
          },
          "searchMinRating": {
            "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": ""
          },
          "searchIsPrime": {
            "title": "Prime eligible only",
            "type": "boolean",
            "description": "Keep only Prime-eligible search results.",
            "default": false
          },
          "searchCondition": {
            "title": "Item condition",
            "enum": [
              "ALL",
              "NEW",
              "USED",
              "RENEWED",
              "COLLECTIBLE"
            ],
            "type": "string",
            "description": "Filter search results by item condition.",
            "default": "ALL"
          },
          "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 category",
            "type": "string",
            "description": "Category slug for the bestsellers / new-releases lists (e.g. electronics, books, toys, kitchen).",
            "default": "electronics"
          },
          "includeNewReleases": {
            "title": "Also pull new releases",
            "type": "boolean",
            "description": "When on, the new-releases list for the same category is pulled alongside the bestsellers list.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}