{
  "openapi": "3.0.1",
  "info": {
    "title": "Amazon Product Scraper API - ASIN, Search, Bestsellers, Price",
    "description": "Amazon product data by ASIN, product URL, search, category or Best Sellers / New Releases list on 19 marketplaces. Full price, BSR, star breakdown, Buy Box seller and variants. Monitoring mode bills only products that changed. Failures are free, no run-start fee.",
    "version": "1.0",
    "x-build-id": "IeTyT2HwYCLhakbIN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/vonsensey~amazon-product-scraper-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-vonsensey-amazon-product-scraper-api",
        "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/vonsensey~amazon-product-scraper-api/runs": {
      "post": {
        "operationId": "runs-sync-vonsensey-amazon-product-scraper-api",
        "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/vonsensey~amazon-product-scraper-api/run-sync": {
      "post": {
        "operationId": "run-sync-vonsensey-amazon-product-scraper-api",
        "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": {
          "inputs": {
            "title": "ASINs, product URLs, searches or list URLs",
            "type": "array",
            "description": "One per line. Everything works here:\n\n• **An ASIN** — `B0CHX3QBCH` — read on the marketplace you pick below.\n• **A product URL** — `https://www.amazon.com/dp/B0CHX3QBCH` — on any marketplace.\n• **A search phrase** — `wireless earbuds` — or a full search URL.\n• **A category URL** — `https://www.amazon.com/s?rh=n%3A172282` or `/b?node=…`.\n• **A Best Sellers, New Releases or Movers & Shakers list URL.**\n\nMix them freely. Anything that cannot be used comes back as a free row saying exactly why, so nothing you type is dropped in silence.",
            "default": [
              "B0CHX3QBCH",
              "B07XLTPC5L",
              "0735211299"
            ],
            "items": {
              "type": "string"
            }
          },
          "mode": {
            "title": "What to collect",
            "enum": [
              "auto",
              "products",
              "search",
              "list"
            ],
            "type": "string",
            "description": "Leave on Auto and each input is handled by its shape — an ASIN becomes a product, a search becomes list rows, a Best Sellers URL becomes ranked rows. Pin it to one mode to reject anything of the wrong shape with a free error row instead of guessing.",
            "default": "auto"
          },
          "marketplace": {
            "title": "Marketplace for bare ASINs and searches",
            "enum": [
              "com",
              "co.uk",
              "de",
              "fr",
              "it",
              "es",
              "ca",
              "com.au",
              "in",
              "co.jp",
              "com.mx",
              "nl",
              "se",
              "pl",
              "com.br",
              "sg",
              "ae",
              "sa",
              "com.tr"
            ],
            "type": "string",
            "description": "Which Amazon a bare ASIN or a search phrase is read on. Full URLs carry their own marketplace and ignore this. The price and currency always match the marketplace you pick — a page served in another currency is refused as a free error row, never billed. amazon.com, .co.uk and .de are verified against captured pages; the other 16 are supported best-effort.",
            "default": "com"
          },
          "language": {
            "title": "Language",
            "enum": [
              "en",
              "native"
            ],
            "type": "string",
            "description": "English keeps titles and fields in English on every marketplace, so the same ASIN on .com, .co.uk and .de reads one way instead of three. Native returns each marketplace in its own language.",
            "default": "en"
          },
          "maxItemsPerInput": {
            "title": "Max items per input",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "How many products or list rows to return for each input. A search or category walks page by page until the site runs out or this cap is hit; a Best Sellers list returns up to 100 ranks across its two pages.",
            "default": 50
          },
          "maxItemsTotal": {
            "title": "Max items for the whole run",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "A hard ceiling on billable rows across every input in this run.",
            "default": 500
          },
          "maxPagesPerSearch": {
            "title": "Max pages per search",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many result pages to read for each search or category before stopping. Each page holds roughly 16 to 60 products.",
            "default": 3
          },
          "fetchProductDetails": {
            "title": "Fetch full product details for list rows",
            "type": "boolean",
            "description": "Off, a search or list returns the compact row the page prints. On, each row is read from its own product page instead — full price, BSR, Buy Box, variants and the rest — and is billed as a product, never as both. This also fills in the ranked-list rows a Best Sellers page lists by rank only.",
            "default": false
          },
          "includeVariants": {
            "title": "Include variant ASINs on the product",
            "type": "boolean",
            "description": "List the child ASINs and their named options (colour, size, style) on the product row. The variants themselves are not fetched unless you turn that on below.",
            "default": true
          },
          "fetchVariantDetails": {
            "title": "Fetch each variant as its own product",
            "type": "boolean",
            "description": "Read every listed variant ASIN as a full product row of its own. Off by default because a product with 30 colours becomes 30 billable rows.",
            "default": false
          },
          "onlyChangedSinceLastRun": {
            "title": "Only bill products that changed since the last run",
            "type": "boolean",
            "description": "The reason a daily or hourly schedule is worth running. A product whose watched fields have not moved since the last run of this feed comes back as a free 'unchanged' row and is never re-charged — so a quiet re-run costs almost nothing.",
            "default": false
          },
          "stateName": {
            "title": "Feed name",
            "type": "string",
            "description": "Names the memory used by 'only changed since the last run'. Give two schedules two different names and they track separately; leave it empty to share one feed.",
            "default": ""
          },
          "changeFields": {
            "title": "Fields that count as a change",
            "type": "array",
            "description": "Which fields decide whether a product is billed again on a re-run. Title and description are left out by default on purpose — sellers re-word those constantly and you would re-pay for a typo fix.",
            "items": {
              "type": "string",
              "enum": [
                "price",
                "listPrice",
                "availability",
                "salesRank",
                "buyBoxSeller",
                "rating",
                "ratingsCount",
                "title",
                "dealBadge",
                "coupon"
              ],
              "enumTitles": [
                "Price",
                "List price",
                "Availability",
                "Sales rank (BSR)",
                "Buy Box seller",
                "Rating",
                "Ratings count",
                "Title",
                "Deal badge",
                "Coupon"
              ]
            },
            "default": [
              "price",
              "availability",
              "salesRank",
              "buyBoxSeller"
            ]
          },
          "maxCostUsd": {
            "title": "Stop after this much spend (USD)",
            "minimum": 0,
            "type": "number",
            "description": "A hard ceiling on what this run can cost. Leave empty for no ceiling. Set it to 0 for a dry run: nothing billable is delivered and you get only the free error and coverage rows."
          },
          "concurrency": {
            "title": "Inputs fetched in parallel",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Lower is gentler and slower; the default suits almost every run.",
            "default": 3
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}