Пошук компаній на Python: коди ЄДРПОУ для списку назв
Оновлено 26.09.2026
Аналітик отримав вивантаження з CRM чи таблицю контрагентів, де є назви компаній, але немає кодів ЄДРПОУ. Без кодів неможливо підтягнути картки з реєстру, судові справи, тендери. Вручну шукати кожну назву довго. Initask API шукає компанії в Єдиному державному реєстрі за назвою, частиною назви або кодом запитом `GET https://dani.initask.com/v1/company/search`, і скрипт на Python проходить увесь список, відкладаючи неоднозначні випадки для людини.
Базовий запит
```python import os, requests
r = requests.get( "https://dani.initask.com/v1/company/search?q=приватбанк", headers={"Authorization": f"Bearer {os.environ['INITASK_KEY']}"}, timeout=10, ) body = r.json() print(r.headers["X-RateLimit-Remaining"], body["data"]) ```
Бібліотека requests сама закодує кирилицю в адресі. Ключ береться зі змінної середовища `INITASK_KEY`, без ключа доступно 100 запитів на добу з однієї IP-адреси.
Що повертає пошук
Відповідь містить запит так, як його прочитав пошук, і до 10 збігів. Для «приватбанк» це два рядки:
| edrpou | short_name | status |
|---|---|---|
| 14360570 | АТ КБ "ПРИВАТБАНК" | active |
| 46379669 | ТОВ "ПриватБанк" | cancelled |
Кожен збіг має код ЄДРПОУ, повну і скорочену назву і стан латиницею. Найточніші збіги йдуть першими. Пошук дивиться і повну, і скорочену назву, регістр літер значення не має.
Як обрати правильну компанію
Приклад показує головну проблему: схожі назви. Скрипт не повинен брати перший рядок наосліп. Розумна логіка складається з трьох правил.
Перше правило: відкидати компанії зі станом `cancelled`, якщо контрагент з вашого списку діючий. У прикладі це одразу лишає один варіант.
Друге правило: якщо після відсіювання лишився один збіг, приймати його автоматично і позначати як знайдений.
Третє правило: якщо лишилось кілька діючих компаній, відкладати рядок у файл для ручної перевірки разом з усіма варіантами, без спроб угадати. Людина за хвилину обере правильну компанію, знаючи контекст: місто, сферу діяльності, контактну особу.
Підготовка назв
Результат пошуку помітно кращий, коли назва очищена від організаційно-правової форми і лапок. «ТОВ «Альфа-Сервіс»» краще шукати як «Альфа-Сервіс». Довжина запиту має бути від 2 до 120 символів, інакше приходить 400. Дуже короткі і загальні назви дають багато збігів, і такі рядки частіше потрапляють на ручну перевірку.
Якість результату
Після першого проходу корисно подивитися на пропорції: скільки назв знайдено автоматично, скільки пішло на ручну перевірку, скільки не знайдено зовсім. Якщо ручних випадків багато, варто поліпшити очищення назв або додати в правила ще одну ознаку, наприклад збіг скороченої назви дослівно. Результат ручної перевірки зберігайте у вигляді таблиці відповідності «назва у вашій системі, код ЄДРПОУ»: наступного разу скрипт спершу шукає назву в цій таблиці і не витрачає запит.
Порожній результат
Якщо нічого не знайдено, відповідь приходить з кодом 200 і порожнім переліком `items`. Скрипт має записати такий рядок окремо: або назву в списку записано з помилкою, або це фізична особа-підприємець, або компанія зареєстрована під іншою назвою. Для таких рядків корисно спробувати коротший варіант назви.
Помилки і ліміти
| Код відповіді | Коли | Що робити |
|---|---|---|
| 200 з порожнім items | нічого не знайдено | записати для ручної перевірки |
| 400 | запит коротший за 2 символи або довший за 120 | виправити назву |
| 429 | вичерпано ліміт | зачекати час із заголовка Retry-After |
Відповідь кешується на 10 хвилин. Для списку в кілька тисяч назв знадобиться стартовий план або кілька днів на безкоштовному.
| План | Запитів | Ціна, грн на місяць |
|---|---|---|
| Безкоштовний | 100 на добу | 0 |
| Старт | 10000 на місяць | 990 |
| Про | 100000 на місяць | 2990 |
Після пошуку
Коли коди знайдено, наступний крок зазвичай повна картка компанії за кодом: повна назва, керівник, засновники, стан реєстрації. Для аналітики контрагентів додаються тендери і судові справи за тим самим кодом. Код ЄДРПОУ стає ключем, за яким збираються всі дані.
Що робити
- Очистіть назви від організаційно-правової форми і лапок.
- Пройдіть список пошуком з правилами відсіювання припинених і автоматичного прийняття єдиного збігу.
- Неоднозначні і порожні результати збережіть для ручної перевірки.
- За знайденими кодами отримайте картки компаній і тендери.
- Опис полів у документації пошуку компаній, тарифи на сторінці Ціни і ліміти.
Питання і відповіді
Як знайти коди ЄДРПОУ для списку назв у Python?
Для кожної назви робіть запит requests.get до https://dani.initask.com/v1/company/search з параметром q. Відповідь містить до 10 збігів з кодом, назвами і станом.
Як обрати правильну компанію серед схожих назв?
Відкиньте компанії зі станом cancelled, прийміть єдиний збіг, що лишився, а кілька діючих варіантів передайте на ручну перевірку.
Що буде, якщо нічого не знайдено?
Відповідь 200 з порожнім масивом items: так клієнт відрізняє порожній результат від помилки.