{
  "openapi": "3.0.1",
  "info": {
    "title": "Wildberries Scraper - Products, Prices, Reviews",
    "description": "Scrape Wildberries marketplace: product search with prices (wallet vs retail), discounts, stock, ratings and seller data. Paste product or seller links for review analytics and seller registration info. Incremental monitoring with NEW, UPDATED, REAPPEARED, EXPIRED, resume and MCP export.",
    "version": "0.1",
    "x-build-id": "a895ai4zks1uqfXzx"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/abotapi~wildberries-marketplace-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-abotapi-wildberries-marketplace-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/abotapi~wildberries-marketplace-scraper/runs": {
      "post": {
        "operationId": "runs-sync-abotapi-wildberries-marketplace-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/abotapi~wildberries-marketplace-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-abotapi-wildberries-marketplace-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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "url"
            ],
            "type": "string",
            "description": "Search looks up products by keyword. URL mode reads specific Wildberries pages you paste: search pages, product pages (reviews) and seller pages.",
            "default": "search"
          },
          "query": {
            "title": "Search query",
            "type": "string",
            "description": "Search mode: a product keyword, for example 'iphone', 'nike shoes' or a Russian phrase like 'ноутбук'. Used with the sort and filter fields below.",
            "default": "iphone"
          },
          "urls": {
            "title": "Wildberries links",
            "type": "array",
            "description": "URL mode: pages to read, one per line. Search links (a search page with a search term) are walked forward with pagination. Product links return the product's review surface and rating summary. Seller links return the seller's registration data. Category, brand and promotion pages are not supported: each is skipped with a warning in the log. Multi-value supported.",
            "default": [
              "https://www.wildberries.ru/catalog/0/search.aspx?search=headphones",
              "https://www.wildberries.ru/catalog/186510487/detail.aspx",
              "https://www.wildberries.ru/seller/250150687"
            ],
            "items": {
              "type": "string"
            }
          },
          "ignoreUrlFailures": {
            "title": "Ignore URL failures",
            "type": "boolean",
            "description": "On: a pasted link that is not supported is skipped with a warning and the other links are still read. Off: the run fails when any link is not supported.",
            "default": true
          },
          "maxItemsPerUrl": {
            "title": "Max items per link",
            "minimum": 1,
            "type": "integer",
            "description": "Cap on records read from each pasted link. Empty splits Max items evenly across the links."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "popular",
              "priceup",
              "pricedown",
              "rate",
              "newly"
            ],
            "type": "string",
            "description": "Ordering of the results. Price ascending and Price descending also re-order the collected rows so the ordering holds.",
            "default": "popular"
          },
          "priceMin": {
            "title": "Min price (RUB)",
            "minimum": 0,
            "type": "integer",
            "description": "Only collect products priced at or above this many rubles, applied to the collected results. Leave empty for no lower bound."
          },
          "priceMax": {
            "title": "Max price (RUB)",
            "minimum": 0,
            "type": "integer",
            "description": "Only collect products priced at or below this many rubles, applied to the collected results. Leave empty for no upper bound."
          },
          "minRating": {
            "title": "Min rating (1-5)",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Only collect products rated at or above this value (integers 1 to 5). Leave empty for no rating filter."
          },
          "minFeedbacks": {
            "title": "Min review count",
            "minimum": 0,
            "type": "integer",
            "description": "Only collect products with at least this many customer reviews. Leave empty for no review filter."
          },
          "onlyWithDiscount": {
            "title": "Only discounted products",
            "type": "boolean",
            "description": "Collect only products whose current wallet price is below the retail price.",
            "default": false
          },
          "deliveryTime": {
            "title": "Delivery time",
            "enum": [
              "",
              "4",
              "12",
              "24",
              "48",
              "72",
              "120"
            ],
            "type": "string",
            "description": "Only collect products the marketplace can deliver within this window. This is a client-side approximation applied to the collected results: it uses the shortest delivery estimate across a product's sizes (the sum of the card's two delivery-time values, in hours), and products whose card carries no delivery estimate are left out (the log says how many per page). Empty means any.",
            "default": ""
          },
          "fetchDetails": {
            "title": "Fetch full product details",
            "type": "boolean",
            "description": "When on, each collected product additionally gets its full detail card (description, characteristics) when the source serves it. Full details add a per-product surcharge.",
            "default": false
          },
          "maxFeedbacksPerProduct": {
            "title": "Max reviews per product",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Attach up to this many recent customer reviews to each product record (reviewer, rating, date, text, pros and cons, seller reply, helpful votes). 0 skips reviews entirely; the cap is 1000 per product. The rating summary and totals are always included.",
            "default": 20
          },
          "includeMetaData": {
            "title": "Include raw card metadata",
            "type": "boolean",
            "description": "Add the marketplace's raw card metadata object (meta) to each product row. Off by default.",
            "default": false
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of records to return across the whole run. 0 means no item limit: the run stops at Max pages or at the natural end of the results.",
            "default": 20
          },
          "maxPages": {
            "title": "Max pages per scope",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of result pages to read per search or link. Leave 0 or empty to use the built-in limit of 20 pages per scope; raise it to scan deeper. Max items remains the other stop condition.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "This marketplace refuses many plain hosting connections. For reliable runs choose a higher connection tier in these settings if your plan includes one; the run rotates fresh exits automatically either way and tells you plainly when the selected connection is likely to be refused."
          },
          "resumeFromRunId": {
            "title": "Resume from a previous run",
            "type": "string",
            "description": "Run id of a previous run of this actor: its collected record ids are seeded as already-seen, so a continued run does not return them again."
          },
          "incrementalMode": {
            "title": "Incremental changes for scheduled runs",
            "type": "boolean",
            "description": "Remember the previous run of the same search and stamp each record NEW, UPDATED, UNCHANGED or EXPIRED. Only changed rows are emitted by default. A record counts as UPDATED when a compared field changes: price, discount, stock, rating, review count and review totals, name, brand, seller, delivery times, warehouses, colors, image, description and characteristics. The attached review rows, the position in the results and the scrape time are never compared.",
            "default": false
          },
          "stateKey": {
            "title": "State key (optional, incremental mode only)",
            "type": "string",
            "description": "Name for this monitoring campaign's saved baseline. Give different searches different keys so their baselines never mix."
          },
          "emitUnchanged": {
            "title": "Emit unchanged records (incremental mode only)",
            "type": "boolean",
            "description": "Also return rows that did not change since the previous run. This returns and bills extra rows.",
            "default": false
          },
          "emitExpired": {
            "title": "Emit expired records (incremental mode only)",
            "type": "boolean",
            "description": "Also return rows tracked earlier that the source no longer returns in a complete scan. This returns and bills extra rows.",
            "default": false
          },
          "ignoreFieldsForChanges": {
            "title": "Ignore fields when detecting changes (incremental mode only)",
            "type": "array",
            "description": "Optional. Field names to leave out of UPDATED change detection, in addition to the built-in handling (the attached review rows, the position in the results and the scrape time never trigger an UPDATED). Use a dotted name such as feedbackSummary.withPhoto to ignore a nested field. The ignored fields are still returned in the output.",
            "items": {
              "type": "string"
            }
          },
          "mcpConnectors": {
            "title": "Pipe results into your apps (optional)",
            "type": "array",
            "description": "Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify → Settings → API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write/digest. Leave empty to skip: never changes the dataset output. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com)."
          },
          "notionParentPageUrl": {
            "title": "Notion parent page (Notion connector only)",
            "type": "string",
            "description": "URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors."
          },
          "maxNotifyListings": {
            "title": "Max items to export per connector",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Cap on items written to each connector per run. Does not affect the dataset.",
            "default": 50
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}