# RuStore Release & Review Watch (`isolovyev/rustore-release-watch`) Actor

Monitor RuStore app releases, ratings and recent review changes.

- **URL**: https://apify.com/isolovyev/rustore-release-watch.md
- **Developed by:** [Ivan Solovyev](https://apify.com/isolovyev) (community)
- **Categories:** Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 complete app checks

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## RuStore Release & Review Watch

Track app versions, release notes, ratings and the latest RuStore reviews in repeatable observations. Compare an exact Android package with its previous complete observation and export results for product, support and competitor research.

### What you receive

Each complete app check includes the current version, release notes, update time, average rating, rating count and a recent review window. Review records preserve rating, text, timestamps and visible replies. Repeat checks identify changed app fields, new reviews and edits to previously observed reviews, including reply changes. An unchanged check still returns a complete app observation.

Use exact package names such as `com.vkontakte.android`. The default window is 50 recent reviews; the maximum is 100 per app and five apps per run. A window does not represent all historical reviews. Replies are retained as supplied by RuStore, including their source attribution.

### Inputs and history

Choose `monitor` for comparisons or `snapshot` for a current export. Give each independent comparison a `watchId`. History is isolated by the platform user, watch identifier and review window. A changed window starts a separate baseline. Complete checks advance history; incomplete checks return an error and preserve the previous baseline. Apps and reviews absent from the current window are not treated as removed.

Results contain `app_check`, `app_error` and `summary` records. Inspect `complete` before using a comparison. The output summary reports resource limits and coverage. Exports are available as JSON, CSV and Excel through Apify.

### Русский

Отслеживайте версии приложений, описание обновлений, средние оценки, свежие отзывы и видимые ответы RuStore. Повторная проверка показывает изменения полей приложения, новые отзывы и правки уже наблюдавшихся отзывов. Для каждого независимого наблюдения используйте отдельный `watchId`.

По умолчанию проверяются 50 свежих отзывов. Это окно наблюдения, а не полная история. Незавершённая проверка сохраняет прошлую базовую версию. Отсутствие приложения в ответе источника или выпадение отзыва из свежего окна не означает удаление.

# Actor input Schema

## `packages` (type: `array`):

Exact RuStore package names, up to five.

## `mode` (type: `string`):

Monitor compares complete observations in an isolated watch.

## `watchId` (type: `string`):

Use a different identifier for each independent watch.

## `maxReviews` (type: `integer`):

Recent review window, 0 to 100. Review history outside the window is not surveyed.

## `proxyConfiguration` (type: `object`):

Optional connection setting.

## Actor input object example

```json
{
  "packages": [
    "com.vkontakte.android"
  ],
  "mode": "monitor",
  "watchId": "default",
  "maxReviews": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "RU"
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "packages": [
        "com.vkontakte.android"
    ],
    "mode": "monitor",
    "watchId": "default",
    "maxReviews": 50,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "RU"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("isolovyev/rustore-release-watch").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "packages": ["com.vkontakte.android"],
    "mode": "monitor",
    "watchId": "default",
    "maxReviews": 50,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "RU",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("isolovyev/rustore-release-watch").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "packages": [
    "com.vkontakte.android"
  ],
  "mode": "monitor",
  "watchId": "default",
  "maxReviews": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "RU"
  }
}' |
apify call isolovyev/rustore-release-watch --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,isolovyev/rustore-release-watch"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/zXTcYdpPbqdsIx1od/builds/6p1SLywd1busLehBB/openapi.json
