> For the complete documentation index, see [llms.txt](https://resolve-wiki.huckster.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://resolve-wiki.huckster.ru/prochie-instrukcii/rukovodstvo-polzovatelya-po-rabote-s-api-repraisera-huckster.md).

# Руководство пользователя по работе с API репрайсера Huckster

Данное руководство содержит подробную информацию по работе с API репрайсера Huckster.&#x20;

### Введение в API репрайсера Huckster

#### Что такое API?

**API (Application Programming Interface)** — это программный интерфейс, который позволяет различным приложениям взаимодействовать друг с другом. В контексте работы с репрайсером Huckster, API предоставляет возможность автоматизировать управление товарами, ценами и настройками через программный код. **API** работает по принципу двустороннего обмена данными:

* **Исходящие запросы** — мы отправляем запросы к системе для получения или изменения данных
* **Входящие ответы** — система возвращает нам запрошенную информацию или подтверждает выполнение действий

#### Зачем нужен API?

* Автоматизация рутинных операций
* Интеграция с другими системами
* Массовое управление товарами и ценами
* Получение актуальной информации о состоянии товаров
* Оптимизация работы с маркетплейсами

### Важные примечания

#### Развитие API

API репрайсера Huckster постоянно совершенствуется и расширяется. Мы регулярно добавляем новые методы и улучшаем существующие для обеспечения более эффективной работы пользователей. **API** работает по принципу двустороннего обмена данными

#### Запросы на расширение функционала

Если вам необходим дополнительный функционал или специфические методы работы с API, вы можете обратиться в техническую поддержку для обсуждения возможности их реализации.

#### Ниже представлено описание 14 методов API и решаемых с их помощью задач по информационному обмену с Huckster Platform

### 1. Получение MD5-хэша пароля

#### Назначение метода

Первый шаг в работе с API — получение **MD5-хэша** пароля. Этот хэш необходим для последующей аутентификации в системе. Хэш генерируется один раз и остается неизменным, пока не будет изменен исходный пароль.

#### Технические характеристики

* **HTTP метод**: POST
* **URL**: <https://wbs.e-teleport.ru/md5>
* **Формат данных**: JSON

#### Структура запроса

json

```json
{
    "input": "ваш_пароль"
}
```

#### Пример запроса

python

```python
import requests

url = "https://wbs.e-teleport.ru/md5"
data = {
    "input": "ваш_пароль"
}

response = requests.post(url, json=data)
```

#### Ответ сервера

В случае успешного выполнения запроса сервер вернет JSON-ответ с хэшированным значением:

json

```json
"pass-hash"
```

#### Важные замечания

* Хэш необходимо сохранить для дальнейшего использования
* Запрос не требует авторизации
* Пароль чувствителен к регистру
* При изменении пароля необходимо получить новый хэш

#### Типичные ошибки

* Неверный формат запроса (отсутствие поля input)
* Проблемы с сетевым подключением
* Превышение лимита запросов

#### Рекомендации

* Сохраняйте полученный хэш в безопасном месте
* Используйте HTTPS для защиты передачи данных
* Проверяйте корректность введенного пароля перед хэшированием

После получения MD5-хэша вы можете переходить к следующему шагу — **аутентификации** в системе с помощью полученного значения.

### 2. Аутентификация и получение сессии

#### Назначение метода

После получения MD5-хэша необходимо пройти аутентификацию в системе для получения **идентификатора сессии**. Этот идентификатор будет использоваться во всех последующих запросах к API.&#x20;

#### Технические характеристики

* **HTTP метод**: POST
* **URL**: <https://wbs.e-teleport.ru/auth/credentials>
* **Формат данных**: JSON
* **Требуемые права доступа**: базовые права пользователя

#### Структура запроса

В теле запроса необходимо передать:

* **userName** - адрес электронной почты пользователя
* **password** - MD5-хэш пароля, полученный на предыдущем этапе

json

```json
{
    "userName": "user@mail.ru",
    "password": "полученный_MD5_хэш"
}
```

#### Пример реализации

python

```python
import requests

# URL для аутентификации
url = "https://wbs.e-teleport.ru/auth/credentials"

# Данные для аутентификации
auth_data = {
    "userName": "ваш_email@домен.ru",
    "password": "ваш_md5_хэш"
}

# Отправка запроса
response = requests.post(url, json=auth_data)

# Получение ответа
if response.status_code == 200:
    session_data = response.json()
    session_id = session_data['SessionId']
    print(f"Успешная аутентификация. Session ID: {session_id}")
else:
    print("Ошибка аутентификации")
```

#### Ответ сервера

При успешной аутентификации сервер возвращает JSON-объект с информацией:

json

```json
{
    "UserId": "идентификатор_пользователя",
    "UserName": "имя_пользователя",
    "SessionId": "идентификатор_сессии"
}
```

#### Важные замечания

* **SessionId** необходимо сохранять для всех последующих запросов
* Сессия имеет ограниченный срок действия до 00:00
* При истечении срока действия сессии требуется повторная аутентификация
* **SessionId** передается в заголовке запроса

#### Типичные ошибки

* Неверный email или MD5-хэш
* Проблемы с сетевым подключением
* Превышение лимита попыток аутентификации
* Истечение срока действия сессии

#### Рекомендации

* Сохраняйте **SessionId** в защищенном месте
* Используйте HTTPS для передачи данных
* Проверяйте статус ответа сервера
* Реализуйте механизм повторной аутентификации при истечении сессии

После получения **SessionId** вы можете переходить к работе с защищенными методами API.

### 3. Получение списка кабинетов продавца

#### Назначение метода

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

#### Технические характеристики

* **HTTP метод**: POST
* **URL**: <https://wbs.e-teleport.ru/markets/integrations/accounts/list>
* **Требуемые права**: авторизованная сессия

#### Обязательные заголовки

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

```
set-cookie: ss-id=ваш_session_id
```

#### Структура запроса

Запрос не требует параметров в теле, отправляется пустым:

json

```json
{}
```

#### Пример реализации

python

```python
import requests

# URL для получения списка кабинетов
url = "https://wbs.e-teleport.ru/markets/integrations/accounts/list"

# Заголовки с session-id
headers = {
    "set-cookie": f"ss-id={session_id}"
}

# Отправка запроса
response = requests.post(url, headers=headers)

# Обработка ответа
if response.status_code == 200:
    accounts = response.json()
    print("Список кабинетов получен успешно")
else:
    print("Ошибка при получении списка кабинетов")
```

#### Структура ответа

json

```json
{
    "result": [
        {
            "marketplace": "ozon",
            "shop": "РиК ООО (Ozon FBS)",
            "shop_id": "1234569",
            "delivery_method": "FBS"
        },
        {
            "marketplace": "wildberries",
            "shop": "РиК ООО (FBW)",
            "shop_id": "12345_FBO",
            "delivery_method": "FBS"
        }
    ]
}
```

#### Описание полей ответа

* **marketplace** - название маркетплейса
* **shop** - название магазина/кабинета
* **shop\_id** - уникальный идентификатор кабинета
* **delivery\_method** - метод доставки (FBS, FBO и т.д.)

#### Важные замечания

* Метод требует активной сессии
* Необходимо сохранять полученные **shop\_id** для последующих операций
* Каждый кабинет имеет свой уникальный идентификатор

#### Типичные ошибки

* **401 Unauthorized** - истекшая сессия или неверный session-id
* **403 Forbidden** - недостаточные права доступа
* **500 Internal Server Error** - проблемы на стороне сервера

#### Рекомендации

* Сохраняйте полученные идентификаторы кабинетов
* Проверяйте статус ответа перед обработкой данных
* Реализуйте обработку возможных ошибок
* Используйте полученные данные для дальнейшей работы с товарами конкретного кабинета

### 4. Получение списка товаров в стратегии Удержание РРЦ

#### Назначение метода

Метод позволяет получить подробную информацию о товарах, находящихся в стратегии Удержание РРЦ в конкретном кабинете маркетплейса. Используется для мониторинга цен и настроек товаров.

#### Технические характеристики

* **HTTP метод**: POST
* **URL**: <https://wbs.e-teleport.ru/markets/integrations/repricer/items/list>
* **Требуемые права**: авторизованная сессия

#### Обязательные заголовки

```
set-cookie: ss-id=ваш_session_id
```

#### Параметры запроса

json

```json
{
    "marketplace": "название_маркетплейса",
    "shop_id": "идентификатор_магазина",
    "limit": 100-1000,  // количество возвращаемых записей
    "offset": 0         // смещение (должно быть кратно limit)
}
```

#### Пример реализации

python

```python
import requests

url = "https://wbs.e-teleport.ru/markets/integrations/repricer/items/list"
headers = {
    "set-cookie": f"ss-id={session_id}"
}
data = {
    "marketplace": "wildberries",
    "shop_id": "123456_FBO",
    "limit": 1000,
    "offset": 0
}

response = requests.post(url, headers=headers, json=data)
```

#### Структура ответа

json

```json
{
    "result": [
        {
            "marketplace": "wildberries",
            "shop": "Название магазина",
            "shop_id": "123456_FBO",
            "uid": "идентификатор_товара",
            "name": "Название товара",
            "trademark": "Бренд",
            "sku": "Артикул",
            "enabled": true,
            "card_control": true,
            "max_discount": 0,
            "min_price": 0,
            "parsing_status": "Работает",
            "url": "ссылка_на_товар",
            "last_update": "дата_обновления",
            "market_old_price": 13904,
            "market_price": 3545,
            "market_card_price": 3367,
            "upload_price": 4928,
            "market_discount": 15.46,
            "market_card_discount": 5.08
        }
    ],
    "cursor": {
        "limit": 1000,
        "offset": 0,
        "total": 790
    }
}
```

#### Описание полей ответа

* **marketplace** - название маркетплейса
* **shop** - название магазина
* **shop\_id** - идентификатор магазина
* **uid** - уникальный идентификатор товара
* **name** - название товара
* **trademark** - бренд товара
* **sku** - артикул товара
* **enabled** - статус включения в репрайсер
* **card\_control** - учет цены по карте
* **max\_discount** - максимальная скидка
* **min\_price** - минимальная цена продажи
* **parsing\_status** - статус парсинга
* **url** - ссылка на товар
* **last\_update** - дата последнего обновления
* **market\_old\_price** - старая цена
* **market\_price** - текущая цена
* **market\_card\_price** - цена по карте
* **upload\_price** - загруженная цена
* **market\_discount** - скидка
* **market\_card\_discount** - скидка по карте

#### Важные замечания

* Параметр **limit** определяет количество возвращаемых записей (от 100 до 1000)
* **offset** должен быть кратен **limit**
* Для получения всех записей используйте пагинацию через **offset**
* Поле **cursor** содержит информацию о общем количестве товаров

#### Типичные ошибки

* **400 Bad Request** - неверные параметры запроса
* **401 Unauthorized** - истекшая сессия
* **404 Not Found** - неверный shop\_id
* **500 Internal Server Error** - проблемы на стороне сервера

#### Рекомендации

* Используйте пагинацию для получения большого количества товаров
* Сохраняйте **total** из **cursor** для расчета количества запросов
* Проверяйте статус каждого товара перед обработкой

### 5. Управление товарами в стратегии Удержание РРЦ

#### Назначение метода

Метод позволяет добавлять и удалять товары в стратегии Удержание РРЦ, а также настраивать индивидуальные параметры для каждого товара.

#### Технические характеристики

* **HTTP метод**: POST
* **URL**: <https://wbs.e-teleport.ru/markets/integrations/repricer/items/set>
* **Ограничение**: не более 100 товаров в одном запросе
* **Требуемые права**: авторизованная сессия

#### Обязательные заголовки

```
set-cookie: ss-id=ваш_session_id
```

#### Структура запроса

json

```json
{
    "marketplace": "wildberries",
    "shop_id": "123456_FBO",
    "item_list": [
        {
            "uid": "FR2753-WG-Freya",
            "sku": "1611122247",
            "enabled": true,
            "card_control": true,
            "max_discount": 0,
            "min_price": 0
        }
    ]
}
```

#### Параметры запроса

* **marketplace** - название маркетплейса
* **shop\_id** - идентификатор магазина
* **item\_list** - список товаров для обработки
  * **uid** - уникальный идентификатор товара в системе
  * **sku** - артикул товара (необязательное поле)
  * **enabled** - флаг включения в стратегию (true/false)
  * **card\_control** - учет цен по карте (true/false)
  * **max\_discount** - максимальная допустимая скидка
  * **min\_price** - минимальная цена продажи

#### Пример реализации

python

```python
import requests

url = "https://wbs.e-teleport.ru/markets/integrations/repricer/items/set"
headers = {
    "set-cookie": f"ss-id={session_id}"
}
data = {
    "marketplace": "wildberries",
    "shop_id": "123456_FBO",
    "item_list": [
        {
            "uid": "FR2753-WG-Freya",
            "sku": "1611122247",
            "enabled": True,
            "card_control": True,
            "max_discount": 0,
            "min_price": 0
        }
    ]
}

response = requests.post(url, headers=headers, json=data)
```

#### Ответ сервера

json

```json
{
    "result": [
        {
            "result": "OK"
        },
        {
            "result": "error",
            "error": {
                "message": "Описание ошибки",
                "code": "Код ошибки"
            }
        }
    ]
}
```

#### Важные замечания

* Максимальное количество товаров в запросе - 100
* Для массового обновления необходимо разбить товары на несколько запросов
* Параметр **enabled** управляет включением/отключением репрайсинга
* **card\_control** влияет на учет цен по картам

#### Типичные ошибки

* **400 Bad Request** - неверный формат запроса
* **401 Unauthorized** - истекшая сессия
* **404 Not Found** - неверный shop\_id
* **429 Too Many Requests** - превышение лимита запросов

#### Рекомендации

* Проверяйте статус каждого товара в ответе
* Обрабатывайте ошибки для каждого товара отдельно
* Сохраняйте результаты обработки для последующего анализа
* Используйте корректные значения для числовых параметров

### 6. Обновление цен товаров в каталоге

#### Назначение метода

Метод позволяет обновлять закупочные и розничные цены товаров в системе. Используется для синхронизации актуальных цен с вашей базой данных.

#### Технические характеристики

* **HTTP метод**: POST
* **URL**: <https://wbs.e-teleport.ru/catalog_updatePrice>
* **Требуемые права**: авторизованная сессия

#### Обязательные заголовки

```
set-cookie: ss-id=ваш_session_id
```

#### Структура запроса

json

```json
{
    "items": [
        {
            "uid": "идентификатор_товара",
            "price": закупочная_цена,
            "retail_price": розничная_цена
        }
    ]
}
```

#### Параметры запроса

* **items** - массив товаров для обновления
  * **uid** - уникальный идентификатор товара
  * **price** - закупочная цена (число)
  * **retail\_price** - розничная цена (число)

#### Пример реализации

python

```python
import requests

url = "https://wbs.e-teleport.ru/catalog_updatePrice"
headers = {
    "set-cookie": f"ss-id={session_id}"
}
data = {
    "items": [
        {
            "uid": "123456",
            "price": 1500,
            "retail_price": 2500
        },
        {
            "uid": "789012",
            "price": 2000,
            "retail_price": 3500
        }
    ]
}

response = requests.post(url, headers=headers, json=data)
```

#### Ответ сервера

При успешной обработке сервер возвращает статус 200 без дополнительного содержимого.

#### Важные замечания

* Цены указываются в числовом формате без разделителей
* Можно обновлять цены для нескольких товаров в одном запросе
* Рекомендуется проверять корректность передаваемых значений
* Обновление происходит асинхронно

#### Типичные ошибки

* **400 Bad Request** - некорректный формат данных
* **401 Unauthorized** - истекшая сессия
* **404 Not Found** - неверный uid товара
* **500 Internal Server Error** - проблемы на стороне сервера

#### Рекомендации

* Проверяйте существование товаров перед обновлением
* Используйте корректные числовые значения цен
* Реализуйте обработку ошибок для каждого товара
* Сохраняйте логи операций обновления цен

### 7. Получение списка дополнительных видов цен товаров в каталоге

#### Назначение метода

Метод позволяет получить перечень всех доступных дополнительных видов цен в системе Huckster. Используется для определения типов цен, которые можно устанавливать для товаров.

#### Технические характеристики

* **HTTP метод**: POST
* **URL**: <https://wbs.e-teleport.ru/markets/price\\_types/list>
* **Требуемые права**: авторизованная сессия

#### Обязательные заголовки

```
set-cookie: ss-id=ваш_session_id
```

#### Структура запроса

Запрос не требует параметров в теле:

json

```json
{}
```

#### Пример реализации

python

```python
import requests

url = "https://wbs.e-teleport.ru/markets/price_types/list"
headers = {
    "set-cookie": f"ss-id={session_id}"
}

response = requests.post(url, headers=headers)
```

#### Структура ответа

json

```json
{
    "result": [
        {
            "price_type_id": "02578250",
            "price_type": "РЦ Озон"
        },
        {
            "price_type_id": "другой_id",
            "price_type": "Название другого типа цены"
        }
    ]
}
```

#### Описание полей ответа

* **price\_type\_id** - уникальный идентификатор типа цены в системе
* **price\_type** - наименование типа цены

#### Важные замечания

* Идентификаторы типов цен необходимо сохранять для дальнейшего использования
* Каждый тип цены имеет свой уникальный ID

#### Типичные ошибки

* **401 Unauthorized** - истекшая сессия
* **403 Forbidden** - недостаточные права доступа
* **500 Internal Server Error** - проблемы на стороне сервера

#### Рекомендации по использованию

* Сохраняйте полученные ID типов цен
* Проверяйте актуальность списка перед установкой цен

### 8. Обновление дополнительных видов цен товаров

#### Назначение метода

Метод позволяет обновлять дополнительные виды цен для товаров в каталоге. Используется для управления альтернативными ценовыми категориями.

#### Технические характеристики

* **HTTP метод**: POST
* **URL**: <https://wbs.e-teleport.ru/markets/items/prices/update>
* **Требуемые права**: авторизованная сессия

#### Обязательные заголовки

```
set-cookie: ss-id=ваш_session_id
```

#### Структура запроса

json

```json
{
    "items": [
        {
            "uid": "123456",
            "price_type_id": "02578250",
            "retail_price": 0
        }
    ]
}
```

#### Параметры запроса

* **items** - массив товаров для обновления
  * **uid** - уникальный идентификатор товара
  * **price\_type\_id** - идентификатор типа цены в системе Huckster
  * **retail\_price** - цена продажи

#### Пример реализации

python

```python
import requests

url = "https://wbs.e-teleport.ru/markets/items/prices/update"
headers = {
    "set-cookie": f"ss-id={session_id}"
}
data = {
    "items": [
        {
            "uid": "123456",
            "price_type_id": "02578250",
            "retail_price": 2500
        }
    ]
}

response = requests.post(url, headers=headers, json=data)
```

#### Важные замечания

* **price\_type\_id** необходимо получать из системы Huckster
* Цены указываются в числовом формате
* Можно обновлять несколько товаров в одном запросе
* Рекомендуется проверять существование price\_type\_id перед обновлением

#### Типичные ошибки

* **400 Bad Request** - неверный price\_type\_id
* **401 Unauthorized** - истекшая сессия
* **404 Not Found** - неверный uid товара
* **422 Unprocessable Entity** - некорректное значение цены

#### Рекомендации

* Предварительно проверяйте существование price\_type\_id
* Используйте корректные числовые значения цен
* Реализуйте обработку ошибок для каждого товара
* Сохраняйте логи операций обновления цен
* Проверяйте права доступа перед выполнением массовых операций

### 9. Добавление товаров в каталог Huckster из кабинета маркетплейса

#### Назначение метода

Метод позволяет импортировать товары из вашего кабинета на маркетплейсе в каталог Huckster. Используется для первоначального наполнения каталога товарами.

#### Технические характеристики

* **HTTP метод**: POST
* **URL** : <https://wbs.e-teleport.ru/markets/integrations/matching/items/add>
* **Ограничение**: до 200 товаров в одном запросе
* **Требуемые права**: авторизованная сессия

#### Обязательные заголовки

```
set-cookie: ss-id=ваш_session_id
```

#### Структура запроса

json

```json
{
    "marketplace": "ozon",
    "shop_id": "123456",
    "item_list": ["offer_id_1", "offer_id_2", "offer_id_3"]
}
```

#### Параметры запроса

* **marketplace** - название маркетплейса
* **shop\_id** - идентификатор магазина
* **item\_list** - массив артикулов товаров на маркетплейсе

#### Пример реализации

python

```python
import requests

url = "https://wbs.e-teleport.ru/markets/integrations/matching/items/add"
headers = {
    "set-cookie": f"ss-id={session_id}"
}
data = {
    "marketplace": "ozon",
    "shop_id": "123456",
    "item_list": [
        "offer_123",
        "offer_456",
        "offer_789"
    ]
}

response = requests.post(url, headers=headers, json=data)
```

#### Ответ сервера

json

```json
{
    "result": "OK",
    "message": "Успешно загружено"
}
```

#### Важные замечания

* Лимит на количество товаров в запросе - 200
* Следующий запрос можно отправить только после завершения обработки предыдущего
* Если артикул уже существует в каталоге, он будет пропущен
* Обработка товаров происходит асинхронно

#### Типичные ошибки

* **400 Bad Request** - неверный формат запроса
* **401 Unauthorized** - истекшая сессия
* **404 Not Found** - неверный shop\_id
* **429 Too Many Requests** - превышение лимита запросов

#### Рекомендации

* Проверяйте существование артикулов перед отправкой
* Учитывайте лимит в 200 товаров
* Реализуйте проверку статуса обработки
* Сохраняйте логи операций импорта
* Используйте корректные идентификаторы marketplace

### 10. Получение списка товаров в каталоге Huckster

#### Назначение метода

Метод позволяет получить полный список товаров, находящихся в каталоге Huckster. Используется для инвентаризации товаров и проверки их текущих параметров.

#### Технические характеристики

* **HTTP метод**: POST
* **URL**: <https://wbs.e-teleport.ru/catalog_get>
* **Требуемые права**: авторизованная сессия

#### Обязательные заголовки

```
set-cookie: ss-id=ваш_session_id
```

#### Структура запроса

json

```json
{
    "contact": "ваш_email@домен.ru",
    "limit": 0-300,
    "nom": 1,
    "fields": ["id", "uid", "name", "retail_price", "retail_action_price", "trademark"]
}
```

#### Параметры запроса

* **contact** - ваш логин в Huckster
* **limit** - количество возвращаемых записей (0-300)
* **nom** - номер запроса при пагинации
* **fields** - список полей для возврата

#### Пример реализации

python

```python
import requests

url = "https://wbs.e-teleport.ru/catalog_get"
headers = {
    "set-cookie": f"ss-id={session_id}"
}
data = {
    "contact": "info@info.ru",
    "limit": 300,
    "nom": 1,
    "fields": ["id", "uid", "name", "retail_price", "trademark"]
}

response = requests.post(url, headers=headers, json=data)
```

#### Структура ответа

json

```json
{
    "errCode": 0,
    "retval": {
        "catalog": [
            {
                "id": "уникальный_id",
                "uid": "идентификатор_товара",
                "name": "Название товара",
                "price": закупочная_цена,
                "retail_price": розничная_цена,
                "retail_action_price": цена_акции,
                "trademark": "Бренд"
            }
        ]
    }
}
```

#### Описание полей ответа

* **id** - уникальный идентификатор записи
* **uid** - идентификатор товара в системе
* **name** - название товара
* **price** - закупочная цена
* **retail\_price** - розничная цена
* **retail\_action\_price** - цена по акции
* **trademark** - бренд товара

#### Важные замечания

* **limit** определяет количество возвращаемых записей
* **nom** используется для пагинации при больших списках
* Можно выбирать конкретные поля для возврата
* При limit=300 nom принимает значения 1, 2, 3 и т.д.

#### Типичные ошибки

* **400 Bad Request** - неверные параметры запроса
* **401 Unauthorized** - истекшая сессия
* **404 Not Found** - неверный contact
* **500 Internal Server Error** - проблемы на стороне сервера

#### Рекомендации

* Используйте пагинацию при работе с большими каталогами
* Выбирайте только необходимые поля для оптимизации запросов
* Сохраняйте полученные идентификаторы для последующих операций
* Проверяйте статус ответа перед обработкой данных

### 11. Получение списка товаров для следования за конкурентами

#### Назначение метода

Метод позволяет получить информацию о товарах, настроенных на стратегию следования за конкурентами. Используется для мониторинга и управления конкурентной стратегией.

#### Технические характеристики

* **HTTP метод**: POST
* **URL**: <https://wbs.e-teleport.ru/markets/integrations/strategy/items/list>
* **Требуемые права**: авторизованная сессия

#### Обязательные заголовки

```
set-cookie: ss-id=ваш_session_id
```

#### Структура запроса

json

```json
{
    "marketplace": "ozon",
    "shop_id": "123456",
    "limit": 1000,
    "offset": 0,
    "list_mode": "rivals",
    "filter": {
        "huckster_enabled": null/false/true,
        "rivals_enabled": null/false/true
    }
}
```

#### Параметры запроса

* **marketplace** - название маркетплейса
* **shop\_id** - идентификатор магазина
* **limit** - количество возвращаемых записей
* **offset** - смещение (должно быть кратно limit)
* **list\_mode** - режим списка (rivals)
* **filter** - параметры фильтрации

#### Пример реализации

python

```python
import requests

url = "https://wbs.e-teleport.ru/markets/integrations/strategy/items/list"
headers = {
    "set-cookie": f"ss-id={session_id}"
}
data = {
    "marketplace": "ozon",
    "shop_id": "123456",
    "limit": 1000,
    "offset": 0,
    "list_mode": "rivals",
    "filter": {
        "huckster_enabled": true,
        "rivals_enabled": true
    }
}

response = requests.post(url, headers=headers, json=data)
```

#### Структура ответа

json

```json
{
    "result": {
        "cursor": {
            "limit": 1,
            "offset": 0,
            "total": 3
        },
        "item_list": [
            {
                "market_id": "20135B-123",
                "market_uid": "20135B-123",
                "huckster_uid": "20135B-123",
                "sku": "1066877770",
                "name": "Настольный футбол на ножках, детские игрушки",
                "market_price": 5953,
                "retail_price": 0,
                "stock": 0,
                "barcode": "",
                "picture": "https://wbs.e-teleport.ru/Catalog_Pics/7fd38d95fca9d99edb0803002912f47b",
                "trademark": "Toy Master",
                "huckster_enabled": true,
                "repricer_enabled": false,
                "rivals_enabled": true,
                "autoaction_enabled": false,
                "url": "https://www.ozon.ru/product/1066897170",
                "rivals": {
                    "rivals_discount_percent": 0,
                    "rivals_discount_sum": 0,
                    "rivals_min_price": 5500,
                    "rivals_max_price": 9900,
                    "rivals_card_control": true,
                    "rivals_count": 3,
                    "rivals_list": [
                        {
                            "marketplace": "ozon",
                            "rival_sku": "1658226096",
                            "rival_url": "https://www.ozon.ru/product/1658226096"
                        }
                    ]
                }
            }
        ]
    }
}
```

#### Описание полей ответа

**Основные поля объекта item\_list:**

* **market\_id** - уникальный идентификатор товара на маркетплейсе
* **market\_uid** - идентификатор товара в системе маркетплейса
* **huckster\_uid** - уникальный идентификатор товара в системе Huckster
* **sku** - артикул товара
* **name** - название товара
* **market\_price** - текущая рыночная цена
* **retail\_price** - розничная цена
* **stock** - количество товара на складе
* **barcode** - штрих-код товара
* **picture** - ссылка на изображение товара
* **trademark** - бренд товара
* **huckster\_enabled** - статус включения в Huckster
* **repricer\_enabled** - статус включения репрайсера
* **rivals\_enabled** - статус включения стратегии следования за конкурентами
* **autoaction\_enabled** - статус автоматических действий
* **url** - прямая ссылка на товар в маркетплейсе

**Вложенный объект rivals содержит:**

* **rivals\_discount\_percent** - процент скидки относительно конкурентов
* **rivals\_discount\_sum** - сумма скидки в рублях
* **rivals\_min\_price** - минимальная цена среди конкурентов
* **rivals\_max\_price** - максимальная цена среди конкурентов
* **rivals\_card\_control** - учет цен по карте
* **rivals\_count** - количество отслеживаемых конкурентов
* **rivals\_list** - список конкретных конкурентов с их параметрами:
  * **marketplace** - площадка конкурента
  * **rival\_sku** - артикул конкурента
  * **rival\_url** - ссылка на товар конкурента

#### Важные замечания

* Метод позволяет отслеживать конкурентное окружение для каждого товара
* Информация обновляется в режиме реального времени
* Можно фильтровать товары по статусу включения стратегий
* Данные о конкурентах обновляются автоматически

#### Типичные ошибки

* **400 Bad Request** - неверные параметры фильтрации
* **401 Unauthorized** - истекшая сессия
* **404 Not Found** - неверный shop\_id
* **504 Gateway Timeout** - проблемы с получением данных о конкурентах

#### Рекомендации по использованию

* Регулярно проверяйте актуальность данных о конкурентах
* Используйте фильтрацию для получения только нужных данных
* Сохраняйте историю изменений цен конкурентов
* Учитывайте, что большое количество отслеживаемых конкурентов может влиять на производительность
* Проверяйте доступность товаров у конкурентов перед принятием решений

### 12. Добавление/удаление товаров в стратегию следования за конкурентами

#### Назначение метода

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

#### Технические характеристики

* **HTTP метод**: POST
* **URL**: <https://wbs.e-teleport.ru/markets/integrations/rivals/items/set>
* **Требуемые права**: авторизованная сессия

#### Обязательные заголовки

```
set-cookie: ss-id=ваш_session_id
```

#### Структура запроса

json

```json
{
    "marketplace": "ozon",
    "shop_id": "1234567",
    "item_list": [
        {
            "huckster_uid": "2035-3-123",
            "rivals_enabled": true/false/null,
            "discount_percent": 0,
            "discount_sum": -100,
            "min_price": 2000,
            "max_price": 5000,
            "card_control": true,
            "rivals_list": [
                {
                    "marketplace": "ozon",
                    "rival_sku": "123456788909"
                },
                {
                    "marketplace": "wildberries",
                    "rival_sku": "147852"
                }
            ]
        }
    ]
}
```

#### Параметры запроса

* **marketplace** - название маркетплейса
* **shop\_id** - идентификатор магазина
* **item\_list** - список товаров для настройки
  * **huckster\_uid** - уникальный идентификатор товара
  * **rivals\_enabled** - включение/отключение стратегии (true/false/null)
  * **discount\_percent** - наценка/скидка в процентах
  * **discount\_sum** - наценка/скидка в рублях
  * **min\_price** - минимальная цена продажи
  * **max\_price** - максимальная цена продажи
  * **card\_control** - учет цен по карте
  * **rivals\_list** - список конкурентов

#### Пример реализации

python

```python
import requests

url = "https://wbs.e-teleport.ru/markets/integrations/rivals/items/set"
headers = {
    "set-cookie": f"ss-id={session_id}"
}
data = {
    "marketplace": "ozon",
    "shop_id": "1234567",
    "item_list": [
        {
            "huckster_uid": "2035-3-123",
            "rivals_enabled": True,
            "discount_percent": 0,
            "discount_sum": -100,
            "min_price": 2000,
            "max_price": 5000,
            "card_control": True,
            "rivals_list": [
                {
                    "marketplace": "ozon",
                    "rival_sku": "123456788909"
                }
            ]
        }
    ]
}

response = requests.post(url, headers=headers, json=data)
```

#### Ответ сервера

json

```json
{
    "result": [
        {
            "result": "OK",
            "item_info": {
                "huckster_uid": "2035-3-123",
                "sku": "1066977777",
                "rivals_enabled": true,
                "url": "https://www.ozon.ru/product/1066977777",
                "rivals": {
                    "rivals_discount_percent": 0,
                    "rivals_discount_sum": -100,
                    "rivals_min_price": 2000,
                    "rivals_max_price": 5000,
                    "rivals_card_control": true,
                    "rivals_count": 3,
                    "rivals_list": [
                        {
                            "marketplace": "ozon",
                            "rival_sku": "123456788909",
                            "rival_url": "https://www.ozon.ru/product/123456788909"
                        },
                        {
                            "marketplace": "ozon",
                            "rival_sku": "99998774569",
                            "rival_url": "https://www.ozon.ru/product/99998774569"
                        },
                        {
                            "marketplace": "wildberries",
                            "rival_sku": "147852",
                            "rival_url": "https://www.wildberries.ru/catalog/147852/detail.aspx"
                        }
                    ]
                }
            }
        }
    ]
}
```

#### Описание полей ответа

**Структура result:**

* **result** - статус операции (OK/error)
* **item\_info** - информация о настроенном товаре

**Основные параметры item\_info:**

* **huckster\_uid** - уникальный идентификатор товара
* **sku** - артикул товара
* **rivals\_enabled** - статус включения стратегии
* **url** - прямая ссылка на товар

**Вложенный объект rivals содержит:**

* **rivals\_discount\_percent** - процент скидки относительно конкурентов
* **rivals\_discount\_sum** - сумма скидки в рублях
* **rivals\_min\_price** - минимальная цена продажи
* **rivals\_max\_price** - максимальная цена продажи
* **rivals\_card\_control** - учет цен по карте
* **rivals\_count** - количество отслеживаемых конкурентов
* **rivals\_list** - список конкретных конкурентов

#### Важные замечания

* При отправке **null** в параметрах текущие значения сохраняются
* Можно изменять только определенные параметры, оставляя остальные без изменений
* Максимальное количество конкурентов в списке не ограничено явно
* Изменения применяются асинхронно

#### Типичные ошибки

* **400 Bad Request** - неверные параметры настройки
* **401 Unauthorized** - истекшая сессия
* **404 Not Found** - неверный shop\_id или huckster\_uid
* **422 Unprocessable Entity** - некорректные числовые значения

#### Рекомендации по использованию

* Проверяйте существование товара перед настройкой
* Используйте корректные значения для числовых параметров
* Сохраняйте текущие настройки перед внесением изменений
* Проверяйте доступность указанных конкурентов
* Учитывайте, что некоторые параметры могут быть обязательными для определенных стратегий

### 13. Получение списка моделей расчета Unit-экономики

#### Общее описание метода

Метод позволяет получить список всех моделей расчета калькулятора **Unit-экономики** для подключенных кабинетов продавца.

#### Параметры запроса

* **Метод API**: POST
* **URL**: <https://wbs.e-teleport.ru/markets/integrations/unit/set/list>
* **Необходимый заголовок**: set-cookie: ss-id=session-id
* **Тело запроса** (JSON):

json

```json
{
    "marketplace": "ozon",    // Маркетплейс (можно оставить пустым)
    "shop_id": "1234567"     // ID кабинета (можно оставить пустым)
}
```

#### Особенности использования

* Если параметры **marketplace** и/или **shop\_id** не указаны, возвращается список по всем кабинетам
* Для выполнения запроса необходимо предварительно получить идентификатор сессии

#### Структура ответа

json

```json
{
    "result": {
        "shop_info": {
            "marketplace": "",
            "shop_id": "",
            "shop": ""
        },
        "set_list": [
            {
                "marketplace": "ozon",
                "shop_id": "1234567",
                "shop": "Название магазина",
                "id": "уникальный идентификатор модели",
                "set_name": "Название модели расчета",
                "set_description": "Описание модели",
                "items_quantity": количество товаров в модели,
                "date_created": "дата создания",
                "schedulers_quantity": количество запланированных действий,
                "schedulers": []
            }
        ]
    }
}
```

#### Основные поля ответа

* **marketplace** - платформа, к которой относится модель
* **shop\_id** - идентификатор кабинета
* **id** - уникальный идентификатор модели расчета
* **set\_name** - название модели
* **items\_quantity** - количество товаров в модели
* **date\_created** - дата создания модели

#### Практическое применение

Данный метод используется для:

* Получения списка всех существующих моделей расчета
* Мониторинга количества товаров в каждой модели
* Отслеживания дат создания моделей

#### Важные замечания

* Для работы с методом необходимо иметь активные права доступа
* Ответ содержит только основную информацию о моделях
* Для получения детальной информации о товарах в модели используйте соответствующий API-метод

### 14. Получение списка товаров модели расчета Unit-экономики

#### Общее описание метода

Метод позволяет получить детальный список товаров, входящих в конкретную модель расчета калькулятора **Unit-экономики**.

#### Параметры запроса

* **Метод API**: POST
* **URL**: <https://wbs.e-teleport.ru/markets/integrations/unit/set/get>
* **Необходимый заголовок**: set-cookie: ss-id=session-id
* **Тело запроса** (JSON):

json

```json
{
    "marketplace": "ozon",                // Маркетплейс (можно оставить пустым)
    "shop_id": "1234567",                 // ID кабинета (можно оставить пустым)
    "set_id": "уникальный-id-модели",     // ID модели расчета
    "limit": 100,                         // Лимит выводимых записей (100-1000)
    "offset": 0                           // Смещение для постраничного вывода
}
```

#### Особенности использования

* Параметры **marketplace** и **shop\_id** можно не указывать - тогда данные будут по всем кабинетам
* **set\_id** является обязательным параметром
* **limit** определяет количество выводимых записей (от 100 до 1000)
* **offset** используется для постраничного просмотра данных

#### Структура ответа

json

```json
{
    "result": {
        "id": "идентификатор модели",
        "marketplace": "ozon",
        "shop_id": "1247333",
        "shop": "Название магазина",
        "set_name": "Имя модели",
        "set_description": "Описание",
        "items_quantity": количество_товаров,
        "date_created": "дата создания",
        "cursor": {
            "limit": 100,
            "offset": 0,
            "total": общее_количество
        },
        "item_list": [
            {
                "item_id": "идентификатор товара",
                "uid": "уникальный идентификатор",
                "name": "Название товара",
                "trademark": "Бренд",
                "set_price": цена_продажи,
                "price": текущая_цена_на_МП,
                "price_change_percent": процент_изменения_цены,
                "retail_price": рекомендуемая_цена,
                "cost_price": себестоимость,
                "expenses_sum": сумма_затрат,
                "expenses_percent": процент_затрат,
                "profit_sum": маржинальность_руб,
                "profit_percent": маржинальность_проц,
                "additional_expenses": доп_затраты_руб,
                "additional_expenses_percent": доп_затраты_проц,
                "returns_percent": процент_возвратов,
                "defect_percent": процент_брака,
                "detailed_expenses_comission": сумма_комиссии,
                "detailed_expenses_bank": эквайринг,
                "detailed_expenses_logistic": логистика,
                "detailed_expenses_return_logistic": обратная_логистика,
                "detailed_expenses_storage": хранение,
                "detailed_expenses_other": прочие_затраты,
                "detailed_expenses_vat": процент_НДС,
                "detailed_expenses_vat_sum": сумма_НДС,
                "profit_percent_fixed": фиксация_маржинальности
            }
        ]
    }
}
```

#### Основные поля ответа

* **item\_id** - уникальный идентификатор товара в системе
* **uid** - внутренний идентификатор товара
* **set\_price** - целевая цена продажи
* **price** - текущая цена на маркетплейсе
* **cost\_price** - себестоимость товара
* **expenses\_sum** - общая сумма затрат
* **profit\_sum** - сумма маржинальности
* **profit\_percent** - процент маржинальности

#### Практическое применение

Метод используется для:

* Анализа экономической эффективности товаров в модели
* Контроля цен и затрат по каждому товару
* Мониторинга маржинальности
* Оценки всех сопутствующих расходов

#### Важные замечания

* Для работы требуется активный идентификатор сессии
* Необходимо корректное указание **set\_id**
* При большом количестве товаров используйте пагинацию через **limit** и **offset**
* Все финансовые показатели возвращаются в валюте аккаунта

[Контакты поддержки](https://wiki.huckster.ru/sluzhba-tekhnicheskoi-podderzhki)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://resolve-wiki.huckster.ru/prochie-instrukcii/rukovodstvo-polzovatelya-po-rabote-s-api-repraisera-huckster.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
