Initask API

Тендери Prozorro на Python: аналітика замовників і переможців

Оновлено 26.09.2026

Аналітик ринку публічних закупівель, менеджер з тендерів чи керівник продажів у компанії, що працює з державою, ставлять схожі питання. Хто з конкурентів виграє найбільше і на які суми? Які замовники купують наш тип товарів? Чи зростає частка наших перемог? Відповіді лежать у Prozorro, але збирати їх вручну довго. Initask API за кодом ЄДРПОУ повертає підсумок участі організації в закупівлях і перелік її тендерів запитом `GET https://dani.initask.com/v1/company/{edrpou}/tenders`, і скрипт на Python збирає дані для десятків компаній за раз.

Базовий запит

```python import os, requests

r = requests.get( "https://dani.initask.com/v1/company/42062483/tenders?role=buyer&limit=3", headers={"Authorization": f"Bearer {os.environ['INITASK_KEY']}"}, timeout=10, ) body = r.json() print(r.headers["X-RateLimit-Remaining"], body["data"]) ```

Ключ береться зі змінної середовища `INITASK_KEY`. Без ключа доступно 100 запитів на добу з однієї IP-адреси.

Підсумок і перелік

Відповідь складається з двох частин. Підсумок дає кількість тендерів як замовник і їхню очікувану суму, кількість перемог як учасник і суму перемог, а також посилання на сторінки замовника і учасника. Для коду 42062483 це вісім тендерів як замовник з очікуваною сумою 294448 гривень і нуль перемог.

Перелік залежить від параметра `role`. Значення `buyer` повертає тендери, які організація оголосила як замовник, `winner` тендери, які вона виграла. Без параметра береться `buyer`. Параметр `limit` задає кількість від 1 до 200, без нього 50. Поле `total` показує, скільки всього тендерів у цій ролі, навіть якщо в переліку лише частина.

Що є в тендеріНавіщо аналітику
номер тендера в Prozorroключ для обʼєднання даних
назва закупівліфільтр за асортиментом
статус у Prozorroвідбір завершених закупівель
очікувана сума замовника або сума перемогиобсяг ринку
дата оголошення або перемогидинаміка за місяцями
сторінка тендераперехід до деталей

Аналіз конкурентів

Скрипт отримує список кодів конкурентів і для кожного запитує `role=winner` з максимальним `limit`. Далі дані зводяться в таблицю: компанія, кількість перемог, сума перемог, перемоги за останній рік. Поле `date` дозволяє розкласти перемоги за місяцями і побачити, хто росте, а хто втрачає позиції. Назви закупівель показують, у яких саме сегментах працює кожен конкурент.

Аналіз замовників

Для відділу продажів корисніший інший зріз: замовники. Скрипт запитує `role=buyer` для списку замовників у вашому регіоні чи галузі і відбирає закупівлі, назви яких відповідають вашому асортименту. Замовники, які регулярно купують ваш тип товарів на помітні суми, стають пріоритетом для відділу продажів.

Коли даних більше за ліміт переліку

Перелік обмежений 200 тендерами за запит. Для великих замовників і переможців поле `total` може бути більшим. Підсумкові суми при цьому рахуються за всіма завантаженими тендерами, тому для загальної оцінки підсумку досить. Детальний перелік понад 200 найсвіжіших тендерів краще дивитися на сторінках замовника і учасника за посиланнями з відповіді.

Помилки

Код відповідіКолиЩо робити
400код має довжину, відмінну від 5-8 або 10 цифр, role поза buyer і winner або limit поза 1-200виправити параметри
429вичерпано лімітзачекати час із заголовка Retry-After

Нулі в підсумку означають, що в завантажених тендерах організація не була ні замовником, ні переможцем. Назва тоді дорівнює null, а перелік порожній. Для такого рядка скрипт має записати нулі, без помилки.

Інколи перелік тимчасово недоступний, і поле `items` приходить як null замість переліку. Скрипт має відрізняти це від порожнього переліку і повторити запит пізніше.

Ліміти

ПланЗапитівЦіна, грн на місяць
Безкоштовний100 на добу0
Старт10000 на місяць990
Про100000 на місяць2990

Відповідь кешується на 10 хвилин. Для щомісячного аналізу кількох десятків конкурентів і замовників вистачає безкоштовного плану.

Що робити

  1. Запустіть приклад і подивіться підсумок і перелік.
  2. Складіть список кодів конкурентів і зберіть їхні перемоги з `role=winner`.
  3. Для замовників у вашій ніші зберіть закупівлі з `role=buyer` і відфільтруйте за асортиментом.
  4. Коди за назвами знаходьте через пошук компаній, картки через API ЄДРПОУ.
  5. Опис полів у документації тендерів, тарифи на сторінці Ціни і ліміти.

Питання і відповіді

Як отримати перемоги компанії в Prozorro через Python?

Запит requests.get до https://dani.initask.com/v1/company/{edrpou}/tenders з параметром role=winner повертає перемоги з сумою договору і датою, limit задає до 200 тендерів.

Чому items дорівнює null?

Перелік тимчасово недоступний. Це відрізняється від порожнього переліку, і запит варто повторити пізніше.

Звідки дані про тендери?

З відкритого API Prozorro: сервіс tender.initask.com завантажує тендери і рахує підсумки за кодом замовника і переможця.

Джерела даних

Корисні сторінки

Читайте також

Отримати ключ API

Ключ прийде листом, 100 запитів на добу безкоштовно.

Потрібен AI-агент під вашу задачу?

Агент, що збирає дані з відкритих реєстрів у ваші системи і готує звіти без ручного копіювання.

Описати задачу