Delect API Lite · для разработчика
Документация
Выгружайте актуальные цены и остатки на свой сервер — без ручного скачивания прайсов. Прайс дистрибьютора — одним запросом, формат NDJSON. До покупки доступен тестовый ключ: образцы до 100 строк по всем активным поставщикам. Настройка — в кабинете → «Delect API Lite», здесь — инструкция для разработчика.
https://delect.ruПолучите ключ
Кабинет → «Delect API Lite»: сгенерируйте тестовый токен. После оплаты выберите поставщиков для полных прайсов. Токен работает с одного сервера — адрес закрепится при первом запросе. Смена сервера — перевыпуск токена; динамический IP — к администратору.
Узнайте свой список
GET /api/v1/lite/distributors с токеном: в песочнице — все активные поставщики; в полном режиме — выбранные и доступные по оплате. total_estimate в песочнице равен null, в полном режиме это оценка числа предложений.
Скачайте прайсы
На каждого дистрибьютора — GET на /api/v1/lite/export/{дистрибьютор}: его прайс (до 100 строк в песочнице) одним NDJSON-ответом. В конце файла проверьте маркер _eof.
Проверка целостности обязательна. Последняя строка выгрузки — маркер {"_eof":true,"count":…}. Перед загрузкой прайса в учёт убедитесь: последняя непустая строка содержит "_eof":true, а count равен числу прочитанных строк-предложений. Маркера нет или число не сошлось — файл оборван: не загружайте его (иначе неполный прайс встанет на место полного и обнулит живой ассортимент), скачайте заново.
application/x-ndjson. Прайс дистрибьютора (образец в песочнице) приходит одним ответом — из одного консистентного снимка каталога.Песочница: 20 запросов в минуту и 200 в час на аккаунт, дополнительно действует общий лимит IP. В полном режиме частота зависит от тарифа и видна в настройках API; общих потоков выгрузки — до 6. HTTP 429 содержит Retry-After в секундах. Запросы с одного IP делят общий бюджет; не повторяйте запрос без паузы.
Зарегистрируйтесь, подтвердите почту, укажите ИНН компании в профиле и примите обязательные соглашения. В кабинете → «Delect API Lite» получите токен dlk_live_…. Песочница выдаётся один раз на ИНН и аккаунт и доступна в том числе во время пробного периода тарифа. 14 дней отсчитываются с первого успешного запроса по токену, а не с его создания. Перевыпуск токена срок не продлевает.
Выбирать поставщиков не нужно: доступны все активные поставщики, по каждому — первые 100 строк в порядке offer_id того же отбора (наличие или транзит, цена > 0, без уценки). Если строк меньше — придут все доступные. Заголовок X-Delect-Sample: 100 и поля "sample":true,"sample_limit":100 в _eof означают образец: не подменяйте им полный прайс и не удаляйте отсутствующие в образце товары.
После оплаты тарифа с API тот же токен переходит на полный режим. Выберите оплаченных поставщиков в кабинете. Отдельная проба полных прайсов после оплаты сохраняется; песочница её не расходует и счетов не создаёт. Действующие условия и цены.
Скачать пример NDJSON — пример, значения условные; имена поставщиков и товары вымышлены.
| Метод | URL | Назначение |
|---|---|---|
GET | /api/v1/lite/distributors | Ваши дистрибьюторы и оценка числа предложений |
GET | /api/v1/lite/export/{distributor} | Прайс дистрибьютора (образец в песочнице) одним ответом (NDJSON) |
Authorization Bearer (рекомендуется)
Заголовок X-Delect-API-Key
ETag — отпечаток снимка прайса. Сохраните его и в следующем запросе пришлите в заголовке If-None-Match: если прайс не изменился с прошлого раза, сервер ответит 304 Not Modified без тела — экономия трафика и времени на регулярной синхронизации. Если ETag в ответе отсутствует (например, кэш снимка временно недоступен) — просто не присылайте If-None-Match, получите обычный 200 с прайсом. В песочнице при недоступном кэше — 503 sample_unavailable, выдача полного прайса вместо образца исключена.1. Запомните ETag из ответа
2. Пришлите его в следующем запросе
304 = данные не менялись, используйте прошлый файл. Это НЕ пустой прайс — не обнуляйте ассортимент. Пустое тело при 304 означает «изменений с прошлого запроса нет», а не «товаров нет». Тот же класс аварии, ради которого существует маркер _eof: перезапись каталога пустотой обнулит живой ассортимент. Обновляйте ассортимент только при 200 с валидным маркером _eof.
| Поле | Что это |
|---|---|
offer_id * | Уникальный ID позиции в Delect. Обязателен для синхронизации. Пример: 1847291 |
updated_at * | Время последнего обновления прайса (ISO 8601). Пример: 2026-06-18T14:30:00+00:00 |
name | Наименование товара у дистрибьютора. Пример: SSD Example 1TB |
part_number | Артикул / part number. Пример: EX-SSD-1TB |
vendor | Вендор (производитель) — как в каталоге Delect. Пример: Example |
distributor | Название дистрибьютора. Пример: Поставщик Пример |
price_rub | Цена в рублях. Пример: 12490.50 |
price_usd | Цена в долларах США. Пример: 135.20 |
price_currency | Валюта прайса: цена в ней — та, по которой мы работаем с этим поставщиком. Цена в другой валюте, если она есть, обычно наш пересчёт по курсу ЦБ на момент импорта. Пример: USD |
stock | Складской остаток: число или текст («+», «мало»). 0 — на складе нет, позиция едет транзитом. Пример: 12 |
transit | Транзит: число или текст, в скобках — срок прибытия в том виде, как его прислал дистрибьютор (единого формата у поставщиков нет). 0 — транзита нет. Пример: много (13.08.2026) |
availability = stock_or_transit, price_scope = positive_only.price_currency — валюта прайса, цена в ней и есть цена поставщика. Цена в другой валюте, как правило, наш пересчёт по курсу ЦБ на момент импорта: она не пересчитывается между импортами и может отличаться от пересчёта по сегодняшнему курсу. Нужна точность до копейки — берите цену в валюте price_currency и считайте своим курсом. Предложения без цены и с нулевой ценой в выгрузку не попадают: хотя бы одно из полей price_rub / price_usd в каждой строке больше нуля.distributors — в песочнице — все активные поставщики, в полном режиме — выбранные в кабинете; total_estimate — оценка суммарного числа предложений по всем ним./api/v1/lite/distributors; URL-кодирование кириллицы выполняет ваш HTTP-клиент, просто передавайте URL в кавычках._eof: здесь count: 2 совпадает с числом строк-предложений — образец получен целиком, но это не весь прайс поставщика. При sample: true нельзя заменять им полный ассортимент.Retry-After — число секунд (для занятых слотов — 5). Правильный ретрай: подождать указанное время и повторить тот же запрос. Не повторяйте запросы в цикле без паузы.- Скачивайте сразу в файл:
Соединение.Получить(Запрос, ИмяФайла)— прайс на десятки мегабайт не должен попадать в строку в памяти. - Читайте построчно:
ЧтениеТекстас явнойКодировкаТекста.UTF8; каждую строку разбирайтеПрочитатьJSON. - Последняя строка — маркер
_eof: проверьте"_eof":trueи чтоcountсовпал с числом прочитанных предложений. Не совпало — файл оборван: не загружайте его, скачайте заново. - Таймаут соединения задайте явно — 300 секунд: большой прайс по медленному каналу качается дольше таймаута по умолчанию.
- Экономьте трафик: сохраняйте
ETagи шлитеIf-None-Match. Ответ304— прайс не менялся, оставьте прошлый файл; не воспринимайте 304 как пустой прайс. - Получили 429 — подождите
Retry-Afterсекунд и повторите запрос.
| Код | Что делать |
|---|---|
304 | Не ошибка. Прайс не изменился с вашего прошлого запроса (вы прислали If-None-Match). Тело пустое — используйте ранее скачанный файл. Не трактуйте 304 как пустой прайс и не обнуляйте ассортимент. |
402 sample_expired | Песочница закончилась. Выберите тариф; токен менять не нужно. |
403 sample_revoked | Песочница отозвана администратором. |
503 sample_unavailable | Образец временно недоступен; повторите через Retry-After секунд. |
402 access_expired | Срок выданного доступа закончился. Выберите тариф; токен менять не нужно. |
402 api_lite_trial_expired | Отдельная проба полных прайсов закончилась; оплатите поставщиков в кабинете. |
401 | Токен неверен или отозван, API выключен во вкладке «Настройки» или доступ снят администратором. Проверьте токен и статус API. |
403 | Запрос с сервера, не закреплённого за токеном (токен привязан к другому IP). Сменили сервер — перегенерируйте токен в кабинете: привязка сбросится и закрепится за новым сервером при первом запросе. Либо не приняты обязательные юридические документы в кабинете. |
404 | unknown_distributor — поставщика нет в доступном списке. Возьмите имя из /api/v1/lite/distributors и подставьте в URL без изменений. |
429 | Превышена частота запросов или заняты все слоты одновременной отдачи. Подождите Retry-After секунд (заголовок ответа) и повторите запрос. |
429 auth_throttled | Слишком много неудачных попыток авторизации с одного IP (порог ~30/мин). Подождите указанное в Retry-After время (60 с) и проверьте правильность токена. |
