# Парсер 2ГИС онлайн: телефоны, email и база компаний (`tugelbay/2gis-scraper`) Actor

Парсер 2ГИС онлайн: телефоны, сайты, email, отзывы, координаты компаний из России, Казахстана, ОАЭ, Узбекистана, Кыргызстана, Армении, Грузии и Азербайджана. Excel, CSV и API. Guide: https://konabayev.com/ru/tools/parser-2gis/?utm\_source=apify\_info\&utm\_medium=referral\&utm\_campaign=2gis-scraper

- **URL**: https://apify.com/tugelbay/2gis-scraper.md
- **Developed by:** [Tugelbay Konabayev](https://apify.com/tugelbay) (community)
- **Categories:** Lead generation, Marketing
- **Stats:** 136 total users, 70 monthly users, 99.8% runs succeeded, 0 bookmarks
- **User rating**: 4.00 out of 5 stars

## Pricing

from $3.15 / 1,000 business extracteds

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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.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/platform/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

## Парсер 2ГИС онлайн: база организаций, телефоны, email и Excel

> **Коротко:** этот актор выгружает из 2ГИС структурированную базу организаций по городу и рубрике: телефоны, сайты, email при наличии, адреса, рейтинги, отзывы, часы работы и координаты.
> **Для кого:** отделы продаж, маркетологи, агентства, исследователи рынка, локальный SEO, CRM-обогащение и B2B-лидогенерация.
> **Как начать:** запустите тест на `maxItems: 20`, проверьте качество контактов по нужному городу и категории, затем увеличивайте лимит до 100-1000 строк для рабочей базы.
> **Подробный русский гайд:** [парсер 2ГИС онлайн, база организаций и Excel](https://konabayev.com/ru/tools/parser-2gis/?utm_source=apify_readme&utm_medium=referral&utm_campaign=2gis-scraper).

<a href="https://apify.com/tugelbay/2gis-scraper">
  <img src="https://api.apify.com/v2/key-value-stores/bplRdpnd85eGQkW1N/records/2gis-scraper-ru-20260513-hero.png" alt="Парсер 2ГИС онлайн: база организаций, телефоны, email, отзывы, адреса и координаты" width="100%">
</a>

<p>
  <img src="https://api.apify.com/v2/key-value-stores/bplRdpnd85eGQkW1N/records/2gis-scraper-ru-20260513-input-output.png" alt="Пример ввода и результата парсера 2ГИС" width="49%">
  <img src="https://api.apify.com/v2/key-value-stores/bplRdpnd85eGQkW1N/records/2gis-scraper-ru-20260513-dataset-preview.png" alt="Превью базы 2ГИС с организациями, телефонами, рейтингами и координатами" width="49%">
</p>

### От теста к рабочей выгрузке

Запуск на `maxItems: 20` нужен только для проверки города, рубрики и качества контактов. Если в тесте есть телефоны, сайты, email или достаточно полные карточки, переходите к рабочей выгрузке:

1. Увеличьте `maxItems` до `100-500` для одного города и рубрики.
2. Включайте `includeReviews` только когда отзывы действительно нужны для анализа; для обычной базы продаж сначала быстрее собрать контакты без отзывов.
3. Используйте экспорт датасета Apify, интеграции, webhooks или Apify API, чтобы отправить результат в Excel, CSV, Google Sheets, CRM или внутренний пайплайн.

Такой режим лучше подходит для paid-задач: база стоматологий, автосервисов, кафе, салонов, ресторанов или поставщиков по конкретному городу, а не случайная демо-строка.

### Что делает парсер 2ГИС

**Парсер 2ГИС онлайн** автоматизирует выгрузку организаций из каталога 2ГИС. Вы указываете запрос и город, например `стоматология` + `Москва` или `кафе` + `Алматы`, а актор возвращает готовый датасет для Excel, CSV, JSON, API, CRM или Google Sheets.

Главный сценарий: быстро собрать базу компаний из 2ГИС без ручного копирования карточек. Это полезно, когда нужно найти локальные B2B-лиды, спарсить базу 2ГИС по городу и рубрике, собрать телефоны компаний, выгрузить отзывы 2ГИС, построить карту конкурентов или обогатить CRM адресами и координатами.

### Поисковые сценарии, под которые сделан актор

Актор закрывает русскоязычные запросы вроде `парсер 2гис`, `бесплатный парсер 2гис`, `скачать парсер 2гис`, `парсер 2гис скачать бесплатно`, `2гис парсер онлайн`, `парсер 2гис гитхаб`, `парсер 2гис github`, `парсер дубльгис`, `парсинг базы 2гис`, `спарсить базу 2гис`, `выгрузка базы 2ГИС в Excel`, `собрать телефоны из 2ГИС`.

Для продаж лучше начинать не с абстрактного "B2B leads", а с понятных связок: город + рубрика + база/телефоны. Рабочие проверенные примеры: `стоматологии Москва`, `кафе Новосибирск`, `автосервисы Москва`, `рестораны Москва`, `кафе Алматы`. Казахстанский спрос по `парсер 2гис` есть; KZ-запуски поддерживаются через браузерный fallback, но большие выгрузки все равно сначала проверяйте маленьким тестом на 20 строк.

Если вы ищете бесплатный парсер 2ГИС или хотите скачать парсер 2ГИС на компьютер, этот вариант лучше использовать как облачную альтернативу: сначала маленький тест через `maxItems: 20`, затем рабочая выгрузка без установки программы, расширения, прокси и ручного запуска на своем ПК. Для разработчиков сценарий ближе к `парсер 2гис github`: есть готовые Python, JavaScript, HTTP и API-примеры, но запуск и биллинг идут через Apify.

### Какие данные можно выгрузить из 2ГИС

Каждая строка датасета соответствует одной организации из 2ГИС. Доступность отдельных полей зависит от того, что компания публично указала в карточке.

| Данные              | Что получает пользователь                                                                            |
| ------------------- | ---------------------------------------------------------------------------------------------------- |
| Организация         | название, основная категория, список категорий                                                       |
| Контакты            | телефон, все телефоны, email при наличии, сайт                                                       |
| CRM-поля            | источник `2GIS`, исходный запрос, город поиска, флаги наличия контактов и `contactCompletenessScore` |
| География           | город, адрес, почтовый индекс, широта и долгота                                                      |
| Репутация           | рейтинг, количество отзывов, тексты отзывов при включённой опции                                     |
| Операционные данные | часы работы, ссылка на карточку 2ГИС                                                                 |
| Экспорт             | JSON, CSV, Excel, API, webhooks, Google Sheets, Make, Zapier                                         |

### Почему это закрывает боль клиента

| Боль                                      | Как помогает актор                                                          |
| ----------------------------------------- | --------------------------------------------------------------------------- |
| Ручной сбор из карт занимает часы         | Один запуск собирает структурированные строки по городу и категории         |
| Контакты разбросаны по карточкам          | Телефоны, сайты, email и ссылки собираются в одном датасете                 |
| Нужна выгрузка базы 2ГИС в Excel          | Датасет можно скачать в Excel, CSV или JSON прямо из Apify                  |
| Нужно оценить рынок перед продажами       | Рейтинги, отзывы, категории и координаты помогают сегментировать компании   |
| Не хочется ставить программу на компьютер | Парсер 2ГИС онлайн работает в облаке через Apify, браузер и API             |
| Ищут бесплатный парсер 2ГИС               | Начните с малого лимита и проверьте результат перед платной выгрузкой       |
| Ищут парсер 2ГИС скачать бесплатно        | Вместо скачивания программы запускается облачная задача с готовым экспортом |
| Нужна не демо-строка, а рабочая база      | Лимит 100-1000 строк помогает собрать сегмент под продажи или аналитику     |

### Основные возможности

- **Парсер организаций 2ГИС** по рубрике, ключевому слову и городу.
- **Выгрузка базы 2ГИС** в Excel, CSV, JSON и через Apify API.
- **Сбор телефонов из 2ГИС** вместе с сайтами, email, адресами и координатами.
- **Парсинг отзывов 2ГИС** с текстами, авторами, оценками, датами и официальными ответами, если включить `includeReviews`.
- **Поддержка 200+ городов** в России, Казахстане, ОАЭ, Узбекистане, Кыргызстане, Армении, Грузии, Азербайджане и других странах.
- **Контроль бюджета** через `maxItems`: сначала маленький тест, затем масштабирование только рабочих городов и рубрик.
- **Готовность для CRM и аналитики**: данные уже нормализованы в строки и поля.

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

1. Откройте актор на Apify.
2. В поле `query` укажите категорию или запрос: `стоматология`, `автосервис`, `салон красоты`, `ресторан`.
3. В поле `city` укажите город: `Москва`, `Новосибирск`, `Санкт-Петербург`, `Алматы`, `Астана`, `Dubai`.
4. Оставьте `maxItems: 20` для первого теста.
5. Нажмите запуск и дождитесь завершения.
6. В датасете выберите экспорт в Excel, CSV, JSON или подключите API.

### Примеры запуска

#### Собрать стоматологии в Москве

```json
{
  "query": "стоматология",
  "city": "Москва",
  "maxItems": 20
}
````

#### Собрать автосервисы в Москве с отзывами

```json
{
  "query": "автосервис",
  "city": "Москва",
  "maxItems": 500,
  "includeReviews": true,
  "maxReviews": 5
}
```

#### Выгрузить кафе в Новосибирске для базы продаж

```json
{
  "query": "кафе",
  "city": "Новосибирск",
  "maxItems": 1000
}
```

#### Проверить город в Казахстане маленьким тестом

```json
{
  "query": "кафе",
  "city": "Алматы",
  "maxItems": 20
}
```

### Готовые платные связки город + рубрика

Используйте эти связки как стартовые сегменты для продаж, а не как случайные демо-запросы.

| Сегмент               | Ввод                                                        | Когда полезно                                        |
| --------------------- | ----------------------------------------------------------- | ---------------------------------------------------- |
| Стоматологии Москва   | `query: стоматология`, `city: Москва`, `maxItems: 100-500`  | продажи клиникам, CRM-обогащение, локальный SEO      |
| Автосервисы Москва    | `query: автосервис`, `city: Москва`, `maxItems: 100-500`    | B2B-услуги, запчасти, страхование, SaaS для сервисов |
| Кафе Новосибирск      | `query: кафе`, `city: Новосибирск`, `maxItems: 100-500`     | поставщики, доставка, отзывы, геоаналитика           |
| Кафе Алматы           | `query: кафе`, `city: Алматы`, `maxItems: 20-200`           | проверка KZ-спроса, поставщики, локальные продажи    |
| Салоны красоты Москва | `query: салон красоты`, `city: Москва`, `maxItems: 100-500` | маркетинг, записи, CRM, рассылки                     |
| Рестораны Москва      | `query: ресторан`, `city: Москва`, `maxItems: 500-1000`     | поставщики, доставка, отзывы, геоаналитика           |

### Параметры ввода

| Параметр             | Тип     | Обязательный | По умолчанию      | Описание                                                           |
| -------------------- | ------- | ------------ | ----------------- | ------------------------------------------------------------------ |
| `query`              | string  | да           | -                 | Что искать в 2ГИС: рубрика, категория, услуга или ключевое слово   |
| `city`               | string  | да           | -                 | Город поиска: `Москва`, `Новосибирск`, `Санкт-Петербург`, `Алматы` |
| `maxItems`           | integer | нет          | `20`              | Максимальное число организаций для выгрузки                        |
| `includeReviews`     | boolean | нет          | `false`           | Включить парсинг текстов отзывов                                   |
| `maxReviews`         | integer | нет          | `10`              | Сколько отзывов собирать на одну организацию                       |
| `language`           | string  | нет          | `ru_RU`           | Язык ответа 2ГИС, когда он доступен                                |
| `proxyConfiguration` | object  | нет          | Apify Residential | Прокси-настройки для стабильного запуска                           |

### Формат результата

Пример строки в датасете:

```json
{
  "id": "70000001042166459",
  "leadSource": "2GIS",
  "searchQuery": "стоматология",
  "searchCity": "Москва",
  "name": "Стоматология Дентал",
  "category": "Стоматология",
  "allCategories": "Стоматология, Медицинский центр",
  "address": "ул. Тверская, 10",
  "city": "Москва",
  "postcode": "125009",
  "latitude": 55.75721,
  "longitude": 37.61542,
  "phone": "+7 (495) 000-00-00",
  "allPhones": "+7 (495) 000-00-00, +7 (999) 000-00-00",
  "email": "info@example.ru",
  "website": "https://example.ru",
  "hasPhone": true,
  "hasEmail": true,
  "hasWebsite": true,
  "contactCompletenessScore": 100,
  "socialLinks": "telegram:example, vk:example",
  "rating": 4.4,
  "reviewCount": 3256,
  "workingHours": "Пн: 11:00-00:00; Вт: 11:00-00:00",
  "url": "https://2gis.ru/firm/70000001042166459",
  "reviews": []
}
```

### Кому подходит

1. **B2B-продажи и лидогенерация**: собрать список компаний по городу, нише и категории.
2. **CRM-обогащение**: добавить телефоны, сайты, адреса, координаты и рейтинги к существующей базе.
3. **Маркетинговые исследования**: оценить количество компаний, плотность конкурентов и качество отзывов.
4. **Локальный SEO**: проверить карточки, адреса, рейтинг, отзывы и присутствие конкурентов в 2ГИС.
5. **Франшизы и сети**: найти филиалы, сравнить города и собрать географию точек.
6. **Недвижимость и геоаналитика**: выгрузить инфраструктуру вокруг локаций.
7. **Мониторинг отзывов**: собрать тексты отзывов и ответы организаций для анализа репутации.

### Чем отличается от ручного поиска и программ-парсеров

| Критерий               | Этот актор Apify                 | Ручной поиск              | Десктопная программа |
| ---------------------- | -------------------------------- | ------------------------- | -------------------- |
| Установка              | не нужна                         | не нужна                  | часто нужна          |
| Массовая выгрузка      | да                               | нет                       | зависит от программы |
| Экспорт Excel/CSV/JSON | да                               | ручное копирование        | обычно да            |
| API и автоматизация    | да                               | нет                       | редко                |
| Масштабирование        | через Apify runs, schedules, API | вручную                   | зависит от ПК        |
| Контроль бюджета       | лимит `maxItems` перед запуском  | тратится время сотрудника | зависит от лицензии  |
| Повторные запуски      | можно сохранять как задачи       | каждый раз вручную        | зависит от программы |

### Города и страны

2ГИС покрывает 200+ городов в 20 странах. Для русскоязычных платных сценариев чаще всего полезны конкретные города и рубрики, а не общий запрос "СНГ".

| Страна      | Примеры городов                                                                                            |
| ----------- | ---------------------------------------------------------------------------------------------------------- |
| Россия      | Москва, Санкт-Петербург, Новосибирск, Екатеринбург, Казань, Нижний Новгород, Самара, Омск, Краснодар, Сочи |
| Казахстан   | Алматы, Астана, Шымкент, Караганда, Актобе, Тараз, Павлодар, Усть-Каменогорск, Семей, Атырау               |
| ОАЭ         | Dubai, Abu Dhabi, Sharjah                                                                                  |
| Узбекистан  | Ташкент, Самарканд, Бухара, Наманган                                                                       |
| Кыргызстан  | Бишкек, Ош                                                                                                 |
| Армения     | Ереван                                                                                                     |
| Грузия      | Тбилиси, Батуми                                                                                            |
| Азербайджан | Баку                                                                                                       |
| Беларусь    | Минск                                                                                                      |
| Таджикистан | Душанбе                                                                                                    |

### Стоимость и контроль бюджета

Актор работает по модели оплаты за результат. Точная цена отображается на вкладке Pricing в Apify перед запуском. Чтобы не тратить бюджет вслепую, начните с `maxItems: 20`, проверьте качество выдачи и только затем увеличивайте лимит до 500, 1000 или больше.

Время выполнения зависит от города, категории, плотности выдачи, прокси и опции отзывов. Парсинг отзывов медленнее, потому что для каждой организации нужны дополнительные запросы.

### Интеграции

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("ВАШ_APIFY_TOKEN")

run = client.actor("tugelbay/2gis-scraper").call(run_input={
    "query": "стоматология",
    "city": "Москва",
    "maxItems": 100,
})

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

#### JavaScript

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

const client = new ApifyClient({ token: "ВАШ_APIFY_TOKEN" });

const run = await client.actor("tugelbay/2gis-scraper").call({
  query: "автосервис",
  city: "Москва",
  maxItems: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Получено организаций: ${items.length}`);
```

#### cURL

```bash
curl "https://api.apify.com/v2/acts/tugelbay~2gis-scraper/runs" \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ВАШ_APIFY_TOKEN" \
  -d '{"query": "кафе", "city": "Новосибирск", "maxItems": 100}'
```

### Частые вопросы

#### Что такое парсер 2ГИС?

Парсер 2ГИС — это инструмент для автоматической выгрузки организаций из 2ГИС в структурированный датасет. Он собирает названия, категории, телефоны, сайты, email при наличии, адреса, координаты, рейтинги, отзывы и ссылки на карточки.

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

Запустите актор с нужным городом и запросом, дождитесь завершения и скачайте датасет в формате Excel. Также доступны CSV, JSON, API, Google Sheets, Make, Zapier и webhooks.

#### Можно ли собрать телефоны компаний из 2ГИС?

Да. Если телефон опубликован в карточке организации, актор выгрузит основной телефон и список всех найденных телефонов. Если телефон или email не опубликованы, актор не сможет получить закрытые данные.

#### Можно ли парсить отзывы 2ГИС?

Да. Включите `includeReviews` и задайте `maxReviews`. В результате появятся тексты отзывов, авторы, оценки, даты и официальные ответы, если они доступны.

#### Работает ли парсер 2ГИС онлайн без установки?

Да. Это облачный актор Apify. Не нужно скачивать программу, устанавливать расширение или держать компьютер включённым во время выполнения.

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

Нет. Если вам нужен `парсер 2гис скачать`, этот вариант заменяет установку программы: запуск идёт в облаке, а результат скачивается как Excel, CSV или JSON.

#### Есть ли бесплатный парсер 2ГИС?

Можно начать с маленького тестового запуска, например `maxItems: 20`, и проверить качество строк перед большой выгрузкой. Это безопаснее, чем сразу искать `парсер 2гис скачать бесплатно`: вы не устанавливаете неизвестную программу, не храните ключи на своем ПК и контролируете лимит результата до запуска.

#### Есть ли GitHub-версия парсера 2ГИС?

Если вы ищете `парсер 2гис гитхаб` или `парсер 2гис github`, используйте API-примеры выше: Python, JavaScript, HTTP и MCP. Код интеграции можно хранить в своем репозитории, а сбор данных запускать как Apify Actor с расписанием, webhooks и экспортом датасета.

#### Можно ли спарсить базу 2ГИС по городу и рубрике?

Да. Укажите город и рубрику, например `стоматология` + `Москва` или `кафе` + `Новосибирск`. Для рабочей базы продаж обычно начинают с 100-500 строк, потом масштабируют только сегменты с хорошими телефонами, сайтами и `contactCompletenessScore`.

#### Чем парсер 2ГИС отличается от официального API?

Это независимый Apify Actor, а не официальный продукт 2ГИС. Он предназначен для автоматизации выгрузки публично доступных данных. Перед использованием проверьте условия 2ГИС и требования вашей юрисдикции к обработке данных.

#### Почему результатов меньше, чем ожидалось?

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

#### Какой язык результата выбрать?

Для русскоязычных запросов оставьте `ru_RU`. Большая часть данных 2ГИС всё равно хранится на языке карточки организации.

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

- Актор выгружает только публично доступные данные из карточек 2ГИС.
- Телефоны, email и сайты есть не у всех организаций.
- Парсинг отзывов увеличивает время запуска.
- Очень большие выгрузки лучше делить на несколько запусков по городам или категориям.
- Данные отражают состояние 2ГИС на момент запуска.

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

#### v1.2 (2026-05-13)

- Обновлено позиционирование под русскоязычный спрос: `парсер 2гис`, `бесплатный парсер 2гис`, `скачать парсер 2гис`, `парсер 2гис скачать бесплатно`, `2гис парсер онлайн`, `парсер 2гис гитхаб`, `парсер 2гис github`, `парсер дубльгис`, `парсинг базы 2гис`, `спарсить базу 2гис`.
- Store example и форма запуска переведены на проверенный RU-сценарий `стоматология` + `Москва` с платными рабочими лимитами 100-1000 строк.
- Добавлен KZ browser fallback для случаев, когда fast direct API возвращает пустой результат. Live-проверка `кафе` + `Алматы` вернула 5 организаций и прошла quality contract.
- Добавлены готовые связки город + рубрика для рабочих платных запусков, включая проверенный KZ-тест `кафе` + `Алматы`.

#### v1.1 (2026-05-11)

- Добавлены CRM-поля `leadSource`, `searchQuery`, `searchCity`, `hasPhone`, `hasEmail`, `hasWebsite` и `contactCompletenessScore`.
- Обновлены представления датасета, чтобы платные выгрузки проще фильтровать по полноте контактов и переносить в CRM.

#### v1.0 (2026-04-02)

- Первый публичный релиз.
- Поиск организаций по городу и запросу.
- Выгрузка 20+ полей по каждой организации.
- Опциональный сбор отзывов.
- Поддержка 200+ городов в 20 странах.
- Оплата за извлечённую организацию.

### Похожие акторы

- [Сбор лидов из Google Maps](https://apify.com/tugelbay/google-maps-leads) — телефоны, сайты, email и рейтинги из Google Maps.
- [Парсер JustDial для Индии](https://apify.com/tugelbay/justdial-leads-extractor) — бизнес-данные и контакты компаний из JustDial.
- [Веб-браузер для RAG](https://apify.com/tugelbay/rag-web-browser) — поиск Google и извлечение страниц в Markdown для AI-агентов.
- [Извлечение текста статей](https://apify.com/tugelbay/article-extractor) — чистый текст статей из URL.
- [Определение технологий сайта](https://apify.com/tugelbay/website-tech-stack-detector) — CMS, фреймворки, аналитика, пиксели и платежи.

Все акторы: [apify.com/tugelbay](https://apify.com/tugelbay)

# Actor input Schema

## `query` (type: `string`):

Рубрика, услуга или ключевое слово для поиска в 2ГИС, например 'стоматология', 'автосервис', 'салон красоты', 'ресторан' или 'hotel'.

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

Город для выгрузки базы 2ГИС, например 'Москва', 'Новосибирск', 'Санкт-Петербург', 'Алматы', 'Астана', 'Dubai', 'Ташкент', 'Бишкек', 'Ереван', 'Тбилиси' или 'Баку'. Для Казахстана актор включает browser fallback, если fast API возвращает пусто; перед большим запуском проверьте город тестом на 20 строк.

## `maxItems` (type: `integer`):

Максимальное количество организаций для выгрузки. Для теста используйте 20 строк; для рабочей базы продаж обычно ставят 100-1000 строк по городу и рубрике. Один запуск ограничен 1000 организациями, а режим отзывов — 200 организациями.

## `includeReviews` (type: `boolean`):

Собирать тексты отзывов, оценки, даты и официальные ответы по каждой организации. Увеличивает время запуска; при включенных отзывах лимит организаций ограничен 200 за запуск.

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

Сколько отзывов собирать на одну организацию, если включена выгрузка отзывов. Для контроля времени и бюджета максимум ограничен 20 отзывами.

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

Язык ответа 2ГИС, когда он доступен. Большая часть данных зависит от языка карточек организаций.

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

Настройки прокси. Residential proxy обычно стабильнее для больших выгрузок.

## Actor input object example

```json
{
  "query": "стоматология",
  "city": "Москва",
  "maxItems": 20,
  "includeReviews": false,
  "maxReviews": 10,
  "language": "ru_RU",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "query": "стоматология",
    "city": "Москва",
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("tugelbay/2gis-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 = {
    "query": "стоматология",
    "city": "Москва",
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("tugelbay/2gis-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 '{
  "query": "стоматология",
  "city": "Москва",
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call tugelbay/2gis-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Парсер 2ГИС онлайн: телефоны, email и база компаний",
        "description": "Парсер 2ГИС онлайн: телефоны, сайты, email, отзывы, координаты компаний из России, Казахстана, ОАЭ, Узбекистана, Кыргызстана, Армении, Грузии и Азербайджана. Excel, CSV и API. Guide: https://konabayev.com/ru/tools/parser-2gis/?utm_source=apify_info&utm_medium=referral&utm_campaign=2gis-scraper",
        "version": "1.0",
        "x-build-id": "dqv6MbdMw1sXNlTYb"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/tugelbay~2gis-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-tugelbay-2gis-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/tugelbay~2gis-scraper/runs": {
            "post": {
                "operationId": "runs-sync-tugelbay-2gis-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/tugelbay~2gis-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-tugelbay-2gis-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "query",
                    "city"
                ],
                "properties": {
                    "query": {
                        "title": "Что искать",
                        "type": "string",
                        "description": "Рубрика, услуга или ключевое слово для поиска в 2ГИС, например 'стоматология', 'автосервис', 'салон красоты', 'ресторан' или 'hotel'."
                    },
                    "city": {
                        "title": "Город",
                        "type": "string",
                        "description": "Город для выгрузки базы 2ГИС, например 'Москва', 'Новосибирск', 'Санкт-Петербург', 'Алматы', 'Астана', 'Dubai', 'Ташкент', 'Бишкек', 'Ереван', 'Тбилиси' или 'Баку'. Для Казахстана актор включает browser fallback, если fast API возвращает пусто; перед большим запуском проверьте город тестом на 20 строк."
                    },
                    "maxItems": {
                        "title": "Лимит организаций",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Максимальное количество организаций для выгрузки. Для теста используйте 20 строк; для рабочей базы продаж обычно ставят 100-1000 строк по городу и рубрике. Один запуск ограничен 1000 организациями, а режим отзывов — 200 организациями.",
                        "default": 20
                    },
                    "includeReviews": {
                        "title": "Выгружать отзывы",
                        "type": "boolean",
                        "description": "Собирать тексты отзывов, оценки, даты и официальные ответы по каждой организации. Увеличивает время запуска; при включенных отзывах лимит организаций ограничен 200 за запуск.",
                        "default": false
                    },
                    "maxReviews": {
                        "title": "Отзывы на организацию",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Сколько отзывов собирать на одну организацию, если включена выгрузка отзывов. Для контроля времени и бюджета максимум ограничен 20 отзывами.",
                        "default": 10
                    },
                    "language": {
                        "title": "Язык результата",
                        "enum": [
                            "ru_RU",
                            "en_RU",
                            "cs_CZ",
                            "it_IT",
                            "es_ES"
                        ],
                        "type": "string",
                        "description": "Язык ответа 2ГИС, когда он доступен. Большая часть данных зависит от языка карточек организаций.",
                        "default": "ru_RU"
                    },
                    "proxyConfiguration": {
                        "title": "Прокси",
                        "type": "object",
                        "description": "Настройки прокси. Residential proxy обычно стабильнее для больших выгрузок."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
