Всё, что вам нужно знать о работе с API Росреестра — от получения кадастрового номера по адресу до выгрузки полной выписки ЕГРН в формате JSON или PDF. Статья актуальна на апрель 2026 года.
Содержание
- Что такое API Росреестра и зачем оно нужно
- Базовые принципы работы
- Авторизация и безопасность
- Основные эндпоинты и примеры запросов
- Расшифровка ошибок
- Ограничения и квоты
- Готовые примеры кода на Python
- FAQ и типовые проблемы
Что такое API Росреестра и зачем оно нужно
API Росреестра — это RESTful-интерфейс, через который можно программно:
- Найти объект недвижимости по адресу или кадастровому номеру;
- Получить выписку ЕГРН в форматах
JSON,PDFилиXML; - Проверить переход/обременения прав;
- Отправлять «пакетные» запросы на 100+ объектов одним вызовом.
Интеграция подходит для:
- ИТ-отделов банков и ипотечных брокеров;
- Сервисов по подбору недвижимости;
- Программ бухгалтерского учёта и CRM-систем.
Базовые принципы работы
2.1 Формат взаимодействия
Все запросы выполняются по протоколу HTTPS, метод POST или GET, кодировка UTF-8.
2.2 Базовый URL
https://rosreestr.gov.ru/api/online/
2.3 Обязательные заголовки
Authorization: Bearer <API_KEY>Content-Type: application/json
Авторизация и безопасность
- Создайте аккаунт на официальном портале.
- Сгенерируйте API Key в личном кабинете.
⚠️ Сразу сохраните ключ: при повторном открытии он показывается в зашифрованном виде. - Задайте имя ключа, чтобы отличать от других проектов.
- Ограничьте IP (опционально) для повышения безопасности.
Основные эндпоинты и примеры запросов
4.1 Поиск кадастрового номера по адресу
POST /api/online/fir_objects_by_address
{
"address": "г Москва, ул Льва Толстого, д 16",
"limit": 10
}
Возвращает массив объектов, максимум 100 записей.
4.2 Получение краткой информации об объекте
GET /api/online/fir_object/{cadastralNumber}
Пример: /api/online/fir_object/77:01:0004010:123
4.3 Заказ полной выписки ЕГРН
POST /api/online/order_report
{
"objectIds": ["77:01:0004010:123"],
"reportType": "EGRN_FULL",
"format": "PDF"
}
В ответе приходит orderId, по которому нужно опрашивать статус:
GET /api/online/order_status/{orderId}
4.4 Пакетная отправка (batch)
POST /api/online/batch_order
{
"requests": [
{"cadastralNumber": "47:14:901004:1818", "reportType": "EGRN_SHORT"},
{"cadastralNumber": "77:05:0004010:321", "reportType": "OWNERSHIP_HISTORY"}
]
}
Ограничение: до 100 объектов в одном запросе.
Расшифровка ошибок
| Код | Смысл |
|---|---|
400 | Неверный формат тела запроса |
401 | Невалидный или просроченный API Key |
402 | Недостаточно средств на балансе |
404 | Объект не найден |
429 | Превышен лимит запросов (RPS) |
503 | Технические работы Росреестра |
Ограничения и квоты
- RPS: 5 запросов в секунду на один API Key;
- Дневной лимит: 10 000 запросов;
- Максимальный размер пакета: 100 объектов;
- Время хранения готового отчёта: 72 часа.
Готовые примеры кода на Python
7.1 Установка зависимостей
pip install requests
7.2 Класс-обёртка
<code>
import requests, time
class RosreestrAPI:
BASE = "https://rosreestr.gov.ru/api/online"
def __init__(self, api_key):
self.headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
def get_by_address(self, address):
url = f"{self.BASE}/fir_objects_by_address"
payload = {"address": address, "limit": 5}
r = requests.post(url, json=payload, headers=self.headers)
r.raise_for_status
return r.json
def wait_report(self, order_id, timeout=300):
url = f"{self.BASE}/order_status/{order_id}"
for _ in range(timeout//5):
r = requests.get(url, headers=self.headers)
j = r.json
if j.get("status") == "DONE":
return j["reportUrl"]
time.sleep(5)
raise TimeoutError("Report not ready")
api = RosreestrAPI("ВАШ_API_KEY")
data = api.get_by_address("г Казань, ул Пушкина, д 1")
print(data)
</code>
FAQ и типовые проблемы
Q: Как узнать свой текущий баланс?
GET /api/online/balance
Q: Можно ли получить координаты объекта?
Да, при запросе /fir_object в поле geometry возвращается GeoJSON с контуром.
Q: Где посмотреть логи и статистику запросов?
В личном кабинете → раздел «Статистика API». Экспорт в CSV доступен.
Q: Появилась ошибка 402, но деньги вроде есть.
Проверьте, что выставлен корректный тарифный план и не превышен лимит «денег в день».
Контакты поддержки:
- Телефон:
###-###-#### - Email: api@rosreestr.ru
- Telegram-канал: @rosreestr_api
Обновлено . В случае изменений в документации всегда сверяйтесь с официальным мануалом.