Выкладываем ЕГРЮЛ, доходы и расходы, налоги, количество сотрудников — в XML и JSON, бесплатно

ЕГРЮЛ, доходы и расходы, налоги, количество сотрудников в XML и JSON бесплатно
ЕГРЮЛ, доходы и расходы, налоги, количество сотрудников в XML и JSON бесплатно

Налоговая отдаёт данные ЕГРЮЛ по организации в виде PDF. Посредники за автоматический доступ по API хотят денег. На многих сайтах часть данных закрыто, часть функций недоступны бесплатно, и полно рекламы.

Особенно интересно, что на некоторых сайтах предоставляющих данные по API имеется логотип Сколково. Это такой высокотехнологический бизнес, наверное, открытые данные продавать.

Налоговая просит 150 000 рублей в год за доступ к данным ЕГРЮЛ в виде сваленных в архивы XML-файлов. У ФНС классный бизнес. Вы проявляйте должную осмотрительность при выборе поставщиков, но доступ к данным за деньги. Если вы хотите получить доступ и к реестру индивидуальных предпринимателей (ЕГРИП), то платите ещё 150 000 рублей в год. Согласитесь 300 000 рублей в год приличная сумма.

Остальные реестры данных у налоговой доступны бесплатно. Однако, без базы ЕГРЮЛ их вряд ли можно использовать. Самая частая операция в бизнесе подставить реквизиты из ЕГРЮЛ по ИНН.

Сформировалась целая отрасль, можно сказать, торговцев воздухом открытыми данными, создающих ВВП из воздуха как бухгалтеры, работающие руками там, где должны работать программы. Сколько компаний платит налоговой по 300 000р. в год?! Сколько программистов занято написанием одинаковых по функциям парсеров, которые переводят данные из XML налоговой в SQL и JSON?! Сколько серверов заняты под одинаковые функции?! Где добавочная стоимость? Все вроде при деле, а за чей счёт банкет?

Ну, ладно, “скандалить, критиковать каждый может”(с) как говорил бессмертный товарищ Райкин. “А что ты предлагаешь?” — резонно вы меня спросите. А я вам отвечу.

Что я предлагаю в теории

Потребовать от ФНС бесплатно отдавать все открытые данные по API в XML и JSON, а все реестры выкладывать в виде таблиц в формате CSV.

Хорошо бы ещё ФНС и принимала данные. А то чек пробить — нужно покупать кассу, а к кассе регулярно фискальный накопитель, платить посредникам из ОФД. Отправить бесплатно чек в налоговую по API нельзя. А на Украине можно! Чтобы заплатить налоги, надо ещё кучу денег потратить непонятно почему. Кто-то всё никак не нажрётся.

Бесплатно отправить декларацию в налоговую тоже надо нанимать посредников. Хотя налоговая вроде бы и говорит, что можно.

Для этого у нас есть в теории депутаты. Например, у нас на Пресне это депутат МосГорДумы Сергей Митрохин и выбранный электронным голосованием Олег Леонов.

Оба они, правда, не очень к законодательным инициативам граждан расположены, всё больше частными проблемами заняты. Но я им пошлю ссылку и формулировку законодательной инициативы о бесплатном предоставлении открытых данных в указанных форматах органами государственной власти.

Теория хорошо — переходи к практике

Ладно, погрустили, посмеялись, перехожу к делу. Понятно, что никто нам ничего не даст, поэтому рассчитывать можно только на себя. Заплатили мы 150 000 рублей. Спарсил я кучи этих архивов и открываю всем бесплатный доступ — https://egrul.itsoft.ru

Все организации, у которых есть ИНН, доступны по следующим ссылкам:

Организации также доступны по ссылкам с ОГРН.

Всем же JSON нужен, а не PDF.

Вы, наверное, удивились на фразе про ИНН. Да, не у всех он есть. Первая организация в ЕГРЮЛ, у которой нет — какая-то религиозная община. Ну не с ИНН же и с онлайн-кассой заниматься продажей свечек и наваром в 15 концов.

Наконец-то дата-центр ITSOFT оправдал своё название. :)

Отличия egrul.itsoft.ru от других

  • Данные в оригинальном виде. Вы видите, например, дату выписки.
  • Все данные открыты.
  • Без регистрации и бесплатно.
  • Без рекламы.
  • Супербыстро.
Выкладываем ЕГРЮЛ, доходы и расходы, налоги, количество сотрудников — в XML и JSON, бесплатно

Как пользоваться

Первый вариант с расширением .gz и без отправки заголовка Accept-encoding: gzip, но с декомпрессией на вашей стороне:

$content = gzdecode(file_get_contents('https://egrul.itsoft.ru/7730588444.json.gz')); $json = json_decode($content,TRUE); print_r($json);

Второй вариант с отправкой заголовка "Accept-encoding: gzip\r\n" и декомпрессией на вашей стороне:

$opts = [ "http" => [ "method" => "GET", "header" => "Accept-encoding: gzip\r\n" ] ]; $context = stream_context_create($opts); $content = gzdecode(file_get_contents('https://egrul.itsoft.ru/7730588444.xml', false, $context)); $xml = simplexml_load_string($content); $xml = json_decode(json_encode($xml),TRUE); print_r($xml); $content = gzdecode(file_get_contents('https://egrul.itsoft.ru/7730588444.json', false, $context)); $json = json_decode($content,TRUE); print_r($json);

Или так:

function readTextFile(file, callback) { var rawFile = new XMLHttpRequest(); rawFile.overrideMimeType("application/json"); rawFile.open("GET", file, true); rawFile.onreadystatechange = function() { if (rawFile.readyState === 4 && rawFile.status == "200") { callback(rawFile.responseText); } } rawFile.send(null); } readTextFile('https://egrul.itsoft.ru/' + folder_name + '.json', function(text){ var data = JSON.parse(text); console.log(data); });

Третий вариант менее предпочтительный без расширения .gz, без отправки заголовка Accept-encoding: gzip и без декомпрессии — тоже можно, но лучше так не делать, если нагрузка канала пойдёт к гигабиту, то всё же придётся данные сжимать, так как сжатие уменьшает их в 5 раз.

$content = file_get_contents('https://egrul.itsoft.ru/7730588444.xml'); $xml = simplexml_load_string($content); print_r($xml); $content = file_get_contents('https://egrul.itsoft.ru/7730588444.json'); $json = json_decode($content,TRUE); print_r($json);

Что и как отдаётся с какими расширениями и заголовками всегда можете посмотреть на нашем проекте Проверка HTTP-заголовков веб-сервера.

Описание формата данных

В налоговой говорят, что с апреля будет новый формат данных. Мне особой разницы между новым и старым форматом данных обнаружить не удалось. Пока заметил только, что НаимЮЛСокр из таблицы 4.5 был атрибутом, а стал составным элементом.

Желающие могут сравнить на примере следующих ИНН:7734344833, 7734349976, 7734355673, 7734358610, 7734365664, 7734368263, 7734372510, 7734375172, 7734379177, 7734381881, 7734384385, 7734386745, 7734389947, 7734394369, 7734397610,

7734347440, 7734350026, 7734355747, 7734363924, 7734366763, 7734368961, 7734372615, 7734376240, 7734379353, 7734382300, 7734385149, 7734387192, 7734390170, 7734394390, 7734397627,

7734347922, 7734352545, 7734356959, 7734364759, 7734367492, 7734369644, 7734374669, 7734376458, 7734379850, 7734383134, 7734385501, 7734388380, 7734390318, 7734395309, 7734397634,

7734349510, 7734354694, 7734358280, 7734365424, 7734368030, 7734372020, 7734374771, 7734378769, 7734380140, 7734383857, 7734386216, 7734389094, 7734391569, 7734397440, 7734399470.

XML-файл текущего формата https://egrul.itsoft.ru/7734344833.xml XML-файл нового формата https://egrul.itsoft.ru/n7734344833.xml

Поскольку текущий приказ описывает текущий формат, то и данные отдаём в этом формате. Когда выйдет новый приказ, будем отдавать данные в новом формате.

Не забывайте, что ИНН может начинаться с 0

Везде проверяйте длину ИНН, КПП и дополняйте их 0 слева при необходимости. В XML-формате значения ИНН как в оригинале у налоговой. А вот в JSON уже в виде чисел. Операции с числами быстрее, чем со строками и на парсинге десятков миллионов сущностей я старался оптимизировать типы данных. Некоторые парсеры работали сутками.

Как организованы у нас данные

У ФНС в каждом XML-файле порядка 1000 организаций. Собственно я разложил данные по каждой организации в отдельный файл. Ведь у всех посредников, что я пробовал, данные представлены уже переработанные, а тут оригинальные в том виде как их налоговая отдаёт.

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

  • Всё в одном файле.
  • Без регистрации.
  • Не надо отправлять кучи запросов и платить за каждый.

Сопроводительные справочники

Не поверите, но в интернете проблема была найти в CSV справочники регионов и ОКВЭД. На сайте налоговой справочник регионов в формате архива ARJ нашёлся. Оба справочника потребовали небольшой доработки напильником. Ну бесит меня это г. Москва и г. Санкт-Петербург. Мы, конечно, знаем про то что в Питере пока так, но в справочнике регионов об этом можно и умолчать.

Справочник субъектов Российской Федерации в csv и в json (кодировка UTF-8).

Справочник налогов в csv.

Справочник форм поддержки в csv и видов поддержки в csv.

Массив единиц поддержки:

['', 'руб.', 'кв. м.', 'час', '%', 'ед.'];

Массив категорий предприятий:

['', 'микропредприятие', 'малое предприятие', 'среднее предприятие'];

Только этого мало — даёшь всё в CSV и SQL

Даём! Если вы хотите больше, то пишите, готовы раздавать в CSV или в виде архива базы данных MySQL и если надо выложить архивы налоговой.

Мы не выкладываем в открытый доступ, чтобы не словить Хабраэффект. Да и хотим познакомиться, пообщаться с коллегами, понять, в чём мы можем посотрудничать.

Особенно интересно было бы посотрудничать с теми, кто занимается анализом данных. StatSoft Russia, Fast Reports, вы ещё живы?

Как помочь проекту информационно

Вы можете помочь как нам, так и кому-то, кому нужны эти данные.

  • Отправить ссылку знакомым бухгалтерам, предпринимателям или просто в соцсети.
  • Отправить ссылку разработчикам ПО, которые пользуются платными сервисами.
  • Написать плагин под всякие 1С, Битриксы и пр.
  • Предложить идею по развитию, обработке новых реестров данных.
  • Помочь нам найти архивы ЕГРЮЛ до 2018 года. ФНС говорит, что они должны быть у нас в выгрузке, но их нет. А со временем, хотелось бы исторические данные тоже открыть.
  • Найти своих депутатов и написать им, что надо бы законодательную инициативу проявить.
  • Подпишитесь на наш блог на Хабре и будьте в курсе новых статей на тему данных.

Помочь участием и сотрудничеством

Давайте объединять усилия. Если вы платили ФНС по 300 000р. год, содержали программистов и серверы, то теперь вы можете сэкономить.

Помочь деньгами и заказом услуг

Если вам нравятся открытые данные бесплатно, без регистрации и рекламы в XML и JSON, то поддержите наш проект. Нам нужно:

  • собрать 150 000р. на выкуп у ФНС данных ЕГРЮЛ на 2023 год.
  • собрать 150 000р. на выкуп у ФНС данных ЕГРИП на 2023 год.
  • 200 000р. на второй сервер с быстрыми дисками. Сейчас у проекта всего один сервер с одним быстрым диском 256Гб.
  • финансировать разработку расширения функциональных возможностей, добавление других реестров данных.
  • готовы принять в дар парсеры других реестров данных, архивы ЕГРЮЛ за 2002-2017 годы, ЕГРИП за 2002-2020 годы.
  • подать в суд на ФНС и получить данные за все прошлые годы.

Если вам не трудно:

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

Если вам интересно стать спонсором проекта egrul.itsoft.ru — пишите, обсудим условия.

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

Реквизиты

Банковская карта для пожертвований: 5536 9141 0700 1889. Назначение платежа: пожертвование.

Юрлица и ИП могут как просто пожертвовать денег, так и купить у нас услуги по обработке данных: ООО "ИТСОФТ", ИНН 7730588444, БИК 044525999, Р/с 40702810201500019616.

ЕГРИП — Единый государственный реестр индивидуальных предпринимателей

Нам уже задонатили на него и в феврале данные ЕГРИП планируем выложить.

130130
86 комментариев
1000 ₽

Вы Игорь сделали отличный сервис. Поддерживаю вас не только морально, еще материально. Надеюсь у вас хватит пожертвований, чтобы его содержать. Как вариант монетизации - посмотрите на checko - сделать что то подобное и разместить рекламу...

19
Ответить

Желаю скорее придумать монетизацию!

3
Ответить

Да мне хватает давно денег. У меня задача не монетизацию придумать, а сподвигнуть общество, государство к доступности открытых данных.

Считаю неправильным, что какие-то конторки делают обороты в сотни миллионов на том, что просто продают открытые данные. Открыте данные должны быть открыты всем в удобных форматах XML, JSON, CSV и через API с запросом конкретных данных по ОГРН, ИНН. Это общественное достояние.

У ФНС огромное финансирование. Тут на год себестоимость этого проекта по самому наверное полному фаршу лимонов 10, ну может 20. Это чтобы нанять программиста, админа и ещё осталось на поддержку. Для ФНС 20 лямов копейки. У нас пока затраты на проект меньше лимона за пару месяцев как стартанули.

Разумно если общество скинется донатами и затраты будут в год несколько миллионов рублей, чем платить в десятки раз больше за платные доступы.

40
Ответить

Игорь, у вас отверстие в безопасности. Пароль от БД заканчивается на букву "f", в качестве пруфа

3
Ответить

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

Ответить

Годно! Наконец-то API сервисы здорового человека!

3
Ответить