поиск организации по инн api
API подсказок по организациям
Ищет компании и индивидуальных предпринимателей:
Что умеет
✔️ Ищет по комбинации ИНН, названия и адреса в одном запросе («7736050003 Газ» → «ПАО Газпром», «вавилова сбер» → «ПАО Сбербанк»).
✔️ Находит конкретный филиал, если указать в запросе КПП («сбербанк 540602001» → «Сибирский банк ПАО Сбербанк»).
✔️ Понимает слитное и раздельное написание («альфабанк» = «Альфа-Банк»).
✔️ Ищет по частичному совпадению в ИНН / ОГРН («77094209» → «ООО Акварель») и названиях («росне» → «ПАО «НК «Роснефть»).
✔️ Подсказывает только организации или только ИП, или и тех и других. Умеет искать только в действующих или ликвидированных компаниях. Может ограничить подсказки кодом ОКВЭД или конкретным регионом России.
✔️ Учитывает, где вы находитесь (в связке с методом город по IP-адресу).
✔️ Возвращает основные реквизиты компании из ЕГРЮЛ: краткое и полное название, ОПФ, адрес, ОГРН, ИНН, КПП, ОКВЭД, статус организации, ФИО и должность руководителя.
✔️ В связке с методом организация по ИНН возвращает вагон дополнительной информации: количество сотрудников, все коды ОКВЭД, сведения о налоговой, ПФР и ФСС, документы и лицензии, учредители и руководители, финансовые показатели, реестр малого и среднего бизнеса.
❌ Для 50% компаний налоговая служба пока не сообщает КПП филиалов. Такие филиалы можно найти по ИНН, городу и улице филиала. Например, «7724261610 москва мясницкая» → «Филиал ФГУП «Почта России» (г Москва)».
Как вызвать
Чтобы вызвать метод, зарегистрируйтесь и подтвердите почту.
Укажите при вызове:
Параметры запроса
| Название | Тип | Обяз.? | По умолч. | Описание |
|---|---|---|---|---|
| query | string | ✓ | Текст запроса | |
| count | number | 10 | Количество результатов (максимум — 20) | |
| type | string | Ограничение по типу организации | ||
| status | array [string] | Ограничение по статусу организации | ||
| okved | array [string] | Ограничение по коду ОКВЭД | ||
| locations | array [object] | Ограничение по региону или городу | ||
| locations_boost | array [object] | Приоритет города при ранжировании |
Что в ответе
Объект с массивом подсказок в поле suggestions :
Коды ответа на запрос
| HTTP-код ответа | Описание |
|---|---|
| 200 | Запрос успешно обработан |
| 400 | Некорректный запрос (невалидный JSON или XML) |
| 401 | В запросе отсутствует API-ключ |
| 403 | В запросе указан несуществующий API-ключ Или не подтверждена почта Или исчерпан дневной лимит по количеству запросов |
| 405 | Запрос сделан с методом, отличным от POST |
| 413 | Слишком большая длина запроса или слишком много условий |
| 429 | Слишком много запросов в секунду или новых соединений в минуту |
| 5xx | Произошла внутренняя ошибка сервиса |
Примеры вызова
Ограничения
Количество условий в параметрах locations и locations_boost — не более 10.
Длина запроса (параметр query ) — не более 300 символов.
Количество запросов в день — в соответствии с тарифным планом.
Максимальная частота запросов — 20 в секунду с одного IP-адреса.
Максимальная частота создания новых соединений — 60 в минуту с одного IP-адреса.
Частые вопросы
По мере поступления обновлений от налоговой службы. Отставание от сайта налоговой (egrul.nalog.ru) не более 3 дней.
Почему не находится организация? Я точно знаю, она должна быть
Скорее всего, организация недавно зарегистрирована в ФНС, и мы еще не успели получить информацию о ней из налоговой. Отставание Дадаты от сайта налоговой (egrul.nalog.ru) не более 3 дней, так что организация скоро появится.
Подсказки не работают: ошибка 403 Forbidden (Feature SUGGESTIONS disabled for token)
Подсказки перестанут подсказывать ツ До начала нового дня, затем снова заработают.
10 000 запросов считаются суммарно по всем видам подсказок: адреса, ФИО, организации, банки, емейлы.
Стоимость
Бесплатно до 10 тысяч запросов в день. Больше — в составе годовой подписки.
Организация по ИНН или ОГРН
Находит компанию или ИП по ИНН или ОГРН. Возвращает все доступные сведения о компании, в отличие от метода suggest, который возвращает только базовые поля.
Как вызвать
Чтобы вызвать метод, зарегистрируйтесь и подтвердите почту.
Параметры запроса
| Название | Тип | Обяз.? | По умолч. | Описание |
|---|---|---|---|---|
| query | string | ✓ | ИНН или ОГРН | |
| count | number | 10 | Количество результатов (максимум — 300) | |
| kpp | string | КПП для поиска по филиалам, см. пример | ||
| branch_type | string | Головная организация ( MAIN ) или филиал ( BRANCH ), см. пример | ||
| type | string | Юрлицо ( LEGAL ) или индивидуальный предприниматель ( INDIVIDUAL ), см. пример |
Головные организации и филиалы
Если у компании есть филиалы, запрос вернёт несколько объектов. Если нужна только головная организация, укажите дополнительный параметр branch_type :
Чтобы найти конкретный филиал, укажите дополнительный параметр kpp :
К сожалению, для 50% компаний налоговая служба пока не сообщает КПП филиалов. Такие филиалы с помощью данного метода найти не получится.
Юрлица и индивидуальные предприниматели
Чтобы искать только среди юрлиц, либо только среди индивидуальных предпринимателей, укажите параметр type :
Что в ответе
Примеры вызова
Ограничения
Длина запроса (параметр query ) — не более 300 символов.
Количество запросов в день — в соответствии с тарифным планом.
Максимальная частота запросов — 20 в секунду с одного IP-адреса.
Максимальная частота создания новых соединений — 60 в минуту с одного IP-адреса.
Стоимость
Бесплатно до 10 тысяч запросов в день. Больше — в составе годовой подписки.
Описание API-ФНС
С помощью сервиса вы сможете автоматизировать заполнение реквизитов компаний, поиска компаний по различным параметрам, проявить должную осмотрительность, отслеживать изменения в параметрах ваших контрагентов.
Для выбора методов и ввода параметров можно использовать единый адрес входа: https://api-fns.ru/api
API состоит из нескольких программных интерфейсов:
| Название метода | Команда | Описание |
|---|---|---|
| Поиск компаний | search | Позволяет получить список компаний, соответствующих указанному запросу |
| Получение данных о компании | egr | Позволяет получить все актуальные и исторические данные из ЕГРЮЛ о юридическом лице (ЮЛ), или из ЕГРИП для индивидуального предпринимателя (ИП) |
| Реквизиты группы компаний | multinfo | Позволяет получить базовые данные сразу о нескольких юридических лиц или индивидуальных предпринимателей |
| Проверка группы компаний | multcheck | Позволяет провести базовую (упрощенную) проверку нескольких юридических лиц или индивидуальных предпринимателей |
| Проверка контрагента (признаки недобросовестности) | check | Позволяет получать информацию о том, попало ли юридическое лицо в различные негативные реестры ФНС, отметки о недостоверных данных, признаки «массового» директора, учредителя, решений о ликвидации, реорганизации и прочие |
| Проверка блокировок счета | nalogbi | Запрос полной информации о действующих решениях ФНС о приостановлении операций по счетам |
| Проверка блокировок счета в виде файла | nalogbi_file | Вывод полной информации о действующих решениях ФНС о приостановлении операций по счетам в виде файла zip с подписью ФНС |
| Отслеживание изменений параметров компании | changes | Позволяет получить те параметры компании, которые изменились, начиная с указанной даты |
| Мониторинг изменений по списку компаний | mon | Формирование списка компаний для мониторинга и отслеживание изменений в ЕГРЮЛ/ЕГРИП по этому списку |
| Выписка из ЕГРЮЛ | vyp | Позволяет получить заверенную выписку ФНС из ЕГРЮЛ или ЕГРИП |
| Бухгалтерская отчетность | bo | Бухгалтерская отчетность организации по данным ФНС |
| Бухгалтерская отчетность в виде файла | bo_file | Бухгалтерская отчетность организации в виде файла zip или pdf, заверенного подписью ФНС |
| Узнать ИНН по паспортным данным | innfl | Возвращает ИНН физического лица на основании введенных паспортных данных |
| Проверка паспорта на недействительность | mvdpass | Проверяет серию и номер паспорта по списку недействительных российских паспортов |
| Статусы физического лица | fl_status | Проверяет статус самозанятого, является ли физическое лицо индивидуальным предпринимателем, банкротство физического лица, недействительность ИНН |
| Лицензии ФСРАР | fsrar | Возвращает информацию о лицензиях по данным ФСРАР |
| Статистика запросов (использования ключа) | stat | Возвращает информацию статистику о количестве использованных и доступных запросов по каждому из методов |
Поиск компаний
Позволяет получить список компаний по указанному запросу.
Используется запрос GET или POST.
Параметры запроса:
| Параметр | Тип данных и пример | Описание |
|---|---|---|
| q | string q=Гордиенко Василий | Поисковая строка. Если указать q=any, то будут выведены все организации, соответствующие параметру filter |
| page | integer page=2 | Страница поиска (поиск выдает только первые 100 найденных значений, если их больше используйте page для отображения следующей порции найденных значений) |
Необязательное поле
Возвращаемый документ (HTTP response) представляет собой структурированный документ JSON, содержащий список найденных организаций.
Поля возвращаемого документа:
Примеры запросов.
https://api-fns.ru/api/search?q=Борунов Алексей Владимирович&key=
Данные о компании
Позволяет получить все данные из ЕГРЮЛ или ЕГРИП (включая исторические) о компании.
Используется запрос GET или POST.
Параметры запроса:
| Параметр | Тип данных и пример | Описание |
|---|---|---|
| req | string req=1026605606620 | ОГРН или ИНН искомой компании (юридического лица или ИП) |
| key | string | Ваш ключ доступа к API |
Возвращаемый документ (HTTP response) представляет собой структурированный документ JSON, содержащий информацию из ЕГРЮЛ (ЕГРИП).
Поля возвращаемого документа:
YYYY-MM-DD (начальная и конечная даты, разделенные знаком
«тильда»)
YYYY-MM-DD (начальная и конечная даты, разделенные знаком
YYYY-MM-DD (начальная и конечная даты, разделенные знаком
«тильда»)
YYYY-MM-DD (начальная и конечная даты, разделенные знаком
«тильда»)
YYYY-MM-DD (начальная и конечная даты, разделенные знаком
«тильда»)
YYYY-MM-DD (начальная и конечная даты, разделенные знаком
«тильда»)
YYYY-MM-DD (начальная и конечная даты, разделенные знаком
«тильда»)
YYYY-MM-DD (начальная и конечная даты, разделенные знаком
YYYY-MM-DD (начальная и конечная даты, разделенные знаком
«тильда»)
YYYY-MM-DD (начальная и конечная даты, разделенные знаком
YYYY-MM-DD (начальная и конечная даты, разделенные знаком
«тильда»)
YYYY-MM-DD (начальная и конечная даты, разделенные знаком
«тильда»)
YYYY-MM-DD (начальная и конечная даты, разделенные знаком
«тильда»)
YYYY-MM-DD (начальная и конечная даты, разделенные знаком
«тильда»)
YYYY-MM-DD (начальная и конечная даты, разделенные знаком
«тильда»)
YYYY-MM-DD (начальная и конечная даты, разделенные знаком
Проверка контрагентов
Информация о юридических лицах и индивидуальных предпринимателях (ЮЛ и ИП)
Просмотр недоступен!
Для просмотра необходимо подключить услугу
доступ к поисковой системе
Правила поиска по реквизитам
Поиск по реестру юридических лиц дает возможность найти организацию по ИНН и другим реквизитам ОГРН/ОГРНИП/ОКПО, наименованию предприятия, адресу, субъекту РФ.
Стоит отметить, что поиск по ИНН/ОГРН/ОГРНИП/ОКПО является «точным», поэтому результатом будет сразу карточка искомого юридического лица.
Помимо поисковых запросов по реквизитам по данному реестру юридических лиц можно осуществлять «поиск в одну строку». Например, при вводе Ф.И.О. руководителя и наименования компании, поиск будет идти только по тем карточкам, в которых встречаются эти два значения. Комбинация значений повышает релевантность выдачи поисковой системы (высокому совпадению введенного запроса с ответом на него), что дает возможность быстрее найти нужную вам компанию или физическое лицо.
Запросы «в одну строку» осуществляются по следующим комбинациям: адрес компании и Ф.И.О. руководителя, наименование компании и Ф.И.О. учредителя, Ф.И.О. учредителя и место его рождения, наименование организации и её адрес, Ф.И.О. прежнего руководителя и прежний адрес компании, прежнее наименование на английском и Ф.И.О. прежнего учредителя.
Поиск по физическим лицам осуществляется по Ф.И.О. учредителя/руководителя, месту рождения.
При запросе по наименованию компании, адресу, Ф.И.О. учредителя/руководителя, результатом поиска будет список карточек организаций, в которых найдено совпадение по введенному значению.
Правила поиска по существенным событиям
Для поиска сообщений юридических лиц, опубликованных в журнале «Вестник государственной регистрации», задайте в поисковую форму запрос, состоящий из ИНН/ОГРН или названия юридического лица.
В результатах поиска по ИНН/ОГРН поисковая система выдаст список сообщений, поданных данным юридическим лицом.
При поиске по названию организации, вы получите список сообщений, содержащих данный поисковый запрос. Обращайте ваше внимание, что название юридических лиц может совпадать.
Вы можете ознакомиться с полным текстом сообщений, при необходимости заказать копию страницы журнала «Вестник государственной регистрации» с данным сообщением. Для заказа необходимо войти в личный кабинет зарегистрироваться на сайте.
Правила поиска по имуществу должника
Для поиска имущества, задайте в поисковую форму запрос.
В результатах поиска по ИНН/ОГРН/Наименованию поисковая система выдаст список имущества, соответствущий критериям поиска. Обращайте ваше внимание, что название юридических лиц может совпадать или содержаться в тексте лота.
Правила поиска по залогам движимого имущества
Поисковая система «Информация о залогах» осуществляет сквозной поиск по базе залогового имущества.
Необходимо ввести в поисковую строку запрос. Например:
Помимо сквозного поиска, есть возможность искать по определенным полям – по регистрационному номеру уведомления, по предмету залога, в отличии от ФНП, вы можете искать не только по залогодателю, но и по залогодержателю. Преимуществом также служит, что в результате поиска выводятся как действующие залоги, так и прекращенные.
Также вы можете сортировать информацию по определенным параметрам:
По временному отрезку:
Такая возможность поможет вам совершить максимально удобный и точный поиск, это позволит избежать вывода избыточной информации.
Введите запрос в поисковую строку и нажмите кнопку «Найти».
Выводится число с количеством найденных записей о залогах.
Ниже показаны результаты поиска в виде регистрационного номера уведомления в качестве заголовка и краткая информация – дата регистрации, залогодатель, залогодержатель и статус залога.
Кликнув по регистрационному номеру уведомления, вы перейдете на карточку залога, где получите полную информацию о залоге.
Правила поиска информации о патентах
Найти интересующую Вас информацию о патентах вы можете по номеру или названию патента, а так же по Ф.И.О. патентообладателя. Результатом поиска будет список всех карточек, в материалах которых найдено совпадение по введенному значению.
Можно ограничить результаты поиска по дате, выбрав соответствующий параметр «Дата подачи заявки» или «Дата публикации заявки».
В блоке «Параметры поиска» можно выбрать интересующие базы патентов, отметив их галочками. В таком случае поиск будет осуществляться только по ним.
Правила поиска по недействительным паспортам
Для проверки паспорта гражданина РФ задайте в поисковую форму запрос, содержащий серию и номер документа.
Правила поиска информации по новостям в СМИ
1. Сформулируйте запрос по вашему вопросу. Учитывайте при этом, что поиск является полнотекстовым и структурированным, что позволяет охватить больший объем информации и выделить основные интересующие вас позиции.
2. Не забывайте о том, что писать поисковый запрос нужно грамотно. От этого зависит качество выданной информации.
3. Нажмите на кнопку «Найти», после чего отобразится вся информация, соответствующая вашему запросу.
4. Воспользуйтесь функциями расширенного поиска, если вам нужны уточнения по типам источника или датам. Для этого следует нажать на кнопку «Фильтр», где отобразятся все возможности сужения поискового запроса.
Правила поиска по файлам эмитентов
Задайте в поисковую форму произвольную строку для поиска по файлам раскрываемым эмитентами.
Deprecated! Автоматизация получения сведений из ЕГРЮЛ с помощью Freepascal
В своей работе (юридической) я готов автоматизировать всё, что только поддаётся этому. Но пока прокачанные нейросетями роботы из утопии Германа Грефа не появились и не отняли всю работу у рядовых юристов, рутина надолго останется нашим главным спутником. Автоматизация этой рутины — то, чем я периодически занимаюсь на протяжении последних лет, будь то многочисленные таблицы в excel с кучей формул, позволяющих быстро распечатать сотню однотипных документов-рассылок в word’е, ну или автоматически генерируемые отчеты. Но есть и такие вещи, которые простыми формулами и подстановками не сделаешь. Здесь на помощь приходит программирование, которым я увлекаюсь с детства, и так уж вышло, что началось это с delphi. Сейчас мне проще, чем в C# или python, осваивать которые начал недавно, сделать быстро какой-то проект в среде Lazarus, используя freepascal. И да, я на полном серьёзе считаю, что возможностей этой среды более, чем достаточно. Поэтому автоматизировать ЕГРЮЛ, как вы догадались, предстоит с помощью паскаля.
Юрист консалтинговой конторы, ведущей дела десятков юридических лиц, юрист-корпоративщик на вольных хлебах, да и любой другой юрист, сталкивающийся с обеспечением деятельности организаций — все они знают, как легко в голове смешиваются десятки и сотни разных наименований, номеров ИНН, ОГРН, как легко забыть, кто где руководитель, и когда у него подходит срок продления полномочий, нет ли проблем с долями в ООО и с оплатой его уставного капитала. Ну и необходимость сделать быстро какой-то документ, включающий в себя множество постоянно меняющихся реквизитов, влечет периодические ошибки и опечатки. Для автоматизации именно таких процессов мне было нужно решение с базой данных, позволяющее делать документы по шаблонам, вести различные реестры, отслеживать изменения и не пропускать какие-то сроки. Ну и одно из необходимых упрощений жизни — быстрое получение свежего файла со сведениями из ЕГРЮЛ с сайта Федеральной налоговой службы. Конечно, никто не говорит, что воспользоваться сайтом напрямую — это долго и трудно, но согласитесь, что нажать на одну кнопку, не выходя из приложения, гораздо веселее, и сделать это можно, не отрываясь от телефонного звонка (или чашки кофе).
Значит, в конкретном случае готовая функция должна возвращать pdf в виде файла (а лучше — потока), имея на входе ОГРН или ИНН лица. Но для универсализации и возможности дальнейшего расширения не будем пренебрегать всеми возможностями сайта и сделаем также функцию нечёткого поиска с возвращением набора данных, найденных по названию организации с учётом фильтра по региону или без такового. Попробуем описать интерфейсы этих функций:
Для того, чтобы понять, что за таинственный параметр Х и коллекцию чего вернёт вторая функция, разберемся, как именно сайт исполняет запрос.
1. На сайте размещена форма с полями ввода для идентификаторов поиска и проверки капчи:
2. Капча формируется с помощью заранее сгенерированного скрытого поля с именем captchaToken, которое использует ява-скрипт для генерации изображения капчи по данному токену.
3. После нажатия на кнопку «найти» на сервер отправляется POST-запрос, в результатах обработки которого возвращается JSON с массивом объектов. Этот JSON-ответ использует другой ява-скрипт, заполняющий таблицу, которую мы видим в результатах поиска.
Итак, первая загвоздка — это проверка капчи. Чтобы не нагружать наши методы, занимающиеся взаимодействием с сайтом, лишним функционалом, мы вынесем в отдельную функцию действия по обработке капчи. И в Х у нас будет параметр для callback-метода, который на входе имеет поток с изображением капчи, а на выходе — строку с распознанной капчей:
Функция, обрабатывающая капчу, может делать это как угодно: дать пользователю ввести её вручную, отправить изображение на платный сервер автоматического распознавания, самостоятельно распознать с помощью уникального ноу-хау алгоритма. Для простоты картины, и поскольку в моем случае потока капчи в промышленных масштабах не предвидится, выбираем первый вариант:
Второй вопрос — содержимое JSON-ответа сервера. Вот пример того, что в нём приходит:
Как видно, результат возвращает объект «query», который содержит исходные параметры поиска (для того, чтобы они остались в полях формы для повторного использования) и массив объектов «rows». Ссылка на файл pdf комбинируется ява-скриптом с помощью выражения: и значения ключа «Т» объекта. Время жизни сгенерированного файла pdf — несколько минут.
Две главные трудности, с которыми я столкнулся при создании http-запроса, это правильные значения заголовков и комбинирование строки с параметрами POST-запроса. Но простой анализ страницы с помощью встроенных средств браузера (в хроме вызываются по нажатию F12) дал всё необходимое. Вот пример заголовков, с которыми сервер дает правильный ответ вместо 400 Bad request:
А вот строка с параметрами:
Вооружившись этими исходными данными, приступим к реализации задачи. Я буду использовать следующие библиотеки для freepascal:
Встроенную библиотеку fcl-json — нужные модули: fpjson и fpjsonrtti — для максимального удобства обработки возвращаемых в JSON объектов.
Отдельные модули встроенной библиотеки fcl-xml — для некоторых функций потребуется работа с частями HTML как DOM-объектами, поэтому подключим модули SAX_HTML, DOM_HTML, DOM.
Опишем типы и классы объектов, которые в итоге получились:
В этот класс мы запакуем объекты, которые будут возвращаться в массиве rows в JSON-ответе сервера. Считывать мы будем их с помощью JSONToCollection, но для этого нужно сделать каждый объект элементом коллекции и все соотносимые свойства объявить как published. RTTI функции в freepascal (как и в delphi) получают доступ к наименованиям свойств только в том случае, когда они объявлены именно в такой области видимости. А функция JSONToCollection из модуля fpjsonrtti — как раз RTTI-функция, которая сопоставляет названия ключей из JSON объекта с названиями свойств класса.
Также в интерфейсе класса имеется функция GetPdfLink, которая возвращает ссылку для скачивания pdf-файла со сведениями из ЕГРЮЛ с помощью конкатенации web-адреса и значения свойства «Т».
Основной класс, реализующий объявленный выше интерфейс, будет таким:
Как видно, кроме реализации двух основных функций интерфейса все остальные свойства и методы класса будут скрытыми и нужны только для внутренней реализации. Их вообще можно было бы включить внутрь основных методов, но мы уже проходили уроки про дублирующийся код, наглядность и в целом рефакторинг.
С учетом инкапсуляции подготовительных действий основные методы вообще будут различаться только формированием строки параметров http-запроса и возвращаемым типом данных.
Здесь, как мы видим, метод также использует логический параметр isLegal, и если он не установлен в true, поиск идет по базе предпринимателей вместо юридических лиц.
Роль служебных методов сводится к следующему:
ProcessCaptcha — загружает первоначальную html страницу сервиса ФНС, ищет токен капчи, скачивает картинку, сгенерированную по этому токену, и перенаправляет её в callback-метод для распознавания капчи. В конце метод также устанавливает правильные заголовки для последующего POST-запроса.
GetCaptchaToken — загружает в DOM структуру все поля input со страницы, ищет скрытое поле с идентификатором capthcaToken и возвращает его значение.
GetLegalsList — с помощью RTTI функции JSONToCollection возвращает коллекцию объектов типа TEGRULItem, описанного выше.
Поскольку этой мой первый опыт работы с сетью в freepascal, я очень рад, что всё получилось именно так, как я и задумывал. В работоспособном виде библиотека была изготовлена менее, чем за один день (спасибо форумчанам с freepascal.ru, рассказавшим о synapse).
Как всегда буду рад любой конструктивной критике как по проекту, так и по реализации. Понимаю, что есть много факторов, которые еще можно учесть: задержка с ответом на http-запрос, в результате чего подвиснет приложение; неверные http-ответы и другие ситуации.
В дальнейшем я планирую подключить онлайн-библиотеку с адресной базой ФИАС и реализовать возможность генерировать заполненные шаблоны заявлений, которые в общем случае редактируются в Программе подготовки документов для государственной регистрации.
P.S. Извини, Сбербанк, за роль подопытного кролика и сотни раз скачанную выписку. Всё во имя науки конечно же.

