Skip to content
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
README.md

README.md

API для clarity-project.info

Все методы API вызываются с помощью GET-запроса по URL http://clarity-project.info/api/*method* и возвращают ответ в формате JSON.

В заголовке X-API-VERSION возвращается версия API.

В случае ошибки, возвращается объект с единственным ключом error, содержащим подробности ошибки.

В каждом успешном запросе содержится объект stats, содержащий время его выполнения.

Создание ключа доступа

На странице настроек можно создать новый ключ доступа или отозвать существующий.

На данный момент для работы с API не требуется указывать валидный ключ, но в будущем это изменится.

Ключ доступа передаётся в GET-параметре key, например: /api/edr.info/00015622?key=ключ

Методы:

/edr.info/ЕГРПОУ

Возвращает информацию о ЕГРПОУ/ИНН.

Например: /api/edr.info/04526727

Поля:

  • edr и name - ЕГРПОУ и название;
  • address - адрес;
    • region_code - распарсенный из строки код области;
  • contact - контактное лицо;
  • isTenderer - true если участвовал в закупках, false иначе;
  • isBuyer - true если организовывал закупки;
  • history - длина истории данных (см. метод edr.history);
  • buyer_stats - статистика закупщика. Отсутствует, если isBuyer=false;
    • tenders - количество и планируемая сумма всех органиованных тендеров;
    • contracts - количество и сумма подписанных контрактов;
  • tenderer_stats - статистика учатника. Отсутствует, если isTenderer=false;
    • participations - количество и сумма учатий в закупках;
    • bids - количество предложений в конкурентных закупках;
    • contracts - количество и сумма подписанных контрактов;

ВАЖНО:

  1. Суммы и количество контрактов учитывают действующие и завершенные контракты, по которым прошла оплата. Отмененные, предложенные, отказанные и контракты без оплаты тут не учитываются.
  2. tenderer_stats->participations — это сумма предложений (bids) в конкурентных и наград (awards) в неконкурентных закупках (в них отсутствуют bids в принципе).

Значения основных полей очевидны, isBuyer равняется true, если этот ЕГРПОУ создавал тендеры, isTenderer — если принимал участие (делал предложения, получал акцепты или контракты, не важно, были ли они отменены или нет).

Метод также поддерживает множественный запрос — для этого вместо одного ЕГРПОУ нужно передать список, разделённый запятыми. За один раз метод возвращает до 25 результатов (остальные отбрасываются).

В случае множественного запроса, результаты будут помещены в объект list, ключами которого будут запрошенные ЕГРПОУ. В случае, если ЕГРПОУ не найден в базе, значением ключа будет null.

Например: https://clarity-project.info/api/edr.info/35601826,1234567890

{
  "list": {
    "35601826": {
      "edr": "35601826",
      "name": "ТОВ \"КОНТРАКТ ПРОДРЕЗЕРВ 5\"",
      ...
    },
    "1234567890": null
  },
  "stats": {
    "query_time": 0.011358976364136
  }
}

/edr.search

Поиск по ЕГРПОУ.

Например: /api/edr.search?q=фоп

GET-параметры:

  • q — запрос;
  • page — страница результатов.

Возвращает объект с ключами paginator — информация о результатах поиска и list — список в том же формате, что и edr.info, без полей isBuyer и isTenderer.

Дополнительный параметр more_fields позволяет получать больше информации о каждой найденной закупке. Он может принимать следующие значения (одно или несколко через запятую):

  • edrs - информация об участниках закупки;
  • lots - о лотах;
  • risks - о рисках;
  • items - о предметах закупки.

Информация возвращается в соответствующих объектах в ключе more.

Например: https://clarity-project.info/api/tender.search?status=complete&entity=22883141&more_fields=edrs,items

"tenders": [
  {
    "id": "ca9a0b1b1ef048bc820ea4531b4c8474",
    "title": "Послуги щодо надання ліцензії на право користування антивірусним програмним забезпеченням",
    ...
    "more": {
      "edrs": [
        {
          "edr": "40753616",
          "role": "contractor",
          "prozorro_data": {
            "name": "ТОВ \"САЙНТІС\"",
            "contact": "Катерина Прокопенко",
            "email": "manager@saintis.com.ua",
            "phone": "+380444515781"
          },
          "edr_data": {
            "name": "ТОВАРИСТВО З ОБМЕЖЕНОЮ ВІДПОВІДАЛЬНІСТЮ \"САЙНТІС\"",
            "short_name": "ТОВ \"САЙНТІС\"",
            "status": "registered",
            "status_name": "Зареєстровано",
            "address": "М. КИЇВ, СОЛОМ'ЯНСЬКИЙ Р-Н, ВУЛ. СОЛОМ'ЯНСЬКА, БУД. 3"
          }
        },
        ...
      ],
      "items": [
        {
          "id": "22b7f2aa13ca9f42e41c34b4206967e3",
          "lot": null,
          "descr": "Послуги щодо надання ліцензії на право користування антивірусним програмним забезпеченням",
          "qty": "1",
          "unit": "E48",
          "value": "115000.00",
          "uah_value": "115000.00",
          "classification": "48760000-3",
          "delivery": {
            "date_from": "1556485200",
            "date_to": "1559077200",
            "address": "Відповідно до документації"
          }
        }
      ]
    }
  },
  ...
]

/edr.history/ЕГРПОУ

Возвращает историю изменений информации о ЕГРПОУ.

GET-параметры:

  • categories — если 1, то показывать в виде категорий, иначе в виде хронологии.

/edr.relations/ЕГРПОУ

Возвращает связи для ЕГРПОУ.

/tender.ids?ids=список

Например: https://clarity-project.info/api/tender.ids?ids=2e185eb98c8145e4bc09bc7ee84b219e,UA-2018-11-28-001814-c

Получает в GET-параметре ids список ID (UA-...) или хешей для закупок (максимум 100 элементов за запрос), и возвращает для каждого список из ID и хеша.

{
  "list": [
    {
      "id": "6bb290f8936b4bf79b21b1279565558a",
      "tender": "UA-2018-11-28-001814-c"
    },
    {
      "id": "2e185eb98c8145e4bc09bc7ee84b219e",
      "tender": "UA-2018-11-20-002074-c"
    }
  ]
}

/tender.search

Поиск по тендерам.

Возвращает тендеры по фильтру.

GET-параметры в том же формате, что и при запросе из интерфейса.

  • text — поиск по тексту в описании или заголовке тендера;
  • entity — ЕГРПОУ заказчика;
  • tenderer — ЕГРПОУ участника;
  • classification — CPV-код закупки. Из-за бага сейчас от него отрезаются нули, то есть, 30000000-9 становится 3. Ищется по wildcard, 3411 = 3411.....
  • tenderer_statustenderer (сделал ставку), supplier (победил), contractor (подписан контракт);
  • date_from и date_to — даты последнего обновления данных в тендере, от-до, в формате dd-mm-yyyy;
  • value_min и value_max — диапазон планируемой цены закупки;
  • method — открытые/неконкурентные, open или limited;
  • complaints — если 1, то фильтрует по наличию жалоб на тендер;
  • complaint_from — от кого жалоба, ЕГРПОУ;
  • status — статус тендера, active, complete, unsuccessful, cancelled;
  • region — область, в которой находится закупщик;
  • risks[] — рассчитанные для тендера риски, массив;
  • sortModified (от новых к старым), Value (от дорогих к дешевым), Economy (по экономии), RisksScorePercent (по рискам);
  • offset — сколько тендеров пропустить сверху списка.

Поскольку tender.search не возвращает объект paginator, то пагинация реализуется с помощью параметра offset. Если тендеры под фильтрами закончились, метод вернёт пустой массив.

Доступные значения для поля risks[]:

'FirstCPVCode' => 'Первая закупка по этому CPV',
'TenderersAreRelated' => 'Участники тендера связаны между собой',
'InvalidCPVCode' => 'Неправильный CPV закупки',
'MuchDifferenceInBids' => 'Большая разница в предложениях',
'TendererSuppliesOnlyThisEntity' => 'Поставщик работает только с этим заказчиком',
'TooManyCancelledAwards' => 'Много дисквалификаций',
'WonAllLots' => 'Победитель торгов выиграл все лоты',
'InvalidWinnerEdr' => 'ЕГРПОУ/ИНН победителя не прошел валидацию',
'BidWerentLoweredMuch' => 'Выигрышная ставка была снижена минимально',
'TenderDocsUploadedAfterAuction' => 'Тендерная документация была изменена после аукциона',
'NoTenderDocuments' => 'Тендерная документация отсутствует',
'WrongContractTerms' => 'Нарушены сроки подписания контракта', 
'TendererFirstWin' => 'У победителя тендера это первый выигранный контракт',
'TenderWithoutDescription' => 'Тендер без описания', 
'ShortCPVCode' => 'CPV до 4-х знаков',
'TooManyItems' => 'Слишком много предметов для закупки для этого CPV',
'TooManyLots' => 'Слишком много лотов для этого CPV'

Важно: Из-за бага (я буду звать это фичей) offset не работает, если не были переданы другие фильтры.

You can’t perform that action at this time.