# Парсер отзывов 2ГИС | 2GIS Reviews Scraper (`anuarbakty/2gis-reviews-scraper`) Actor

Парсер отзывов 2ГИС: текст, оценка, автор, дата, фото, ответ компании и ссылка на отзыв. Поиск по городу или ссылкам, фильтры по звёздам, темам, датам и словам, отзывы без ответа, мониторинг новых отзывов. Excel, CSV, API. | 2GIS reviews scraper with monitoring.

- **URL**: https://apify.com/anuarbakty/2gis-reviews-scraper.md
- **Developed by:** [Anuar Bakty](https://apify.com/anuarbakty) (community)
- **Categories:** Lead generation, SEO tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.35 / 1,000 отзыв / reviews

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/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

**Парсер отзывов 2ГИС** собирает отзывы по **поисковому запросу и городу** или по **ссылкам на места, сети и здания** и отдаёт таблицу, где одна строка — один отзыв: **текст, оценка, дата, автор, фото, ответ компании и ссылка на отзыв**, плюс название, адрес, рубрика и координаты места. Работает напрямую с API 2ГИС, без браузера и без аккаунта.

Попробовать просто: вставьте ссылку на карточку места из 2ГИС и нажмите **Start**. Бесплатный тариф Apify даёт $5 каждый месяц — это около **10 000 отзывов бесплатно**.

[English quick guide below](#english-quick-guide)

### Возможности / Features

- 🔎 **Поиск как в 2ГИС**: «кофейня» + «Алматы» или готовая ссылка на выдачу, в том числе с фильтрами и рубриками. Больше 1 200 городов из справочника 2ГИС.
- 🏢 **Любые объекты**: карточка места, **вся сеть** одним потоком (все филиалы с адресами), **все организации в здании или ТЦ**, само здание, короткие ссылки `go.2gis.com`, голые ID.
- ⭐ **Фильтр по звёздам на стороне 2ГИС**: «только 1–2★» скачивает только негатив, а не все отзывы подряд.
- 🧠 **Темы отзывов**: «персонал», «чистота», «цены». 2ГИС ищет по смыслу — «персонал» находит и отзывы про официанта. У каждого отзыва видно, какая тема совпала.
- 💬 **Отзывы без ответа компании**: найдите то, на что ещё никто не ответил.
- 📅 **Интервал дат, слова в тексте, только с текстом, источник** (2ГИС, Flamp, отзывы через Т-Банк, Нетмонет и другие), неподтверждённые отзывы.
- 🔁 **Мониторинг**: запуск по расписанию отдаёт только новые — а по желанию и изменённые — отзывы. Вы платите только за новое.
- 🔗 **Ссылка на каждый отзыв** в 2ГИС и на оригинал для отзывов с Flamp.
- 📊 **Сводка по каждому месту**: распределение оценок от 1★ до 5★ и темы, которые 2ГИС выделяет в отзывах.
- 🧾 **53 поля в плоской таблице** — сразу в Excel, Google Sheets, BI или нейросеть. По желанию — исходные данные 2ГИС.
- ⚡ **Быстро**: в наших замерах около 2 500 отзывов в минуту с одного места и до 5 000 в минуту при сборе с нескольких мест параллельно.

### Для кого / Use cases

- **Владельцам бизнеса и сетей**: каждое утро получать новые отзывы о своих точках в Telegram или Google Sheets и не пропускать негатив.
- **Агентствам по репутации**: находить плохие отзывы без ответа по всем клиентам сразу.
- **Франшизам**: сравнивать филиалы по оценкам, жалобам и темам отзывов.
- **Маркетологам и аналитикам**: собрать отзывы всех кофеен, клиник или автосервисов города и понять, за что хвалят и ругают конкурентов.
- **Разработчикам и ИИ-командам**: чистые тексты с оценками и темами для анализа тональности и обучения моделей.

### Чем отличается / Comparison

| Возможность | Этот парсер | Обычно у парсеров отзывов 2ГИС |
| --- | --- | --- |
| Поиск по запросу и городу | ✅ | не у всех |
| Фильтр по звёздам на стороне 2ГИС | ✅ скачивается только нужное | часто фильтр уже после скачивания всех отзывов |
| Темы отзывов с пометкой совпадения | ✅ | редко |
| Только отзывы **без** ответа компании | ✅ | ❌ |
| Мониторинг новых и изменённых отзывов | ✅ | ❌ |
| Ссылка на каждый отзыв | ✅ | часто ссылка ведёт на вкладку со всеми отзывами |
| Распределение оценок и темы по месту | ✅ | ❌ |
| Вся сеть по ссылке на любой филиал | ✅ | редко |
| Цена за 1 000 отзывов | от $0.35 | от $0.20 до $1.00 |

### Как спарсить отзывы 2ГИС / How to scrape 2GIS reviews

1. Нажмите **Try for free** — откроется форма ввода в Apify.
2. Впишите **поисковый запрос и город** или вставьте **ссылки из 2ГИС** — по одной на строку.
3. При желании задайте лимиты и фильтры: звёзды, темы, даты, слова, ответ компании.
4. Нажмите **Start**. Отзывы появятся во вкладке **Output** через несколько секунд.
5. Скачайте результат в **Excel, CSV или JSON** или подключите интеграцию: Google Sheets, Telegram, Slack, webhook, API.

### Примеры ввода / Input examples

#### Негатив о кофейнях города за последний месяц

```json
{
    "searchQueries": ["кофейня"],
    "city": "Алматы",
    "maxPlaces": 50,
    "ratings": ["1", "2"],
    "dateFrom": "30 days"
}
```

#### Жалобы на персонал по всей сети без ответа компании

```json
{
    "startUrls": ["https://2gis.kz/almaty/firm/70000001063137713"],
    "scope": "chain",
    "topics": ["персонал"],
    "answerFilter": "unanswered"
}
```

#### Ежедневный мониторинг новых и изменённых отзывов

```json
{
    "startUrls": [
        "https://2gis.kz/almaty/firm/70000001063137713",
        "https://2gis.kz/almaty/branches/70000001026826017"
    ],
    "onlyNewReviews": true,
    "includeEditedReviews": true
}
```

#### Все отзывы за 2025 год

```json
{
    "startUrls": ["https://2gis.kz/almaty/firm/70000001063137713"],
    "dateFrom": "2025-01-01",
    "dateTo": "2025-12-31"
}
```

#### Самые старые отзывы с Flamp

```json
{
    "startUrls": ["https://2gis.ru/novosibirsk/firm/70000001035345668"],
    "sources": ["flamp"],
    "sortBy": "date_created_asc",
    "maxReviewsPerPlace": 100
}
```

### Настройки / Input fields

| Поле | Что делает |
| --- | --- |
| `startUrls` | Ссылки 2ГИС: место, сеть (`/branches/`), поиск (`/search/`), организации в здании (`/inside/`), здание (`/geo/`), `go.2gis.com`, ID |
| `searchQueries` + `city` | Поиск как в 2ГИС: запросы и город («Алматы», `almaty`) |
| `maxPlaces` | Сколько мест брать из каждого поиска или здания (0 — все) |
| `scope` | `place` — только найденные места, `chain` — вся сеть каждого найденного филиала |
| `maxReviewsPerPlace` / `maxReviews` | Лимит отзывов на место и на весь запуск (0 — без лимита) |
| `sortBy` | Сначала новые, сначала старые, по дате изменения или как в 2ГИС |
| `ratings` | Звёзды, отбор на стороне 2ГИС |
| `dateFrom` / `dateTo` | Интервал дат: `2026-01-31` или `30 days` |
| `topics` | Темы 2ГИС: «персонал», «чистота», «цены» |
| `keywords` | Слова в тексте отзыва |
| `onlyWithText` | Только отзывы с текстом |
| `answerFilter` | Все, только с ответом компании, только без ответа |
| `sources` | Источники: 2ГИС, Flamp, Т-Банк, Нетмонет и другие |
| `includeUnconfirmed` | Включать неподтверждённые отзывы (не влияют на рейтинг) |
| `onlyNewReviews` / `includeEditedReviews` | Мониторинг: только новые и, по желанию, изменённые отзывы |
| `includePlaceDetails` / `includeAuthor` / `includeRawData` | Данные о месте, данные автора, исходные данные 2ГИС |
| `language` | Язык служебных подписей 2ГИС |

### Результат / Output

Одна строка — один отзыв. Пример (данные условные):

```json
{
    "placeName": "Coffee Original, кофейня",
    "placeAddress": "улица Байтурсынова, 67",
    "rating": 2,
    "text": "Долго ждали заказ, но кофе хороший.",
    "dateCreated": "2026-09-20T10:15:00.000000+07:00",
    "dateEdited": null,
    "changeType": "new",
    "authorName": "Имя Автора",
    "authorId": "0123456789abcdef",
    "authorReviewsCount": 5,
    "authorProfileUrl": "https://2gis.ru/user/0123456789abcdef",
    "authorPhotoUrl": null,
    "hasOfficialAnswer": true,
    "officialAnswerText": "Спасибо за отзыв! Разберёмся с задержкой.",
    "officialAnswerDate": "2026-09-21T09:00:00.000000+07:00",
    "officialAnswerAuthor": "Coffee Original, кофейня",
    "likesCount": 0,
    "reactionsCount": 2,
    "reactions": { "green_heart": 2 },
    "commentsCount": 1,
    "photosCount": 1,
    "photos": ["https://cachizer1.2gis.com/reviews-photos/example.jpg"],
    "videos": [],
    "matchedTopics": ["персонал"],
    "isRated": true,
    "isHidden": false,
    "hasUnresolvedComplaints": false,
    "isVerified": true,
    "trustFactors": ["8 посещений"],
    "source": "2gis",
    "sourceName": "2ГИС",
    "sourceUrl": null,
    "reviewUrl": "https://2gis.kz/reviews/70000001063137713/review/300000000",
    "placeId": "70000001063137713",
    "placeUrl": "https://2gis.kz/almaty/firm/70000001063137713",
    "placeCategory": "Кофейни",
    "placeCategories": ["Кофейни", "Кондитерские изделия"],
    "placeCity": "Алматы",
    "placeDistrict": "Алмалинский район",
    "placeRegion": "Алматы",
    "placeCountry": "Казахстан",
    "placePostcode": "050012",
    "placeLatitude": 43.24851,
    "placeLongitude": 76.926089,
    "placeRating": 4.7,
    "placeReviewsCount": 2522,
    "orgId": "70000001026826017",
    "orgName": "Coffee Original",
    "orgBranchCount": 21,
    "orgRating": 4.7,
    "reviewId": "300000000",
    "inputUrl": "https://2gis.kz/almaty/firm/70000001063137713",
    "scrapedAt": "2026-09-28T12:00:00.000Z"
}
```

| Поле | Что означает |
| --- | --- |
| `rating`, `text`, `dateCreated`, `dateEdited` | Оценка от 1 до 5, текст, даты публикации и изменения |
| `reviewUrl` | Ссылка на этот отзыв в 2ГИС |
| `changeType` | В режиме мониторинга: `new` — новый отзыв, `edited` — автор изменил отзыв |
| `officialAnswer*` | Ответ компании: текст, дата, от чьего имени |
| `matchedTopics` | Какие из заданных тем 2ГИС нашёл в отзыве |
| `isRated` | `false` — неподтверждённый отзыв: виден в 2ГИС, но не влияет на рейтинг |
| `isVerified`, `trustFactors` | Отзыв подтверждён визитом или оплатой, например «8 посещений» |
| `source`, `sourceName`, `sourceUrl` | Источник отзыва и ссылка на оригинал, если отзыв пришёл не из 2ГИС |
| `reactions`, `likesCount`, `commentsCount` | Реакции, лайки и комментарии |
| `author*` | Автор: имя, ID, число отзывов, профиль, аватар (можно отключить) |
| `place*`, `org*` | Место и сеть: название, адрес, город, район, координаты, рубрики, рейтинг, число филиалов |
| `raw` | Исходный объект отзыва из 2ГИС, если включена опция «Исходные данные» |

После запуска в хранилище (Key-value store) лежит запись **`SUMMARY`**:

- по каждому месту — сколько отзывов собрано и отфильтровано, распределение оценок по звёздам и темы отзывов;
- по каждому поиску — сколько мест нашёл 2ГИС и сколько взято;
- ошибки, если они были.

### Мониторинг отзывов / Review monitoring

1. Включите **«Только новые отзывы с прошлого запуска»** и, если нужно, **«Также присылать изменённые отзывы»**.
2. Сохраните ввод как задачу (**Save as a new task**).
3. Добавьте расписание (**Schedules**), например каждый день в 9:00.
4. Подключите интеграцию: Google Sheets, Slack, Make, Zapier или n8n (например, для отправки в Telegram), либо webhook в свою систему.

Актор помнит уже выданные отзывы для каждого места и набора фильтров. Первый запуск отдаёт все отзывы с учётом лимитов, следующие — только новые. Отзывы, которые прошли модерацию 2ГИС с опозданием (до 14 дней), тоже не теряются. Если автор изменил отзыв — например, поднял оценку после ответа компании, — он придёт снова с `changeType: edited`.

### Сколько стоит / Pricing

Вы платите за полученные отзывы и небольшую фиксированную сумму за запуск (см. вкладку **Pricing**). Ресурсы Apify и прокси отдельно не оплачиваются. Отфильтрованные отзывы и отзывы, уже выданные в мониторинге, бесплатны.

| Тариф Apify | Цена за 1 000 отзывов |
| --- | --- |
| Free | $0.50 |
| Bronze | $0.45 |
| Silver | $0.40 |
| Gold и выше | $0.35 |

#### Сколько стоит спарсить отзывы 2ГИС

| Задача | Отзывов | Стоимость на тарифе Free |
| --- | --- | --- |
| Отзывы одной кофейни за последний год | ~500 | ≈ $0.25 |
| 50 кофеен города × 100 последних отзывов | 5 000 | ≈ $2.50 |
| Вся сеть из 21 филиала | ~15 000 | ≈ $7.50 |
| Мониторинг 20 точек, ~3 новых отзыва в день на точку | ~1 800 в месяц | ≈ $0.90 в месяц |

Чтобы не выйти за бюджет, задайте в Apify **максимальную стоимость запуска** — актор аккуратно остановится на лимите и сохранит всё собранное.

### API и интеграции / API & integrations

Запуск и получение отзывов одним запросом:

```bash
curl -X POST "https://api.apify.com/v2/acts/anuarbakty~2gis-reviews-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"startUrls": ["https://2gis.kz/almaty/firm/70000001063137713"], "maxReviewsPerPlace": 100}'
```

Python:

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("anuarbakty/2gis-reviews-scraper").call(run_input={
    "searchQueries": ["стоматология"],
    "city": "Алматы",
    "maxPlaces": 20,
    "ratings": ["1", "2"],
})
for review in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(review["placeName"], review["rating"], review["text"])
```

JavaScript:

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('anuarbakty/2gis-reviews-scraper').call({
    startUrls: ['https://2gis.kz/almaty/branches/70000001026826017'],
    onlyNewReviews: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, 'new reviews');
```

**ИИ-агенты и MCP.** Актор доступен через Apify MCP-сервер: `https://mcp.apify.com/?tools=anuarbakty/2gis-reviews-scraper` — подключите его к Claude, ChatGPT, Cursor или n8n.

#### Скопируйте в ChatGPT или Claude

```text
Используй Apify-актор anuarbakty/2gis-reviews-scraper, чтобы собирать отзывы 2ГИС.
Вход: startUrls (ссылки 2ГИС или ID) или searchQueries + city.
Фильтры: ratings ["1".."5"], dateFrom и dateTo ("2026-01-31" или "30 days"), topics, keywords,
answerFilter (all | answered | unanswered), sources, onlyWithText, includeUnconfirmed.
Лимиты: maxPlaces, maxReviewsPerPlace, maxReviews. Мониторинг: onlyNewReviews, includeEditedReviews.
Выход: одна строка на отзыв — rating, text, dateCreated, authorName, officialAnswerText, reviewUrl,
placeName, placeAddress, placeCity, placeLatitude, placeLongitude, matchedTopics, changeType.
```

### Страны и города / Countries and cities

Работает на всех сайтах 2ГИС и Urbi: Россия, Казахстан, Кыргызстан, Узбекистан, Беларусь, Армения, Азербайджан, Грузия, Таджикистан, ОАЭ, Оман, Кипр, Чехия, Чили. В справочнике 2ГИС больше 1 200 городов и посёлков: Москва, Санкт-Петербург, Новосибирск, Екатеринбург, Казань, Алматы, Астана, Шымкент, Караганда, Бишкек, Ташкент, Самарканд, Ереван, Минск, Дубай и другие. Больше всего отзывов — в России и Казахстане; в Чехии, Чили и странах Персидского залива их пока мало.

### Вопросы и ответы / FAQ

#### Как выгрузить отзывы 2ГИС в Excel?

Запустите актор и во вкладке **Output** нажмите **Export** → **Excel** или **CSV**. Таблица плоская: одна строка — один отзыв, столбцы уже готовы.

#### Можно ли собрать только негативные отзывы?

Да. Выберите в поле «Оценки» 1★ и 2★. Фильтр работает на стороне 2ГИС, поэтому скачиваются только плохие отзывы — это быстрее и дешевле.

#### Как найти отзывы, на которые компания не ответила?

Выберите «Только без ответа» в поле «Ответ компании». Вместе с «Оценками 1–2★» получится список срочных отзывов.

#### Как получать новые отзывы автоматически, например в Telegram?

Включите мониторинг, сохраните задачу и добавьте расписание. Для Telegram подключите Make, Zapier или n8n через интеграции Apify — пошагово в разделе «Мониторинг отзывов».

#### Почему отзывов меньше, чем в карточке 2ГИС?

Проверьте фильтры. Счётчик в карточке включает неподтверждённые отзывы: если выключить «Включать неподтверждённые», их не будет. Точное число подходящих под фильтры отзывов — в поле `reviewsMatchingOn2gis` записи `SUMMARY`.

#### Какие темы можно указывать?

У каждого места свой набор. Запустите актор один раз и посмотрите поле `topics` в записи `SUMMARY` или чипы над отзывами в карточке 2ГИС.

#### Есть ли ссылка на каждый отзыв?

Да, поле `reviewUrl` открывает конкретный отзыв в 2ГИС. Для отзывов с Flamp есть ещё `sourceUrl` — ссылка на оригинал.

#### Переводит ли парсер отзывы?

Нет. Тексты и названия остаются как есть. Опция «Язык подписей» меняет только служебные подписи 2ГИС, например «8 посещений» → «8 visits».

#### Нужен ли аккаунт 2ГИС, ключ API или прокси?

Нет. Актор работает с публичными данными 2ГИС без входа и ключей, настраивать прокси не нужно. Сайт 2gis.ru почти не открывается с зарубежных серверов, поэтому на Apify актор сам загружает его страницы через резидентный прокси — отдельно за это платить не нужно. Отзывы при этом идут напрямую через API 2ГИС.

#### Сколько отзывов можно собрать?

Ограничений со стороны актора нет: можно выгрузить все отзывы места или сети. Управляйте объёмом лимитами и максимальной стоимостью запуска.

#### Законно ли собирать отзывы 2ГИС?

Актор собирает только общедоступные отзывы, которые видит любой посетитель 2ГИС. Имя и аватар автора — персональные данные: если они вам не нужны, выключите «Данные автора». Используйте результаты в соответствии с законодательством вашей страны и правилами 2ГИС. Актор не связан с 2ГИС и не является официальным продуктом 2ГИС.

### Ограничения / Limitations

- Актор работает через публичный API сайта 2ГИС. Если 2ГИС его изменит, понадобится обновление.
- В режиме «Вся сеть» у филиалов есть ID, название и адрес, но нет координат и рубрик.
- Темы доступны только те, что 2ГИС выделил для конкретного места.
- Фото и видео отдаются ссылками, файлы не скачиваются.

### Поддержка / Support

Нашли ошибку или нужна доработка — откройте вкладку **Issues** на странице актора и опишите, что запускали и что ожидали получить.

### История изменений / Changelog

- **0.1 — сентябрь 2026.** Первая версия. Проверено на живых данных 29 сентября 2026 года: Алматы, Новосибирск, Дубай.

*2ГИС — товарный знак его правообладателя. Этот актор — независимый инструмент и не связан с компанией 2ГИС. / 2GIS is a trademark of its owner. This Actor is an independent tool and is not affiliated with 2GIS.*

***

### English quick guide

**2GIS Reviews Scraper** collects reviews from 2GIS — the leading map and business directory in Russia, Kazakhstan, Central Asia and the UAE — by **search query + city** or by **links to places, chains and buildings**. One row per review: rating, text, dates, reviewer, photos, reactions, business reply, trust badges, matched topics, a **link to the review** and full place context (name, address, city, coordinates, category, rating, chain). No browser, no login, no API key.

#### Why this scraper

- **Search like on 2GIS**: query + city (1,200+ cities from the 2GIS directory) or any search results link, including filters and categories.
- **Any object**: place, whole chain in one stream, all firms inside a building or mall, building, `go.2gis.com` short link, numeric ID. All 2GIS and Urbi domains.
- **Server-side filters**: star ratings and review topics (2GIS matches topics by meaning).
- **More filters**: date range, keywords, text only, answered or **unanswered** by the business, source (2GIS, Flamp, payment-service reviews), confirmed only.
- **Monitoring**: `onlyNewReviews` returns only reviews that appeared since the previous run; with `includeEditedReviews` it also returns reviews edited by their authors (`changeType: edited`). You pay only for what is new.
- **Summary per place**: star distribution (1★–5★) and 2GIS review topics in the `SUMMARY` record.
- **Fast**: in our tests about 2,500 reviews per minute from one place and up to 5,000 per minute across several places.

#### Input examples

Negative reviews of coffee shops in a city for the last month:

```json
{ "searchQueries": ["coffee shop"], "city": "Dubai", "maxPlaces": 50, "ratings": ["1", "2"], "dateFrom": "30 days" }
```

Daily monitoring of new and edited reviews:

```json
{ "startUrls": ["https://2gis.kz/almaty/firm/70000001063137713"], "onlyNewReviews": true, "includeEditedReviews": true }
```

#### Output

One flat row per review with 53 fields (see the JSON example above); optionally the raw 2GIS object. Export to JSON, CSV, Excel, or connect Google Sheets, Slack, Make, Zapier, n8n, webhooks, the API or MCP.

#### Pricing

Pay per review delivered: $0.50 per 1,000 reviews on the Free plan, down to $0.35 on Gold and higher, plus a small fixed fee per run (see the Pricing tab). No platform usage or proxy fees. Filtered-out reviews and reviews already delivered in monitoring mode are free. The $5 monthly credit of the Apify Free plan covers about 10,000 reviews.

#### FAQ

- **Can I get only negative reviews?** Yes, select 1★ and 2★ — 2GIS filters them before download.
- **Can I find reviews the business has not answered?** Yes, set *Business reply* to *Without reply*.
- **Is there a link to each review?** Yes, `reviewUrl`.
- **Are reviews translated?** No, texts are returned as written; the *Language* option only changes 2GIS captions.
- **Do I need a proxy or a 2GIS account?** No. On Apify the Actor opens 2gis.ru pages through a residential proxy by itself, at no extra charge; reviews come straight from the 2GIS API.
- **Is it legal?** The Actor collects only publicly visible reviews. Reviewer names are personal data — switch off *Reviewer details* if you do not need them. This Actor is not affiliated with 2GIS.

# Actor input Schema

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

По одной ссылке на строку. Подходят:<br>• карточка места: <code>https://2gis.kz/almaty/firm/70000001063137713</code>;<br>• вся сеть: <code>https://2gis.kz/almaty/branches/70000001026826017</code>;<br>• результаты поиска, в том числе с фильтрами: <code>https://2gis.kz/almaty/search/кофейня</code>;<br>• все организации в здании: <code>https://2gis.kz/almaty/inside/9430047375047778</code>;<br>• само здание или объект: <code>https://2gis.kz/almaty/geo/9430047375047778</code>;<br>• короткая ссылка «Поделиться»: <code>https://go.2gis.com/…</code>;<br>• просто ID места: <code>70000001063137713</code>.<br>Работают все домены 2ГИС: .ru, .kz, .kg, .uz, .ae и другие.<br><br>Place, chain, search results, firms in a building, building, short link or numeric place ID.

## `searchQueries` (type: `array`):

Что вы бы ввели в поиск 2ГИС: «кофейня», «стоматология», «автосервис». Для каждого запроса актор возьмёт места из выдачи и соберёт их отзывы. Нужен город ниже.<br><br>What you would type into 2GIS search. Requires a city.

## `city` (type: `string`):

Название или код из ссылки 2ГИС: «Алматы», «Москва», «Бишкек», «Прага», almaty, moscow, spb, dubai, praha. Актор знает больше 1 200 городов из справочника 2ГИС.<br><br>City name or its alias from 2GIS links.

## `maxPlaces` (type: `integer`):

Сколько мест брать из каждого запроса, ссылки на поиск или здания. 0 — все.<br><br>Places taken from each search or building list. 0 = all.

## `scope` (type: `string`):

«Вся сеть» — для каждого найденного филиала актор соберёт отзывы всех филиалов этой организации одним потоком; у каждого отзыва будут адрес и ID филиала. Координаты и рубрики филиалов в этом режиме не заполняются.<br><br>Chain: collect reviews of every branch of the organization.

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

0 — собрать все отзывы. В режиме «Вся сеть» лимит действует на всю сеть.<br><br>0 = all reviews. In chain mode the limit applies to the whole chain.

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

Общий лимит на все места. 0 — без ограничения.<br><br>Total cap for the whole run. 0 = no limit.

## `sortBy` (type: `string`):

Определяет, какие отзывы попадут в выборку при лимите. «Сначала новые» — самый быстрый вариант при фильтре по дате.<br><br>Which reviews come first when a limit is set.

## `ratings` (type: `array`):

Фильтр работает на стороне 2ГИС: скачиваются только отзывы с выбранными оценками, поэтому выборка негатива идёт быстро. Пусто — все оценки.<br><br>Server-side filter: only reviews with the selected stars are downloaded. Empty = all.

## `dateFrom` (type: `string`):

Дата (2026-01-31) или период («30 days»). Пусто — за всё время.<br><br>Absolute date or relative period. Empty = all time.

## `dateTo` (type: `string`):

Верхняя граница: дата (2026-06-30 — включая весь этот день) или период назад («7 days»). Вместе с полем выше задаёт интервал, например весь 2025 год.<br><br>Upper date bound. Together with the field above it sets a date range.

## `topics` (type: `array`):

Темы, которые 2ГИС выделяет в отзывах: «персонал», «чистота», «цены», «кофе». Поиск по смыслу на стороне 2ГИС: «персонал» найдёт и отзывы про официанта. Несколько тем — любая из них. Какие темы есть у места, смотрите в записи SUMMARY после запуска. У каждого отзыва будет поле <code>matchedTopics</code>.<br><br>2GIS topic filter, matched by meaning. Several topics mean any of them.

## `keywords` (type: `array`):

Оставить только отзывы, в тексте которых есть хотя бы одно из слов, без учёта регистра: «грязно», «долго», «хамство».<br><br>Keep reviews whose text contains any of these words, case-insensitive.

## `onlyWithText` (type: `boolean`):

Пропускать оценки без текста.<br><br>Skip star-only reviews.

## `answerFilter` (type: `string`):

«Без ответа» — удобно, чтобы найти отзывы, на которые компания ещё не ответила.<br><br>Filter by presence of the official business reply.

## `sources` (type: `array`):

2ГИС показывает в карточке отзывы и с других площадок: Flamp, а также отзывы, оставленные при оплате или чаевых (Т-Банк, Нетмонет и др.). Пусто — все источники.<br><br>Keep reviews from the selected sources only. Empty = all.

## `includeUnconfirmed` (type: `boolean`):

Неподтверждённые отзывы видны в 2ГИС, но не влияют на рейтинг. В результатах их отличает поле <code>isRated: false</code>.<br><br>Unconfirmed reviews are visible on 2GIS but do not affect the rating.

## `onlyNewReviews` (type: `boolean`):

Актор запоминает уже выданные отзывы для каждого места и набора фильтров и в следующий раз отдаёт только новые — вы платите только за них. Первый запуск выдаёт все отзывы (с учётом лимитов). Подключите Schedules и интеграции (Telegram, Slack, Google Sheets, webhook), чтобы получать новые отзывы автоматически. Сортировка в этом режиме всегда «сначала новые». У каждого отзыва будет поле <code>changeType</code>: <code>new</code> или <code>edited</code>.<br><br>Remembers delivered reviews per place and filter set; each run returns only new ones.

## `includeEditedReviews` (type: `boolean`):

Работает вместе с мониторингом. Если автор отредактировал отзыв после прошлого запуска — например, поднял оценку после ответа компании, — отзыв придёт снова с <code>changeType: edited</code>.<br><br>With monitoring on, reviews edited since the last run come back with <code>changeType: edited</code>.

## `includePlaceDetails` (type: `boolean`):

Название, адрес, город, район, координаты, рубрика, рейтинг и данные сети. Для ссылок на карточки — один дополнительный запрос на место, для поиска — без дополнительных запросов.<br><br>Name, address, city, coordinates, category, rating and chain info.

## `includeAuthor` (type: `boolean`):

Имя, число отзывов, ссылка на профиль и аватар автора. Это персональные данные — отключите, если они вам не нужны.<br><br>Reviewer name, profile link and avatar. This is personal data: switch off if you do not need it.

## `includeRawData` (type: `boolean`):

Добавить к каждому отзыву поле <code>raw</code> — объект отзыва в том виде, в каком его отдаёт 2ГИС. Для разработчиков.<br><br>Attach the original 2GIS review object as <code>raw</code>.

## `language` (type: `string`):

Язык служебных подписей 2ГИС, например «8 посещений» → «8 visits». Тексты отзывов и названия мест не переводятся.<br><br>Language of 2GIS captions such as trust badges. Review texts and place names are not translated.

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

Обычно не нужен. Отзывы идут напрямую через API 2ГИС, а страницы сайта 2gis.ru на серверах Apify актор сам открывает через резидентный прокси. Укажите свой прокси, только если хотите, чтобы все запросы шли через него.<br><br>Usually not needed: reviews come straight from the 2GIS API, and on Apify the Actor opens 2gis.ru pages through a residential proxy by itself.

## Actor input object example

```json
{
  "startUrls": [
    "https://2gis.kz/almaty/firm/70000001063137713"
  ],
  "maxPlaces": 20,
  "scope": "place",
  "maxReviewsPerPlace": 100,
  "maxReviews": 0,
  "sortBy": "date_created",
  "onlyWithText": false,
  "answerFilter": "all",
  "includeUnconfirmed": true,
  "onlyNewReviews": false,
  "includeEditedReviews": false,
  "includePlaceDetails": true,
  "includeAuthor": true,
  "includeRawData": false,
  "language": "auto",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `reviews` (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 = {
    "startUrls": [
        "https://2gis.kz/almaty/firm/70000001063137713"
    ],
    "maxReviewsPerPlace": 100,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("anuarbakty/2gis-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 = {
    "startUrls": ["https://2gis.kz/almaty/firm/70000001063137713"],
    "maxReviewsPerPlace": 100,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("anuarbakty/2gis-reviews-scraper").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 '{
  "startUrls": [
    "https://2gis.kz/almaty/firm/70000001063137713"
  ],
  "maxReviewsPerPlace": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call anuarbakty/2gis-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,anuarbakty/2gis-reviews-scraper"
        }
    }
}
```

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/Ko7Lv7oyS1kkU5gDW/builds/Qvpvc3lUlwrEsANXa/openapi.json
