Перейти к содержимому

API · Для разработчиков

Тендерные данные через API

Те же данные, что видят пользователи Tender Radar, в вашей ERP, CRM или хранилище: 123 источников, 23 613 открытых тендеров, 7 стран и регионов. Один формат для всех площадок, обновление каждые несколько минут.

источников
123
открытых тендеров
23 613
стран и регионов
7
мин — самое частое обновление
5

Что дает API

Каждый тендер приходит в одном формате, где бы его ни опубликовали: номер, название, заказчик с ЕГРПОУ, CPV, ожидаемая стоимость, сроки в часовом поясе заказчика и в UTC, статус и ссылка на оригинал. Если тот же тендер есть на нескольких площадках, вы получаете одну запись со списком всех мест публикации.

Источники

  • Prozorro — публичные закупки Украины1 источник
  • Коммерческие площадки и порталы закупок компаний Украины110 источников
  • Европейский союз (TED)1 источник
  • Национальные системы закупок других стран, в том числе Великобритания6 источников
  • Международные организации, в том числе ООН5 источников

Свежесть

Каждый источник опрашивается по собственному расписанию: самые частые — каждые 5 мин. Сейчас вовремя обновляются 123 из 123 источников. Поле updated_at показывает, когда запись последний раз менялась.

Поля тендера

ПолеОписание
idПостоянный идентификатор записи в Radar (UUID). По нему обновляйте строки у себя.
numberНомер тендера в источнике, например UA-2026-10-11-000337-a.
title · title_translated · description · languageНазвание и описание на языке оригинала; перевод названия зарубежного тендера на украинский, если он есть.
status · status_sourceСтатус в единой шкале Radar и статус так, как его отдает источник.
procedureТип процедуры: код и название.
buyerЗаказчик: название, ЕГРПОУ или национальный идентификатор, регион, населенный пункт.
cpvОсновной код CPV с названием и дополнительные коды.
valueОжидаемая стоимость, валюта и учтен ли НДС.
published_at · submission_deadline · enquiry_end · auction_atДаты и сроки: местное время заказчика (local) и UTC (utc); time_zone — часовой пояс заказчика.
source · url · also_onИсточник, ссылка на оригинал и другие площадки, где опубликован тот же тендер.
lots · items · documentsЛоты, позиции и документы, если источник их публикует.
radar_url · first_seen_at · updated_atКарточка в Radar, когда мы впервые увидели тендер и когда запись последний раз менялась.

Аутентификация

Каждый запрос несет ключ организации в заголовке Authorization: Bearer rdr_live_…. Ключ принадлежит компании, а не человеку: его можно отдать сервису или интеграции.

  1. 1Ключи создает владелец или администратор компании в Tender Radar: Настройки → «API».
  2. 2Полный ключ мы показываем один раз, сразу после создания. Сохраните его в менеджере секретов или переменной окружения.
  3. 3Мы храним только хеш ключа, поэтому показать его повторно не сможем. Потеряли ключ — отзовите его и создайте новый.
  4. 4Отозванный ключ перестает работать сразу. Для каждой интеграции лучше иметь отдельный ключ (до 10 активных).

Базовый адрес

https://platform.aurum-apps.com/v1/data
Authorization: Bearer rdr_live_…

Первый запрос

Открытые тендеры на кровельные работы в Украине. Ключ берется из переменной окружения RADAR_API_KEY.

Эндпоинты

Все ответы — JSON в UTF-8. Списки возвращаются как объект с полем data. Параметры-списки можно повторять или писать через запятую.

Тендеры

GET/v1/data/tenders

Поиск и выгрузка тендеров. Порядок всегда по (updated_at, id) по возрастанию, поэтому курсор не пропускает изменений.

ПараметрОписание
qПоиск по словам с учетом словоформ. Точная фраза — в кавычках, -слово исключает.
cpvКоды CPV или префиксы от 2 до 8 цифр (45 — строительство, 4526 — кровельные работы).
countryСтрана по ISO 3166-1 alpha-2: UA, PL, GB…; EU — тендеры ЕС из TED.
sourceКоды источников из /v1/data/sources.
groupСлаги групп компаний из /v1/data/buyer-groups.
buyerЗаказчик: ЕГРПОУ, национальный идентификатор или id заказчика в Radar.
statusopen (по умолчанию) — еще можно подать предложение и срок не истек; any — любой статус; или конкретные статусы: planned, active, enquiry, tendering, auction, qualification, awarded, complete, cancelled, unsuccessful, closed_by_deadline, withdrawn_from_hub, notice, non_competitive.
value_min, value_maxОжидаемая стоимость от / до, в валюте самого тендера.
deadline_from, deadline_toКонечный срок подачи от / до, дата и время ISO 8601.
updated_sinceISO 8601: только тендеры, созданные или измененные начиная с этого момента.
cursorНепрозрачный курсор из next_cursor предыдущего ответа.
limitРазмер страницы, 1–500, по умолчанию 100.
langЯзык названий CPV, процедур и источников: uk (по умолчанию), ru, en.
formatjson (по умолчанию) или csv.
Пример ответа
{
  "data": [
    {
      "id": "0d6f4f7e-1c3b-4a51-9b7e-5b9b1f0c2a11",
      "number": "UA-2026-10-11-000337-a",
      "title": "Капітальний ремонт покрівлі",
      "status": "tendering",
      "source": { "code": "prozorro", "name": "Prozorro" },
      "value": { "amount": 1250000.0, "currency": "UAH", "vat_included": true },
      "submission_deadline": { "local": "2026-10-21T00:00:00+03:00", "utc": "2026-10-20T21:00:00Z" },
      "updated_at": "2026-10-11T19:31:02.123456Z",
      "…": "…"
    }
  ],
  "next_cursor": "eyJ1IjoiMjAyNi0xMC0xMVQxOTozMTowMi4xMjM0NTZaIiwiaSI6IjZmMWMifQ",
  "has_more": true,
  "as_of": "2026-10-11T19:40:00Z"
}

Один тендер

GET/v1/data/tenders/{id}

Полная запись по id. Если такой нет — 404 tender_not_found.

Без параметров.

Пример ответа
{
  "id": "0d6f4f7e-1c3b-4a51-9b7e-5b9b1f0c2a11",
  "number": "UA-2026-10-11-000337-a",
  "title": "Капітальний ремонт покрівлі",
  "title_translated": null,
  "description": "…",
  "language": "uk",
  "status": "tendering",
  "status_source": "active.tendering",
  "procedure": {
    "code": "aboveThreshold",
    "label": "Відкриті торги з особливостями"
  },
  "buyer": {
    "name": "Київська міська рада",
    "edrpou": "22883141",
    "scheme": "UA-EDR",
    "region": "Київ",
    "locality": "Київ"
  },
  "country": "UA",
  "region": "Київ",
  "source": {
    "code": "prozorro",
    "name": "Prozorro"
  },
  "url": "https://prozorro.gov.ua/tender/UA-2026-10-11-000337-a",
  "also_on": [
    {
      "source": "smarttender",
      "url": "https://smarttender.biz/…"
    }
  ],
  "cpv": {
    "main": {
      "code": "45261000",
      "name": "Покрівельні роботи"
    },
    "extra": [
      {
        "code": "45262000",
        "name": "…"
      }
    ]
  },
  "value": {
    "amount": 1250000,
    "currency": "UAH",
    "vat_included": true
  },
  "time_zone": "Europe/Kyiv",
  "published_at": {
    "local": "2026-10-11T10:15:00+03:00",
    "utc": "2026-10-11T07:15:00Z"
  },
  "submission_start": {
    "local": "2026-10-11T10:15:00+03:00",
    "utc": "2026-10-11T07:15:00Z"
  },
  "enquiry_end": null,
  "submission_deadline": {
    "local": "2026-10-21T00:00:00+03:00",
    "utc": "2026-10-20T21:00:00Z"
  },
  "auction_at": null,
  "lots": [],
  "items": [],
  "documents": [],
  "radar_url": "https://platform.aurum-apps.com/uk/app/tenders/0d6f4f7e-1c3b-4a51-9b7e-5b9b1f0c2a11",
  "first_seen_at": "2026-10-11T07:16:40Z",
  "updated_at": "2026-10-11T19:31:02.123456Z"
}

Источники

GET/v1/data/sources

Все источники: код, страна, сегмент, расписание опроса, время последнего успешного сбора, состояние и количество открытых тендеров. Коды — для параметра source.

ПараметрОписание
langЯзык названий CPV, процедур и источников: uk (по умолчанию), ru, en.
Пример ответа
{
  "data": [
    {
      "code": "prozorro",
      "name": "Prozorro",
      "country": "UA",
      "segment": "ua_public",
      "kind": "api",
      "schedule_minutes": 5,
      "last_success_at": "2026-10-11T19:35:00Z",
      "status": "ok",
      "open_tenders": 18950
    }
  ]
}

Группы компаний

GET/v1/data/buyer-groups

Группы заказчиков (холдинги) с участниками и их кодами. Слаги — для параметра group.

ПараметрОписание
langЯзык названий CPV, процедур и источников: uk (по умолчанию), ru, en.
Пример ответа
{
  "data": [
    {
      "slug": "metinvest",
      "name": "Метінвест",
      "aliases": [
        "Metinvest"
      ],
      "members": [
        {
          "edrpou": "00191000",
          "name": "ПрАТ «ММК ім. Ілліча»"
        }
      ]
    }
  ]
}

Справочник CPV

GET/v1/data/cpv

Поиск кодов CPV по префиксу кода или словам, с названиями на трех языках.

ПараметрОписание
qПрефикс кода или слова.
langЯзык названий CPV, процедур и источников: uk (по умолчанию), ru, en.
limitСколько кодов вернуть.
Пример ответа
{
  "data": [
    {
      "code": "45261000",
      "name": "Покрівельні роботи",
      "names": {
        "uk": "Покрівельні роботи",
        "en": "Roofing works",
        "ru": "Кровельные работы"
      }
    }
  ]
}

Использование

GET/v1/data/usage

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

Без параметров.

Пример ответа
{
  "org": "ТОВ «Альфа»",
  "key": {
    "name": "ERP sync",
    "prefix": "rdr_live_ab12cd"
  },
  "limits": {
    "requests_per_minute": 120,
    "rows_per_day": 100000,
    "max_page": 500
  },
  "today": {
    "requests": 14,
    "rows": 1200,
    "rows_remaining": 98800
  },
  "subscription": {
    "status": "active",
    "plan": "api",
    "trial_until": null
  }
}

Схема OpenAPI

GET/v1/data/openapi.json

Схема OpenAPI 3 только для API данных; ключ не нужен. По ней можно сгенерировать клиент для своего языка.

Без параметров.

Инкрементальная синхронизация

Так держат у себя актуальную копию: один раз загрузить все, а дальше забирать только изменения.

  1. 1Первая загрузка: GET /v1/data/tenders?limit=500 и дальше по next_cursor, пока has_more равно true. Сохраните последний next_cursor.
  2. 2Каждые 10 минут: GET /v1/data/tenders?cursor=…&status=any&limit=500, снова пока has_more. Обновляйте строки по id: измененный тендер приходит еще раз уже с новым состоянием, например closed_by_deadline. Сохраните новый next_cursor.
  3. 3status=any — чтобы закрытые и отмененные тендеры тоже приходили как изменения. Строки, которых у вас не было и которые уже не открыты, можно пропускать.

Без пропусков и дублей: изменение, которое еще записывается, ждет окончания записи, поэтому курсор его не перескочит. Если запрос оборвался, просто повторите его с тем же курсором.

Экспорт в CSV

Добавьте format=csv — те же строки придут как CSV: плоские колонки, запятая как разделитель, строка заголовков, UTF-8 с BOM (Excel открывает без настроек). Курсор приходит в заголовках X-Next-Cursor и X-Has-More, поэтому синхронизация работает так же.

Лимиты

  • 120 запросов в минуту на каждый ключ.
  • 100 000 строк тендеров в день на организацию (сутки по UTC).
  • До 500 строк на страницу.
  • Оба лимита можно поднять для вашей организации — напишите нам.

Заголовки лимитов

Каждый ответ несет текущее состояние лимитов:

ЗаголовокОписание
X-RateLimit-LimitЗапросов в минуту для этого ключа.
X-RateLimit-RemainingСколько запросов осталось в текущей минуте.
X-RateLimit-ResetСекунд до начала новой минуты.
X-RateLimit-Rows-LimitСтрок в день для организации.
X-RateLimit-Rows-RemainingСколько строк осталось на сегодня.
Retry-AfterТолько в ответе 429: через сколько секунд повторить запрос.

Ошибки

Тело ошибки всегда одинаковое: code для программы, message и detail для человека. Ошибка валидации (422) имеет стандартное тело, где detail — список полей.

КодЧто случилось
401 missing_api_keyНет заголовка Authorization: Bearer.
401 invalid_api_keyНеизвестный ключ.
401 api_key_revokedКлюч отозван.
402 api_plan_requiredУ организации нет активной подписки на API.
400 invalid_cursorКурсор поврежден или он не из этого API.
404 tender_not_foundТендера с таким id нет.
422 —Параметр имеет неправильное значение.
429 rate_limitedПревышен лимит запросов в минуту; повторите после Retry-After.
429 daily_rows_exceededИсчерпан дневной лимит строк; он обновится в полночь по UTC.
{
  "code": "invalid_api_key",
  "message": "Unknown API key",
  "detail": "Check the Authorization header"
}

API по подписке

Оставьте заявку: согласуем объем и цену, включим подписку вашей организации, и владелец или администратор сразу создаст ключ.

Доступ уже есть? Ключи создаются в Настройках → «API». Открыть настройки

Получить ключ / Заказать доступ