# Yandex Maps Reviews Scraper — Keyless Business Reviews (`logiover/yandex-maps-reviews-scraper`) Actor

Scrape Yandex Maps business reviews by search query or business URL. Extract rating, review text, date, author, likes/dislikes & owner replies. 500+ reviews per run. No API key, no login.

- **URL**: https://apify.com/logiover/yandex-maps-reviews-scraper.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** Travel, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Yandex Maps Reviews Scraper — Keyless Business Reviews

Scrape **Yandex Maps business reviews** by search query or business URL — no API key, no login, no cookies. Get clean, structured JSON with the review text, 1–5 star rating, date, author (and their local-expert level), likes/dislikes, and the owner's reply, plus each business's overall rating and total review count. Export **500+ reviews per run** to CSV, Excel, JSON or Google Sheets.

> Yandex Maps is the dominant maps and local-business platform across Russia, CIS, Turkey and beyond — the regional equivalent of Google Maps. If you do reputation management, local SEO, or competitive research in these markets, Yandex reviews are essential data that most tools ignore. This actor turns them into a spreadsheet.

---

### What does Yandex Maps Reviews Scraper do?

Yandex Maps server-renders the most-recent reviews and the search results straight into each page, so this actor reads that data directly over plain HTTP — no fragile browser automation, no token handshakes. It supports two modes:

- **Search mode** — give it a text query like `coffee moscow` or `hotels sochi`. It finds the businesses Yandex returns for that query (up to ~25 per search), then pulls each business's reviews. One query easily yields 500+ reviews across a dozen-plus businesses, making it perfect for analysing a whole category in a city.
- **URLs mode** — give it a list of specific Yandex Maps business URLs and it scrapes the reviews for exactly those places — ideal for monitoring your own locations and named competitors.

For every review you get the star rating, full text, publish date, like/dislike counts, the author's name and Yandex "Local Expert" level, and the business owner's reply if there is one. Each row also carries business-level context: name, address, category, phone, overall rating and total review count.

---

### Who is it for?

- **Reputation & brand managers** monitoring what customers say about their locations on Yandex.
- **Local SEO agencies** tracking ratings, review velocity and sentiment for clients in Russia/CIS/Turkey.
- **Market researchers & analysts** studying customer sentiment across a category or city.
- **Franchise & multi-location businesses** aggregating reviews for dozens of branches into one dataset.
- **Data teams & developers** who need a reliable, keyless Yandex reviews feed for dashboards, BI or AI.

---

### Use cases

- **Competitive benchmarking** — scrape every coffee shop in a city and compare average ratings, review counts and complaints.
- **Reputation monitoring** — pull the latest reviews for your locations on a schedule and alert on new negatives.
- **Sentiment & topic analysis** — feed review text into an LLM or NLP pipeline to surface recurring themes.
- **Owner-response auditing** — see which reviews got an owner reply (and how fast) using the `ownerReply` fields.
- **Lead generation** — build lists of businesses in a niche with their phone, address, rating and review volume.

---

### Why use Yandex Maps Reviews Scraper?

- **100% keyless** — no Yandex account, no API key, no login, no cookies. Enter a query and press Start.
- **Two ways to target** — broad discovery by search query, or precise scraping by business URL.
- **Rich review data** — rating, text, date, author + expert level, likes/dislikes, and owner replies.
- **Business context on every row** — name, address, category, phone, overall rating, total reviews.
- **Built for volume** — 500+ reviews per run via multi-business breadth; up to 50,000.
- **Fast & cheap** — pure HTTP (no browser) on 512 MB; a 600-review run finishes in seconds. Pay per result.

---

### What data can you extract?

Every run produces a flat, spreadsheet-friendly dataset — one row per review.

| Field | Type | Description |
|-------|------|-------------|
| `businessName` | string | Business name |
| `businessAddress` | string | Business address |
| `businessRating` | number | Business overall rating (avg) |
| `businessReviewCount` | number | Total number of reviews for the business |
| `businessCategories` | array | Business categories |
| `businessPhone` | string | Business phone (when available) |
| `businessId` | string | Yandex organization ID |
| `businessUrl` | string | Yandex Maps business URL |
| `reviewId` | string | Unique review ID |
| `rating` | number | This review's star rating (1–5) |
| `text` | string | Review body |
| `textLanguage` | string | Detected review language |
| `publishedAt` | string (ISO) | Review date/time |
| `likes` | number | Like count on the review |
| `dislikes` | number | Dislike count on the review |
| `photosCount` | number | Number of photos attached to the review |
| `pinned` | boolean | Whether the review is pinned |
| `authorName` | string | Reviewer name |
| `authorLevel` | string | Reviewer's Yandex "Local Expert" level |
| `authorAvatar` | string | Reviewer avatar URL |
| `ownerReply` | string | Business owner's reply text (if any) |
| `ownerReplyAt` | string (ISO) | Owner reply date/time |
| `reviewsUrl` | string | Business reviews page URL |
| `sourceUrl` | string | The URL this review was scraped from |
| `_mode` | string | `search` or `urls` |
| `scrapedAt` | string (ISO) | Scrape timestamp |

#### Example output

```json
{
  "businessId": "115736401897",
  "businessName": "Galki",
  "businessAddress": "Strastnoy Boulevard, 4с3",
  "businessRating": 4.9,
  "businessReviewCount": 5092,
  "businessCategories": ["Bar, pub", "Restaurant"],
  "businessPhone": "+7 495 123-45-67",
  "businessUrl": "https://yandex.com/maps/org/115736401897/",
  "reviewId": "q9i_t4avHSVrGp_ud79iI0gjNEQXstl2-",
  "rating": 5,
  "text": "Всю неделю думали, куда пойти вечером, и по рекомендации друзей выбрали «Галки» ...",
  "textLanguage": "ru",
  "publishedAt": "2026-02-27T14:30:20.591Z",
  "likes": 3,
  "dislikes": 11,
  "photosCount": 2,
  "authorName": "Alex Vasiliev",
  "authorLevel": "Level 16 Local Expert",
  "ownerReply": "Обняли всей командой! 🐦🖤 При следующем визите шепните ребятам ...",
  "ownerReplyAt": "2026-03-01T09:12:00.000Z",
  "reviewsUrl": "https://yandex.com/maps/org/115736401897/reviews/",
  "_mode": "search",
  "scrapedAt": "2026-07-25T13:06:15.234Z"
}
````

***

### How to use

#### Option A — Search by query (default)

1. Set **Mode** to *Search by query*.
2. Add one or more **Search queries**, e.g. `coffee moscow`, `restaurants saint petersburg`.
3. Set **Max reviews** (e.g. `500`) and press **Start**.

```json
{
  "mode": "search",
  "queries": ["coffee moscow", "restaurants saint petersburg"],
  "maxResults": 500,
  "maxReviewsPerPlace": 50
}
```

#### Option B — Specific business URLs

1. Set **Mode** to *Specific business URLs*.
2. Paste Yandex Maps business URLs into **Business URLs**.
3. Set **Max reviews** and press **Start**.

```json
{
  "mode": "urls",
  "startUrls": [
    "https://yandex.com/maps/org/galki/115736401897/",
    "https://yandex.com/maps/org/206562056886/"
  ],
  "maxResults": 1000
}
```

> Leave everything blank and just press **Start** — the actor runs a default search and returns 500+ reviews so you can see the output shape immediately.

***

### Input parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `mode` | string (select) | `search` | `search` = find businesses by query; `urls` = scrape specific business URLs |
| `queries` | array of strings | `["restaurants moscow"]` | Text searches (search mode) |
| `startUrls` | array of strings | — | Yandex Maps business URLs (urls mode) |
| `maxResults` | integer | `500` | Max total reviews across all businesses (1–50,000) |
| `maxReviewsPerPlace` | integer | `50` | Reviews per business (Yandex serves up to ~50 most-recent keyless) |
| `proxy` | object | Residential | Proxy configuration; residential recommended |

***

### Tips for best results

- **Use several queries** (different cities/categories) to multiply coverage and volume.
- **Include the city in the query** — `sushi kazan`, `dentist almaty` — Yandex is location-aware.
- **Use URLs mode for precise monitoring** of your own and named competitors' locations.
- **Keep Residential proxy on** — Yandex challenges datacenter ranges; residential is reliable.
- **Reviews are the ~50 most-recent per business** — to cover more places, add more queries rather than expecting thousands from a single place.
- **Filter by `rating`** after export to isolate 1–2★ complaints for triage.
- **Use `ownerReply`** to audit response coverage and speed.
- **Schedule daily/weekly** and diff runs to track new reviews and rating changes over time.
- **Pipe `text` into an LLM** for automatic sentiment and theme tagging.

***

### Integrations

- **Google Sheets** — auto-export results after each run.
- **Slack / email** — get notified on completion (e.g. new 1★ review).
- **Zapier & Make** — trigger thousands of downstream apps.
- **Webhooks** — POST new datasets to your endpoint in real time.
- **Schedule** — run hourly/daily/weekly with Apify Schedules.
- **API & MCP** — pull data programmatically or expose it to AI agents.

***

### API usage

Replace `<TOKEN>` with your Apify API token.

**cURL**

```bash
curl -X POST "https://api.apify.com/v2/acts/logiover~yandex-maps-reviews-scraper/runs?token=<TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"mode":"search","queries":["coffee moscow"],"maxResults":500}'
```

**Node.js (apify-client)**

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

const client = new ApifyClient({ token: '<TOKEN>' });

const run = await client.actor('logiover/yandex-maps-reviews-scraper').call({
    mode: 'search',
    queries: ['coffee moscow'],
    maxResults: 500,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

**Python (apify-client)**

```python
from apify_client import ApifyClient

client = ApifyClient("<TOKEN>")

run = client.actor("logiover/yandex-maps-reviews-scraper").call(run_input={
    "mode": "search",
    "queries": ["coffee moscow"],
    "maxResults": 500,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

***

### Use with AI agents (MCP)

This actor works as a tool for AI agents via the Apify MCP server, so an LLM can fetch live Yandex reviews on demand. Point your MCP-compatible client (Claude, Cursor, etc.) at Apify's MCP server and let the agent call it.

Example agent prompt:

> "Use the Yandex Maps reviews scraper to get reviews for 'sushi saint petersburg' and summarise the top 3 complaints in 1–2★ reviews."

***

### Frequently asked questions

#### Is Yandex Maps Reviews Scraper really keyless?

Yes. It reads the review and search data Yandex publicly renders into its map pages — no Yandex account, API key, login or cookies required.

#### How many reviews can I get per business?

Yandex serves up to ~50 most-recent reviews per business without a login. To collect more total reviews, scrape more businesses (add more queries). This is ideal for recent-sentiment monitoring and category-wide analysis.

#### How do I reach 500+ reviews?

In search mode, one query returns up to ~25 businesses; scraping their reviews easily yields 500–1,200+ per query. Add more queries for more.

#### Which regions/languages does it cover?

Anywhere Yandex Maps has coverage — strongest in Russia, CIS, Turkey and Eastern Europe. Reviews are returned in their original language; the `textLanguage` field tells you which.

#### Can I scrape a specific business?

Yes — use URLs mode and paste the business's Yandex Maps URL.

#### Why do I need a residential proxy?

Yandex challenges many datacenter IP ranges. Residential proxy (the default) is reliable; the actor also auto-retries on a fresh IP if one gets challenged.

#### Are numbers real numbers?

Yes — `rating`, `businessRating`, `likes`, `dislikes` and counts are stored as numbers, and dates as ISO strings, so they're ready for analysis.

#### How do I export the data?

From the run's Dataset tab, export to CSV, Excel, JSON, XML or HTML, or push to Google Sheets — one click or via the API.

#### Does it include owner replies?

Yes. If a business owner has replied to a review, the reply text and date are in `ownerReply` / `ownerReplyAt`.

#### How often is the data updated?

It's live — every run queries Yandex Maps in real time. Schedule the actor to keep a fresh dataset.

#### Can I get reviews from Google Maps or 2GIS too?

Those are separate platforms — check the related scrapers below for other local-reviews sources.

***

### Is it legal?

Yandex Maps Reviews Scraper collects **publicly available** review data that anyone can view in a browser without logging in. It does not access private accounts or gated pages. As with any scraping, you are responsible for how you use the data: respect Yandex's Terms of Service, applicable copyright, and privacy laws (e.g. GDPR) — particularly when handling personal data such as reviewer names. Use the data for research, analytics and reputation management in a lawful, ethical way, and avoid republishing copyrighted content wholesale.

***

### Related scrapers

Looking for more local-business and reviews data? Check out these other keyless scrapers by the same developer:

- **2GIS Scraper** — businesses and reviews from 2GIS (Russia/CIS local directory).
- **Trustpilot Reviews Scraper** — company reviews with ratings and reviewer data.
- **Google Play / App Store Reviews** — mobile app reviews at scale.
- **Naver Scraper** — Korean blog & Knowledge-iN search data.

Have another reviews source you'd like added? Let us know.

# Actor input Schema

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

search = find businesses by a text query and scrape their reviews (default). urls = scrape reviews for specific Yandex Maps business URLs you provide.

## `queries` (type: `array`):

One or more text searches, e.g. 'coffee moscow', 'hotels saint petersburg'. Each query returns up to ~25 businesses whose reviews are scraped. Used in search mode.

## `startUrls` (type: `array`):

Yandex Maps business/organization URLs, e.g. https://yandex.com/maps/org/galki/115736401897/. Used when Mode = Specific business URLs.

## `maxResults` (type: `integer`):

Maximum total number of reviews to collect across all businesses.

## `maxReviewsPerPlace` (type: `integer`):

Cap the number of reviews taken from each business (Yandex serves up to ~50 most-recent reviews per business keyless).

## `proxy` (type: `object`):

Residential proxy is strongly recommended — Yandex challenges many datacenter ranges. Leave as-is for best reliability.

## Actor input object example

```json
{
  "mode": "search",
  "queries": [
    "coffee moscow"
  ],
  "startUrls": [
    "https://yandex.com/maps/org/galki/115736401897/"
  ],
  "maxResults": 500,
  "maxReviewsPerPlace": 50,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `businessName` (type: `string`):

Business name

## `businessAddress` (type: `string`):

Business address

## `businessRating` (type: `string`):

Overall business rating

## `businessReviewCount` (type: `string`):

Total review count for the business

## `businessId` (type: `string`):

Yandex org ID

## `businessUrl` (type: `string`):

Yandex Maps business URL

## `rating` (type: `string`):

This review's star rating (1-5)

## `text` (type: `string`):

Review body

## `publishedAt` (type: `string`):

Review date (ISO)

## `likes` (type: `string`):

Like count

## `dislikes` (type: `string`):

Dislike count

## `authorName` (type: `string`):

Reviewer name

## `authorLevel` (type: `string`):

Reviewer's local-expert level

## `ownerReply` (type: `string`):

Business owner's reply, if any

## `reviewsUrl` (type: `string`):

Business reviews page URL

## `reviewId` (type: `string`):

Yandex review ID

## `scrapedAt` (type: `string`):

Scrape timestamp (ISO)

# 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 = {
    "queries": [
        "coffee moscow"
    ],
    "startUrls": [
        "https://yandex.com/maps/org/galki/115736401897/"
    ],
    "maxResults": 500,
    "maxReviewsPerPlace": 50,
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/yandex-maps-reviews-scraper").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 = {
    "queries": ["coffee moscow"],
    "startUrls": ["https://yandex.com/maps/org/galki/115736401897/"],
    "maxResults": 500,
    "maxReviewsPerPlace": 50,
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("logiover/yandex-maps-reviews-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "queries": [
    "coffee moscow"
  ],
  "startUrls": [
    "https://yandex.com/maps/org/galki/115736401897/"
  ],
  "maxResults": 500,
  "maxReviewsPerPlace": 50,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call logiover/yandex-maps-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=logiover/yandex-maps-reviews-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Yandex Maps Reviews Scraper — Keyless Business Reviews",
        "description": "Scrape Yandex Maps business reviews by search query or business URL. Extract rating, review text, date, author, likes/dislikes & owner replies. 500+ reviews per run. No API key, no login.",
        "version": "1.0",
        "x-build-id": "bzr5fQvvFApjwGDF9"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/logiover~yandex-maps-reviews-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-logiover-yandex-maps-reviews-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/logiover~yandex-maps-reviews-scraper/runs": {
            "post": {
                "operationId": "runs-sync-logiover-yandex-maps-reviews-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/logiover~yandex-maps-reviews-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-logiover-yandex-maps-reviews-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": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "urls"
                        ],
                        "type": "string",
                        "description": "search = find businesses by a text query and scrape their reviews (default). urls = scrape reviews for specific Yandex Maps business URLs you provide.",
                        "default": "search"
                    },
                    "queries": {
                        "title": "Search queries",
                        "type": "array",
                        "description": "One or more text searches, e.g. 'coffee moscow', 'hotels saint petersburg'. Each query returns up to ~25 businesses whose reviews are scraped. Used in search mode.",
                        "default": [
                            "restaurants moscow"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "startUrls": {
                        "title": "Business URLs (urls mode)",
                        "type": "array",
                        "description": "Yandex Maps business/organization URLs, e.g. https://yandex.com/maps/org/galki/115736401897/. Used when Mode = Specific business URLs.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResults": {
                        "title": "Max reviews",
                        "minimum": 1,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "Maximum total number of reviews to collect across all businesses.",
                        "default": 500
                    },
                    "maxReviewsPerPlace": {
                        "title": "Max reviews per business",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Cap the number of reviews taken from each business (Yandex serves up to ~50 most-recent reviews per business keyless).",
                        "default": 50
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Residential proxy is strongly recommended — Yandex challenges many datacenter ranges. Leave as-is for best reliability.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
