{
  "openapi": "3.0.1",
  "info": {
    "title": "Wildberries Competitor Tracker: Rank & Reviews | Парсер WB ВБ",
    "description": "Track Wildberries (Вайлдберриз) search rank, ratings and review growth for your products and competitors. Watch the top results of any keyword, spot new entrants and rank changes, and schedule daily monitoring. Adds seller details and recorded price history where available.",
    "version": "1.2",
    "x-build-id": "0xSiPbf9feVNk7nQ0"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~wildberries-price-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-wildberries-price-tracker",
        "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/getascraper~wildberries-price-tracker/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-wildberries-price-tracker",
        "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/getascraper~wildberries-price-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-wildberries-price-tracker",
        "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": {
          "trackKeywords": {
            "title": "Keywords to rank-check",
            "type": "array",
            "description": "Search phrases to check on Wildberries. Each entry is a phrase or an object like {\"keyword\": \"детские игрушки\", \"targetNmIds\": [\"451609060\"]}. With target product IDs you get their exact position (empty when they are outside the scanned results). Without targets you get the top results of the phrase."
          },
          "nmIds": {
            "title": "Product IDs",
            "type": "array",
            "description": "Wildberries product article numbers (NM-IDs) to read rating, review count, seller and recorded price history for. The number is in the product link: /catalog/123456/detail.aspx.",
            "items": {
              "type": "string"
            }
          },
          "productUrls": {
            "title": "Product URLs",
            "type": "array",
            "description": "Wildberries product page links. The product ID is taken from each link automatically.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "watchTopN": {
            "title": "Competitor watch: top N results",
            "minimum": 0,
            "maximum": 300,
            "type": "integer",
            "description": "Also return the top N search results of every keyword as competitor rows, so you can see who sits above you and who enters or leaves the top. 0 means automatic: 30 for keywords without target products, none for keywords that have targets. Wildberries shows at most 300 results per phrase.",
            "default": 0
          },
          "maxRankPages": {
            "title": "Search depth (pages of 100)",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many pages of 100 results to scan per keyword when looking for your target products. Wildberries exposes at most 300 results per phrase, so values above 3 scan the same 300.",
            "default": 10
          },
          "includeRatings": {
            "title": "Rating and review count",
            "type": "boolean",
            "description": "Add the buyer rating and the number of reviews to every row. This is what lets you track review growth between runs.",
            "default": true
          },
          "includePriceHistory": {
            "title": "Recorded price history",
            "type": "boolean",
            "description": "Add the last recorded price and its date, plus the lowest and highest recorded price, for products where Wildberries publishes a price history (a minority of products). Product rows also get the full list of recorded prices. This is not the live shelf price.",
            "default": true
          },
          "includeSeller": {
            "title": "Seller details",
            "type": "boolean",
            "description": "Add the seller name, ID, legal name and tax number (INN) to every row.",
            "default": true
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Give this tracker a short name (letters, digits, dashes) to compare every run with the previous run of the same name. Rows then show NEW, UPDATED, UNCHANGED or LEFT_TOP plus the rank, rating and review changes. Leave empty to just collect data."
          },
          "onlyChanges": {
            "title": "Only save changed rows",
            "type": "boolean",
            "description": "With a monitor name set, skip rows that did not change since the previous run, so you are only charged for movement. Does nothing without a monitor name.",
            "default": false
          },
          "rankChangeThreshold": {
            "title": "Rank change that counts",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "Smallest move in search position that marks a row as UPDATED. Use a larger number to ignore small daily wobble.",
            "default": 1
          },
          "feedbacksChangeThreshold": {
            "title": "Review growth that counts",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Smallest change in the review count that marks a row as UPDATED. Raise it for popular products that collect reviews every day.",
            "default": 1
          },
          "maxItems": {
            "title": "Max rows",
            "minimum": 0,
            "type": "integer",
            "description": "Hard cap on the total rows saved in one run. 0 means no cap. Runs on the free Apify plan are capped at 25 rows.",
            "default": 0
          },
          "region": {
            "title": "Region (not used)",
            "enum": [
              "MOSCOW",
              "KRASNODAR",
              "NOVOSIBIRSK",
              "EKATERINBURG",
              "KAZAHSTAN",
              "ST_PETERSBURG"
            ],
            "type": "string",
            "description": "Kept so saved tasks keep working. Positions come from the public search that every visitor sees, so the region no longer changes the result.",
            "default": "MOSCOW"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Used only as a fallback when Wildberries stops answering direct requests. The Apify datacenter proxy is tried first, then residential.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}