KAZNA TECH / Решения / Продуктовым командам
LegalTech, FinTech, площадки, аналитика

Строить продукт на данных, а не на их добыче

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

Ситуация

Полкоманды занято сбором, а не продуктом

Сбор данных выглядит как задача на пару недель, а превращается в постоянную. Источники меняются, форматы расходятся, что-то отваливается в выходные. Инженеры, которых нанимали делать продукт, дежурят у парсеров, а сроки по фичам едут.

Что даёт API

Слой данных перестаёт быть вашей зоной ответственности.

Один формат на всё

Источники отдаются одинаково: обработка пишется один раз.

Один токен

Новый источник не требует ни новой интеграции, ни нового договора.

Опубликованные обязательства

Доступность и лаг данных известны до договора и зафиксированы в нём.

История снимков

Состояние объекта на любую дату: можно строить динамику, а не только срез.

Оплата за сбор

Читать собранное бесплатно: кэшировать у себя ради экономии не нужно.

Предсказуемые ответы

Пока объект собирается, приходит статус, а не ошибка: ретраи не нужны.

Какие источники закрывают задачу

Ни один источник не отвечает на вопрос целиком. Ниже те, что нужны именно для этой работы.

ИсточникЧто даёт для задачи
Все источники каталогаРеестры, суды, производства, отчётность, закупки, проверки
Один методЗапрос по естественному идентификатору объекта
Один форматОдинаковая структура ответа и одинаковые статусы
Датированные снимкиИстория состояний для аналитики и отчётности
Собственный расчётГотовая оценка риска поверх собранных данных
Кредиты вместо запросовТариф не наказывает за частое чтение

Весь каталог: источники данных →

Как это выглядит в коде

Один и тот же вызов и одна и та же форма ответа: меняется метод, не подход.

# один помощник на все методы: ответ всегда JSON, авторизация одна
def fetch(path, **params):
    return requests.get(
        f"{API_BASE}{path}",
        params=params,
        headers={"Authorization": f"Bearer {TOKEN}"},
    ).json()

# компания: карточка лежит в company, рядом дата сборки и источники
company = fetch("/api/company", inn=inn)["company"]

# дело: пока не собрано, приходит cached=false — это статус, а не ошибка
case = fetch("/api/case", number=case_number)
if not case["cached"]:
    schedule_recheck(case_number)

# строка непонятного вида: сервис сам решит, ИНН это или номер дела
guess = fetch("/api/lookup", q=user_input)["kind"]

Возьмите готовый слой данных

Дадим тестовый доступ и базовый адрес: соберите прототип на реальных данных до всякого договора.

Получить доступ

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