{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Product Scraper | $0.50 per 1K Results",
    "description": "Scrape Amazon products by keyword, URL, ASIN, category, or seller across 20 marketplaces. Extract prices, ratings, reviews, sellers, images, variants, availability, and bestseller ranks. Run in Console or by API, schedule Tasks, and pay $0.50 per 1,000 results on paid plans.",
    "version": "1.0",
    "x-build-id": "Esu7RfxE0X4WSECfQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tovuk~amazon-product-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tovuk-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/tovuk~amazon-product-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tovuk-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/tovuk~amazon-product-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tovuk-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": {
          "query": {
            "title": "Search query",
            "minLength": 1,
            "maxLength": 512,
            "type": "string",
            "description": "Enter one Amazon search phrase. Start here for a small first run."
          },
          "searchQueries": {
            "title": "Search queries",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Enter up to 50 Amazon search phrases. Each phrase can contain up to 512 characters.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            }
          },
          "startUrls": {
            "title": "Start URLs",
            "maxItems": 200,
            "uniqueItems": true,
            "type": "array",
            "description": "Add up to 200 Amazon search, product, category, bestseller, seller, review, offer, or question URLs.",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "url": {
                  "title": "Amazon URL",
                  "type": "string",
                  "description": "One HTTPS URL from a supported Amazon domain.",
                  "minLength": 1,
                  "maxLength": 2048
                }
              },
              "required": [
                "url"
              ]
            }
          },
          "productUrls": {
            "title": "Product URLs",
            "maxItems": 200,
            "uniqueItems": true,
            "type": "array",
            "description": "Add up to 200 Amazon product-detail URLs.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 2048
            }
          },
          "asins": {
            "title": "ASINs",
            "maxItems": 200,
            "uniqueItems": true,
            "type": "array",
            "description": "Add up to 200 ten-character Amazon Standard Identification Numbers.",
            "items": {
              "type": "string",
              "pattern": "^[A-Za-z0-9]{10}$",
              "maxLength": 10
            }
          },
          "categoryUrls": {
            "title": "Bestseller or category-chart URLs",
            "maxItems": 100,
            "uniqueItems": true,
            "type": "array",
            "description": "Add up to 100 Amazon category-chart, Best Sellers, New Releases, Movers and Shakers, Most Wished For, or Gift Ideas URLs. Put search-category URLs under Start URLs instead.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 2048
            }
          },
          "categoryIds": {
            "title": "Bestseller category IDs",
            "maxItems": 100,
            "uniqueItems": true,
            "type": "array",
            "description": "Add up to 100 Amazon bestseller category identifiers. Use category URLs when you already have full URLs.",
            "items": {
              "type": "string",
              "pattern": "^[A-Za-z0-9/_-]+$",
              "maxLength": 128
            }
          },
          "sellerUrls": {
            "title": "Seller URLs",
            "maxItems": 100,
            "uniqueItems": true,
            "type": "array",
            "description": "Add up to 100 Amazon seller or storefront URLs.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 2048
            }
          },
          "operation": {
            "title": "Operation",
            "enum": [
              "auto",
              "search",
              "product",
              "reviews",
              "offers",
              "seller",
              "bestsellers",
              "asins",
              "questions"
            ],
            "type": "string",
            "description": "Leave Auto selected to infer one compatible operation for the run. Every supplied target must match that operation; split incompatible page types into separate runs.",
            "default": "auto"
          },
          "marketplace": {
            "title": "Amazon marketplace",
            "enum": [
              "amazon.ae",
              "amazon.ca",
              "amazon.co.jp",
              "amazon.co.uk",
              "amazon.com",
              "amazon.com.au",
              "amazon.com.be",
              "amazon.com.br",
              "amazon.com.mx",
              "amazon.com.tr",
              "amazon.de",
              "amazon.es",
              "amazon.fr",
              "amazon.in",
              "amazon.it",
              "amazon.nl",
              "amazon.pl",
              "amazon.sa",
              "amazon.se",
              "amazon.sg"
            ],
            "type": "string",
            "description": "Choose the Amazon domain used to build query, ASIN, and category-ID targets. Explicit URLs must use a supported Amazon domain.",
            "default": "amazon.com"
          },
          "deliveryLocation": {
            "title": "Delivery location",
            "minLength": 1,
            "maxLength": 128,
            "type": "string",
            "description": "Optional city, ZIP code, or postal code for delivery-localized results. Do not enter a full personal address."
          },
          "proxyCountryCode": {
            "title": "Retrieval country hint",
            "pattern": "^[A-Za-z]{2}$",
            "minLength": 2,
            "maxLength": 2,
            "type": "string",
            "description": "Optional two-letter country hint for managed retrieval. This field does not accept proxy credentials or URLs."
          },
          "proxyCity": {
            "title": "Retrieval city hint",
            "pattern": "^[\\p{L}\\p{M}\\p{N} ._'’-]+$",
            "minLength": 1,
            "maxLength": 80,
            "type": "string",
            "description": "Optional international city hint containing Unicode letters, marks, numbers, spaces, periods, apostrophes, hyphens, or underscores."
          },
          "language": {
            "title": "Language",
            "pattern": "^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})?$",
            "minLength": 2,
            "maxLength": 16,
            "type": "string",
            "description": "Optional language or locale hint, such as en-US, de-DE, or ja-JP."
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Keep product rows whose parsed rating is at least this value. Rows without a parsed rating do not match an active minimum."
          },
          "minReviews": {
            "title": "Minimum review count",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Keep product rows whose parsed review count is at least this value. Rows without a parsed review count do not match an active minimum."
          },
          "titleIncludeKeywords": {
            "title": "Title must include",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Keep product rows whose title contains at least one of up to 50 terms, matched case-insensitively.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          },
          "titleExcludeKeywords": {
            "title": "Title must not include",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Remove product rows whose title contains any of up to 50 terms, matched case-insensitively.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          },
          "excludeSponsored": {
            "title": "Exclude sponsored results",
            "type": "boolean",
            "description": "Remove rows identified by a sponsored badge or ad position.",
            "default": false
          },
          "maxReviews": {
            "title": "Maximum review samples per product",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Limit nested reviewSamples after review filters are applied. Use 0 or leave empty to keep every sample Amazon exposes on the fetched page.",
            "default": 0
          },
          "reviewRatings": {
            "title": "Review sample ratings",
            "maxItems": 5,
            "uniqueItems": true,
            "type": "array",
            "description": "Keep nested reviewSamples in the selected integral star buckets. This filters available samples; it does not create separate full-review rows.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5"
              ],
              "enumTitles": [
                "1 star",
                "2 stars",
                "3 stars",
                "4 stars",
                "5 stars"
              ]
            }
          },
          "reviewKeywords": {
            "title": "Review sample keywords",
            "maxItems": 50,
            "uniqueItems": true,
            "type": "array",
            "description": "Keep nested reviewSamples containing at least one of up to 50 terms in their parsed text.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          },
          "reviewsStartDate": {
            "title": "Review samples from date",
            "pattern": "^\\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])$",
            "minLength": 10,
            "maxLength": 10,
            "type": "string",
            "description": "Inclusive lower date bound for nested reviewSamples, in YYYY-MM-DD format."
          },
          "reviewsEndDate": {
            "title": "Review samples through date",
            "pattern": "^\\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])$",
            "minLength": 10,
            "maxLength": 10,
            "type": "string",
            "description": "Inclusive upper date bound for nested reviewSamples, in YYYY-MM-DD format."
          },
          "reviewSort": {
            "title": "Review sample order",
            "enum": [
              "relevance",
              "newest",
              "oldest",
              "highest",
              "lowest"
            ],
            "type": "string",
            "description": "Sort available nested reviewSamples by source relevance, date, or rating.",
            "default": "relevance"
          },
          "maxItems": {
            "title": "Maximum results",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Maximum product records requested for the run. Set 0 for no separate item ceiling; page, target, timeout, and spending controls still bound the run. The actual count can be lower when Amazon exposes fewer records. A handled zero-product outcome can add exactly one billed diagnostic Dataset item.",
            "default": 10
          },
          "continuationCursor": {
            "title": "Continuation cursor",
            "minLength": 1,
            "maxLength": 8192,
            "type": "string",
            "description": "Optional opaque cursor copied from CONTINUATION after an item, spending, or time boundary. Keep the same targets, filters, marketplace, operation, and output fields."
          },
          "maxPages": {
            "title": "Maximum pages",
            "minimum": 1,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Maximum source pages requested per target. The Actor continues through opaque backend chunks, and Amazon can expose fewer pages than requested.",
            "default": 1
          },
          "enablePagination": {
            "title": "Enable pagination",
            "type": "boolean",
            "description": "Allow traversal up to Maximum pages. Disable this to process only the first source page.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Maximum concurrent page requests",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "Maximum Amazon source pages requested concurrently. Lower this when a target is sensitive to parallel requests.",
            "default": 4
          },
          "outputFields": {
            "title": "Output fields",
            "maxItems": 86,
            "uniqueItems": true,
            "type": "array",
            "description": "Optional product-field projection. Select any of the 86 supported fields, or leave empty to preserve every available field. Required identity and Actor metadata fields are always retained.",
            "items": {
              "type": "string",
              "enum": [
                "adPosition",
                "asin",
                "availability",
                "badges",
                "bestSellerRanks",
                "brandName",
                "breadcrumbs",
                "browseNodeIds",
                "categoryPath",
                "color",
                "condition",
                "countryCode",
                "currency",
                "customerPhotoUrls",
                "deliveryLocation",
                "description",
                "detailEnriched",
                "detailSourceUrl",
                "discountPercent",
                "discountText",
                "extractionQuality",
                "featureBullets",
                "featureCoverage",
                "freeShipping",
                "fulfilledBy",
                "gtin",
                "imageUrls",
                "inStock",
                "keywords",
                "language",
                "listPriceText",
                "listPriceValue",
                "listedAt",
                "listingId",
                "manufacturer",
                "marketplace",
                "minimumOrderQuantity",
                "modelNumber",
                "mpn",
                "offerCount",
                "offerDetails",
                "operation",
                "packageQuantity",
                "parentProductId",
                "partNumber",
                "priceRange",
                "priceText",
                "priceValue",
                "primaryImageUrl",
                "primeEligible",
                "productId",
                "questionCount",
                "questionSamples",
                "quantity",
                "rating",
                "ratingCount",
                "ratingHistogram",
                "rawTextExcerpt",
                "recentSalesText",
                "refreshedAt",
                "region",
                "requestedFeatures",
                "resultPosition",
                "reviewCount",
                "reviewSamples",
                "salePriceText",
                "salesText",
                "searchPage",
                "sellerId",
                "sellerName",
                "sellerUrl",
                "shippingText",
                "shipsFrom",
                "size",
                "sku",
                "soldBy",
                "soldCount",
                "sourceUrl",
                "specifications",
                "style",
                "tags",
                "title",
                "url",
                "variantDetails",
                "variationTheme",
                "videoUrls"
              ],
              "enumTitles": [
                "Ad position",
                "ASIN",
                "Availability",
                "Badges",
                "Best seller ranks",
                "Brand",
                "Breadcrumbs",
                "Browse node IDs",
                "Category path",
                "Color",
                "Condition",
                "Country",
                "Currency",
                "Customer photos",
                "Delivery location",
                "Description",
                "Detail enriched",
                "Detail source URL",
                "Discount percent",
                "Discount",
                "Extraction quality",
                "Feature bullets",
                "Feature coverage",
                "Free shipping",
                "Fulfilled by",
                "GTIN",
                "Images",
                "In stock",
                "Keywords",
                "Language",
                "List price",
                "List price value",
                "Listed at",
                "Listing ID",
                "Manufacturer",
                "Marketplace",
                "Minimum order quantity",
                "Model number",
                "MPN",
                "Offer count",
                "Offer details",
                "Operation",
                "Package quantity",
                "Parent product ID",
                "Part number",
                "Price range",
                "Price",
                "Price value",
                "Primary image",
                "Prime eligible",
                "Product ID",
                "Question count",
                "Question samples",
                "Available quantity",
                "Rating",
                "Rating count",
                "Rating histogram",
                "Text excerpt",
                "Recent sales",
                "Refreshed at",
                "Region",
                "Requested features",
                "Result position",
                "Review count",
                "Review samples",
                "Sale price",
                "Sales text",
                "Search page",
                "Seller ID",
                "Seller",
                "Seller URL",
                "Shipping",
                "Ships from",
                "Size",
                "SKU",
                "Sold by",
                "Sold count",
                "Source URL",
                "Specifications",
                "Style",
                "Tags",
                "Title",
                "Amazon URL",
                "Variants",
                "Variation theme",
                "Videos"
              ]
            }
          },
          "timeoutSecs": {
            "title": "Actor timeout",
            "minimum": 30,
            "maximum": 3600,
            "type": "integer",
            "description": "Maximum time to wait for the request and paginated results before failing with a sanitized error.",
            "default": 240
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}