# RU Company Property Footprint by INN (auctions + fire-safety) (`isolovyev/ru-company-realestate-finder`) Actor

Real estate linked to a Russian company by INN: buildings it declared for fire-safety compliance (address level) and properties from public auction lots (with cadastral numbers). Partial by design - a company shows up only where it filed a declaration or a property reached an auction.

- **URL**: https://apify.com/isolovyev/ru-company-realestate-finder.md
- **Developed by:** [Ivan Solovyev](https://apify.com/isolovyev) (community)
- **Categories:** Real estate, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $100.00 / 1,000 company checkeds

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

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

## What's an Apify Actor?

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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## 🏢 RU Company Real Estate Finder by INN

<table width="100%">
<tr>
<td style="padding:24px 28px;background:#EEF2FF;border:1px solid #C7D2FE;border-top:4px solid #4F46E5;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1E1B4B;line-height:1.3">What real estate is a Russian company linked to?</span><br>
<span style="font-size:15px;color:#4B5563;line-height:1.6">Give this Actor a company INN and get back real estate it is linked to: buildings and premises it runs as a fire-safety inspection site, property named in public auction lots, and a Rosreestr cadastral number resolved by address for objects that do not already carry one. A research lead list, not a full ownership registry.</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #E0E7FF;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#4338CA">🏛️ Fire-safety registry</span><br>
<span style="font-size:12px;color:#57534E">Buildings and premises the company runs as an inspected site, with full address</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #E0E7FF;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#4338CA">🔨 Auction lots</span><br>
<span style="font-size:12px;color:#57534E">Property named in public sale and bidding records</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #E0E7FF;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#4338CA">🗺️ Cadastral numbers</span><br>
<span style="font-size:12px;color:#57534E">Resolved by address on the public cadastral map when the source itself has none</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #E0E7FF;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#4338CA">🔗 Source on every object</span><br>
<span style="font-size:12px;color:#57534E">A direct link to the original public record for each object</span>
</td>
</tr>
</table>

### ✨ What it does

Given a Russian company INN, this Actor first resolves the company's legal name (fedresurs.ru), then
searches open sources for real estate the company is linked to and merges the results into one record
per INN:

- **digital.mchs.gov.ru** (fire-safety inspection registry) - on by default. Owners declare each
  building or premises they operate, with the object's name, full address, registrar and registration
  date. Searched by the resolved company name (this registry has no INN field), and every result is
  then filtered by its own INN so a common company name never pulls in an unrelated namesake.
- **torgi.gov.ru** (public auction and bidding lots) - on by default. Covers property actually put up
  for sale or auction, searched by INN, with a cadastral number already in the lot's own text.
- **sudact.ru** (arbitration court decisions) - off by default, optional. Cadastral numbers are
  sometimes quoted alongside a company's name or INN in a published decision. Turn it on via the
  `sources` field.

### 🗺️ Cadastral numbers by address

A fire-safety declaration gives an address but never a cadastral number, and that source usually
supplies most of the objects in a run. To close that gap, every object that has an address but no
number is looked up by address on the public cadastral map (a Rosreestr mirror) and, when matched,
gets `cadastralNumber`, `cadastralObjectType`, `cadastralMatchedAddress` and
`cadastralSource: "nspd-by-address"`. Auction lots already carry their own number and are left as is.
This step is on by default (`resolveCadastralNumbers`) and capped per run (`maxAddressLookups`) - a
repeated address is served from cache at no extra cost. When the map itself is unreachable for a run
(after 3 retries with a fresh proxy session), that is recorded per INN in `sourceErrors` under the
`nspd` key with `sourceFailed` set to true - affected objects still ship with their address, just
without a resolved number.

### 🗂️ Sources

| Source | What it gives | Limitation |
|---|---|---|
| digital.mchs.gov.ru (fire-safety registry) | Buildings/premises the company runs as an inspected site: object name, full address, registrar, registration date | An inspection site is not proof of ownership - it can be a leased building. On by default. |
| torgi.gov.ru (auction lots) | Property named in a public sale/bidding lot: cadastral number from the lot text, lot status, sale type | Only property that was actually put up for sale or auction. On by default. |
| Public cadastral map (by address) | Adds the Rosreestr cadastral number, object type and matched address to any object above that has an address but no number yet | Runs only on objects with an address; capped per run, see `maxAddressLookups`. |
| sudact.ru (court decisions) | Cadastral numbers quoted alongside the company's name or INN in a published arbitration decision | Off by default, optional. If a search does not return a result, that is marked per INN in `sourceErrors` and the rest of the record still ships. |

### ⚙️ Input

| Field | Description |
|---|---|
| `inns` | Company INNs to search |
| `sources` | `torgi` and `mchs` on by default; `sudact` is optional, off by default |
| `maxPerSource` | Per INN, per source: max auction lots (torgi) or court decisions (sudact) examined. Default 15 |
| `resolveCompanyName` | Resolve the company's legal name from fedresurs.ru first; required for mchs (its only search key). Default true |
| `resolveCadastralNumbers` | Look up a cadastral number by address for objects that only have one (mainly mchs entries). Default true |
| `maxAddressLookups` | Cap on address lookups per run - a repeated address is cached and free. Default 25 |
| `proxyConfiguration` | Required on Apify: set to Residential proxy, country RU. All sources require a Russian IP. |

### 📤 Output (one record per INN)

| Field | Description |
|---|---|
| `inn` | The input INN this record was built for |
| `matchedName` | Company legal name resolved from fedresurs.ru, when name resolution is enabled and succeeds |
| `realEstate` | Objects linked to the company - see below |
| `realEstateCount` | Number of objects in `realEstate` |
| `sources` | Which sources actually contributed at least one object |
| `sourcesRequested` | Which sources were requested for this run |
| `sourceErrors` | Per-source failure reason for this INN, if any - a failed source never blocks the record |
| `sourceFailed` | True if at least one requested source failed for this INN - see `sourceErrors` |
| `partial` | Always true - see Limitations below |
| `partialNote` | Human-readable explanation of the `partial` flag |
| `scrapedAt` | ISO timestamp of the run |

Each entry in `realEstate` carries `source` and `sourceUrl` plus fields that depend on where it came
from: `objectName`, `address`, `owner`, `ogrn`, `registrar`, `registryNumber`, `registeredAt` for mchs
entries; `lotStatus`, `biddType` for torgi entries; `role`, `context`, `regDate`, `caseNumber`,
`caseTitle` for sudact entries. `cadastralNumber` is present whenever the object has one - directly
from torgi or sudact, or resolved by address - and when resolved by address it comes with
`cadastralObjectType`, `cadastralMatchedAddress` and `cadastralSource: "nspd-by-address"`.

```json
{
  "inn": "2128048923",
  "matchedName": "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ \"ЧЕБОКСАРСКИЙ ТРУБНЫЙ ЗАВОД\"",
  "realEstate": [
    {
      "cadastralNumber": "21:01:020602:123",
      "source": "mchs",
      "objectName": "Одноэтажное панельное здание (литер Е) с сооружениями (литер I,II)",
      "address": "Чувашская Республика, г. Новочебоксарск, ул. Промышленная, влд. 19",
      "owner": "ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ \"ЧЕБОКСАРСКИЙ ТРУБНЫЙ ЗАВОД\"",
      "ogrn": "1032128006459",
      "registrar": "ГУ МЧС России по Чувашской Республике",
      "registryNumber": "21-08-2026-009746",
      "registeredAt": "2026-06-10",
      "cadastralObjectType": "Здание",
      "cadastralMatchedAddress": "Чувашская Республика, г Новочебоксарск, ул Промышленная, влд 19",
      "cadastralSource": "nspd-by-address",
      "sourceUrl": "https://digital.mchs.gov.ru/fgpn/declaration/21-08-2026-009746"
    },
    {
      "cadastralNumber": "21:01:020602:145",
      "source": "torgi",
      "role": "debtor",
      "lotStatus": "FAILED",
      "biddType": "Реализация имущества должников",
      "sourceUrl": "https://torgi.gov.ru/new/public/lots/lot/example"
    }
  ],
  "realEstateCount": 2,
  "sources": ["mchs", "torgi"],
  "sourcesRequested": ["torgi", "mchs"],
  "sourceErrors": null,
  "sourceFailed": false,
  "partial": true,
  "partialNote": "Partial list assembled from the fire-safety declaration registry, public auction/bidding lot records and, optionally, arbitration court decisions - this is not a full property registry for the company.",
  "scrapedAt": "2026-09-07T10:00:00+00:00"
}
```

*Illustrative example, based on a real object mix confirmed live - actual field values vary run to
run.*

### 💰 Pricing & time

Billed per company checked - see the Pricing tab for the current price.

A measured run with the default sources (torgi + mchs) and cadastral lookups capped at 10 addresses
finished in about 3 minutes (193 seconds) and used under $0.10 of platform compute, returning around
100 real estate objects for one company. Address lookups run one at a time, roughly 13-14 seconds
each, so a higher `maxAddressLookups` extends runtime - a repeated address costs nothing extra.

### 🚧 Limitations

- **Partial by design.** There is no reverse "INN -> all real estate owned by this company" index
  anywhere in Russia's open data landscape. This Actor only surfaces objects that happen to be under
  fire-safety inspection, listed in an auction/sale lot, or (optionally) named in a court decision.
- **Fire-safety objects are not proof of ownership.** The registry records who operates a site as an
  inspected object, which can be a leased building.
- **INN only.** No search by company name or address.
- **No current-ownership lookup.** Confirming who owns a specific object today requires a separate
  Rosreestr extract, which is out of scope for this Actor.

### ❓ FAQ

**Does this tell me who currently owns a property?**
No. It links a company to real estate that appears in the fire-safety inspection registry or an
auction/bidding lot. Current ownership requires a separate Rosreestr extract.

**Why do some objects have no cadastral number?**
`resolveCadastralNumbers` is on by default, but it only runs while `maxAddressLookups` allows it -
raise the cap to cover more objects in one run, or run the same INN again (repeated addresses are
served from cache).

**Can I search by company name or address instead of INN?**
No, INN is the only input.

**Why is sudact.ru off by default?**
It is an optional source. Turn it on via `sources` if you need court-sourced records; if a search does
not return a result for a run, that is marked per INN in `sourceErrors` and the rest of the record
still ships.

***

### 🇷🇺 RU / На русском

По ИНН компании актор собирает недвижимость, с которой она связана: сначала резолвит официальное
название (fedresurs.ru), затем ищет по открытым источникам и объединяет результат в одну запись на
ИНН.

- **digital.mchs.gov.ru** (реестр деклараций пожарной безопасности) - включён по умолчанию. Компании
  подают декларацию на каждое здание или помещение, которое эксплуатируют, с названием объекта, полным
  адресом, регистратором и датой. Поиск по названию (у реестра нет поля ИНН), каждый результат
  фильтруется по собственному полю ИНН, чтобы распространённое название не притянуло однофамильца.
- **torgi.gov.ru** (лоты торгов) - включён по умолчанию. Имущество, реально выставленное на продажу
  или торги, поиск по ИНН, кадастровый номер уже есть в тексте лота.
- **sudact.ru** (решения арбитражных судов) - выключен по умолчанию, опциональный источник. Кадастровый
  номер иногда упоминается рядом с названием или ИНН компании в тексте решения. Включается полем
  `sources`.

**Кадастровые номера по адресу.** Декларация МЧС не содержит кадастрового номера, а именно этот
источник обычно даёт больше всего объектов. Поэтому каждый объект с адресом, но без номера, ищется
по адресу на публичной кадастровой карте (реплика Росреестра); при совпадении объект получает
`cadastralNumber`, `cadastralObjectType`, `cadastralMatchedAddress` и
`cadastralSource: "nspd-by-address"`. Лоты торгов уже содержат свой номер и не трогаются. Шаг включён
по умолчанию (`resolveCadastralNumbers`) и ограничен на прогон (`maxAddressLookups`) - повторный адрес
берётся из кэша бесплатно. Если карта целиком недоступна в прогоне (после 3 повторов со свежей
сессией прокси), это записывается для ИНН в `sourceErrors` под ключом `nspd` с `sourceFailed: true` -
затронутые объекты остаются в отчёте со своим адресом, просто без номера.

**Ограничения.** Список частичный по устройству источников: обратного индекса «ИНН -> вся
недвижимость компании» в открытых данных РФ нет. Объект защиты МЧС - не доказательство
собственности (может быть арендованным зданием). Вход только по ИНН, без поиска по названию или
адресу. Текущего собственника объекта актор не определяет - это отдельная выписка Росреестра. Если хотя бы один из запрошенных источников упал для ИНН, это видно в полях sourceErrors и sourceFailed записи, а остальные источники всё равно входят в отчёт.

### 🔗 Все наши акторы для данных по России, Казахстану и СНГ

<span style="font-size:14px;color:#4B5563">Одна линейка для маркетплейсов, розничных сетей, госзакупок и проверки контрагентов - соседний актор открывается одним кликом по карточке.</span>

<table width="100%" style="table-layout:fixed">
<tr>
<td style="padding:0;width:25%;background:#FFFFFF;border:1px solid #E0E7FF;border-top:3px solid #4F46E5;border-radius:10px 0 0 10px;vertical-align:top">
<a href="https://apify.com/isolovyev/marketplace-seller-leads" style="display:block;padding:14px 12px;text-decoration:none">
<span style="font-size:13px;font-weight:800;color:#4338CA">🛍️ Лиды продавцов маркетплейсов</span><br>
<span style="font-size:11px;color:#57534E">продавцы WB / Ozon / Яндекс.Маркет / Kaspi с ИНН и ОГРН</span>
</a>
</td>
<td style="padding:0;width:25%;background:#FFFFFF;border:1px solid #E0E7FF;border-left:none;border-top:3px solid #4F46E5;vertical-align:top">
<a href="https://apify.com/isolovyev/zakupki-tender-monitor" style="display:block;padding:14px 12px;text-decoration:none">
<span style="font-size:13px;font-weight:800;color:#4338CA">📄 Тендеры 44-ФЗ / 223-ФЗ</span><br>
<span style="font-size:11px;color:#57534E">госзакупки, нацрежим, реестр российского ПО</span>
</a>
</td>
<td style="padding:0;width:25%;background:#FFFFFF;border:1px solid #E0E7FF;border-left:none;border-top:3px solid #4F46E5;vertical-align:top">
<a href="https://apify.com/isolovyev/ru-counterparty-check" style="display:block;padding:14px 12px;text-decoration:none">
<span style="font-size:13px;font-weight:800;color:#4338CA">🔍 Проверка контрагента по ИНН</span><br>
<span style="font-size:11px;color:#57534E">5 источников, скоринг риска</span>
</a>
</td>
<td style="padding:0;width:25%;background:#FFFFFF;border:1px solid #E0E7FF;border-left:none;border-top:3px solid #4F46E5;border-radius:0 10px 10px 0;vertical-align:top">
<a href="https://apify.com/isolovyev/ru-software-registry-check" style="display:block;padding:14px 12px;text-decoration:none">
<span style="font-size:13px;font-weight:800;color:#4338CA">🏛️ Реестр российского ПО</span><br>
<span style="font-size:11px;color:#57534E">проверка по ИНН + досье заявителя</span>
</a>
</td>
</tr>
<tr>
<td style="padding:0;width:25%;background:#FFFFFF;border:1px solid #E0E7FF;border-top:3px solid #4F46E5;border-radius:10px 0 0 10px;vertical-align:top">
<a href="https://apify.com/isolovyev/ru-marketplaces-price-monitor" style="display:block;padding:14px 12px;text-decoration:none">
<span style="font-size:13px;font-weight:800;color:#4338CA">📈 Цены на маркетплейсах</span><br>
<span style="font-size:11px;color:#57534E">WB / Ozon / Яндекс.Маркет / Avito, трекинг цены</span>
</a>
</td>
<td style="padding:0;width:25%;background:#FFFFFF;border:1px solid #E0E7FF;border-left:none;border-top:3px solid #4F46E5;vertical-align:top">
<a href="https://apify.com/isolovyev/kaspi-price-monitor" style="display:block;padding:14px 12px;text-decoration:none">
<span style="font-size:13px;font-weight:800;color:#4338CA">🇰🇿 Цены и позиции на Kaspi.kz</span><br>
<span style="font-size:11px;color:#57534E">Казахстан, позиция в выдаче и цена</span>
</a>
</td>
<td style="padding:0;width:25%;background:#FFFFFF;border:1px solid #E0E7FF;border-left:none;border-top:3px solid #4F46E5;vertical-align:top">
<a href="https://apify.com/isolovyev/ru-retail-chains-scraper" style="display:block;padding:14px 12px;text-decoration:none">
<span style="font-size:13px;font-weight:800;color:#4338CA">🏪 Розничные сети РФ</span><br>
<span style="font-size:11px;color:#57534E">Магнит, Метро, М.Видео, Дикси, Глобус, Купер в единой схеме</span>
</a>
</td>
<td style="padding:0;width:25%;background:#FFFFFF;border:1px solid #E0E7FF;border-left:none;border-top:3px solid #4F46E5;border-radius:0 10px 10px 0;vertical-align:top">
<a href="https://apify.com/isolovyev/ru-retail-chains-extended" style="display:block;padding:14px 12px;text-decoration:none">
<span style="font-size:13px;font-weight:800;color:#4338CA">🛒 Ашан: цены и остатки</span><br>
<span style="font-size:11px;color:#57534E">цена, старая цена, остаток в штуках, рейтинг</span>
</a>
</td>
</tr>
<tr>
<td style="padding:0;width:25%;background:#FFFFFF;border:1px solid #E0E7FF;border-top:3px solid #4F46E5;border-radius:10px 0 0 10px;vertical-align:top">
<a href="https://apify.com/isolovyev/ru-product-cards" style="display:block;padding:14px 12px;text-decoration:none">
<span style="font-size:13px;font-weight:800;color:#4338CA">🏷️ Карточки товаров</span><br>
<span style="font-size:11px;color:#57534E">название, фото и характеристики с 17 магазинов по ссылке или названию</span>
</a>
</td>
<td style="padding:0;width:25%;background:#FFFFFF;border:1px solid #E0E7FF;border-left:none;border-top:3px solid #4F46E5;vertical-align:top">
<a href="https://apify.com/isolovyev/ru-egrz-expertise" style="display:block;padding:14px 12px;text-decoration:none">
<span style="font-size:13px;font-weight:800;color:#4338CA">🏗️ Стройка: проекты по ИНН</span><br>
<span style="font-size:11px;color:#57534E">заключения экспертизы ЕГРЗ: объект, регион, дата и вердикт</span>
</a>
</td>
<td style="padding:0;width:25%;background:#FFFFFF;border:1px solid #E0E7FF;border-left:none;border-top:3px solid #4F46E5;vertical-align:top">
<a href="https://apify.com/isolovyev/ru-conformity-check" style="display:block;padding:14px 12px;text-decoration:none">
<span style="font-size:13px;font-weight:800;color:#4338CA">📋 Сертификаты и декларации</span><br>
<span style="font-size:11px;color:#57534E">документы о соответствии по ИНН: заявитель и изготовитель</span>
</a>
</td>
<td style="padding:14px 12px;width:25%;background:#FAFAFF;border:1px solid #E0E7FF;border-left:none;border-top:3px solid #4F46E5;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:13px;font-weight:800;color:#818CF8">✨ Продолжение следует</span><br>
<span style="font-size:11px;color:#9CA3AF">линейка растёт: следующий актор уже в работе</span>
</td>
</tr>
</table>

### 💬 Вопросы и поддержка

Нашли ошибку или есть вопрос? Откройте тикет на вкладке **Issues** этого актора.

# Actor input Schema

## `inns` (type: `array`):

Company INN (10 digits for a legal entity) to search for. Each INN is queried against every enabled source and merged into one company record.

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

Which open sources to search per INN. torgi = torgi.gov.ru public auction and bidding lots (covers property actually put up for sale), on by default. mchs = digital.mchs.gov.ru fire-safety declaration registry, where owners declare the buildings they operate directly (needs the resolved company name, see 'Resolve company name'), on by default. sudact = sudact.ru full-text arbitration court decisions - an optional, experimental source, off by default. Turn it on if you need court-sourced records; if a search does not return a result, that is recorded per INN in the output's sourceErrors field and the rest of the record still ships.

## `maxPerSource` (type: `integer`):

Per INN, per source: sudact = max court decisions opened and scanned for cadastral numbers; torgi = max auction lots examined. Higher = more thorough but slower/heavier on the source site.

## `resolveCompanyName` (type: `boolean`):

Look up each INN on fedresurs.ru first to get the company's legal name, then also search sudact.ru by that name (a bare INN string has much weaker recall in court-decision text than the company's own name) and to search mchs by name (its only search key). If this lookup fails, the run continues with INN-only queries for sudact/torgi and skips mchs - it never blocks the actor.

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

Required on Apify: set proxyConfiguration to Apify Residential proxy with country RU. All sources require a Russian IP.

## `resolveCadastralNumbers` (type: `boolean`):

Fire-safety declarations give an address but no cadastral number. Turn this on to look each address up on the public cadastral map and attach the number, the object type and the address as the register spells it. Auction lots already carry their own number from the lot text and are left untouched.

## `maxAddressLookups` (type: `integer`):

Safety cap on how many distinct addresses are looked up on the cadastral map - this counts lookups, not objects: a repeated address is served from cache for free and does not count again. Each new lookup takes roughly 13-14 seconds, so a higher cap adds runtime. Objects beyond the cap keep their address and stay without a number.

## Actor input object example

```json
{
  "inns": [
    "7707083893"
  ],
  "sources": [
    "torgi",
    "mchs"
  ],
  "maxPerSource": 15,
  "resolveCompanyName": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "RU"
  },
  "resolveCadastralNumbers": true,
  "maxAddressLookups": 25
}
```

# Actor output Schema

## `results` (type: `string`):

One record per company: real estate linked to it via the fire-safety inspection registry and public auction lots, each with a cadastral number where available and a link to the source document.

# 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 = {
    "inns": [
        "7707083893"
    ],
    "sources": [
        "torgi",
        "mchs"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "RU"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("isolovyev/ru-company-realestate-finder").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 = {
    "inns": ["7707083893"],
    "sources": [
        "torgi",
        "mchs",
    ],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "RU",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("isolovyev/ru-company-realestate-finder").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 '{
  "inns": [
    "7707083893"
  ],
  "sources": [
    "torgi",
    "mchs"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "RU"
  }
}' |
apify call isolovyev/ru-company-realestate-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,isolovyev/ru-company-realestate-finder"
        }
    }
}

```

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/UzbIe8lmYGAAJSeeS/builds/8tO673a0wIo2l7009/openapi.json
