SelSup Developers

Публичный API · API Reference

Конкуренты

Методы раздела «Конкуренты»: точные маршруты, параметры, тела запросов и раскрываемые структуры ответов.

4 методов/api/competitorСтабильныйМашинное описание ↗
{ }

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

/api/competitor

Готовые сценарии

Готовые сценарии

01

Начать работу с разделом «Конкуренты»

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

  1. Сохраните токен на серверной стороне и передавайте его в заголовке Authorization.
  2. Проверьте обязательные параметры и раскройте структуру запроса или ответа.
  3. Обрабатывайте HTTP-статус и стабильное поле error в прикладных ошибках.

Модель данных

Структуры данных раздела

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

Competitor6 полей
idinteger · int64

ID конкурента

read-only
modelIdinteger · int64

ID модели, для которой указывается конкурент

servicestring

Маркетплейс конкурента

Обязательно
urlstring

URL карточки конкурента на маркетплейсе

Обязательно
serviceIdstring

ID карточки конкурента на сайте маркетплейса

clientIdinteger · int64

ID клиента

read-only

Контракт ошибок

Как API возвращает прикладные ошибки

Код ошибки одинаков для всех локалей, а текст для пользователя переводится сервером. Поэтому бизнес-логику стройте по error, а localMessage используйте только для отображения.

error

Стабильный машинный код ошибки для логики интеграции.

localMessage

Готовое сообщение на языке пользователя API-токена.

params

Значения

Язык localMessage определяется полем lang пользователя, которому принадлежит API-токен. Язык страницы документации и заголовок Accept-Language его не переключают; если язык пользователя не указан, используется русский.

RUПользователь с локалью ru
{
  "error": "error_brand_already_exists",
  "localMessage": "Бренд Base уже существует",
  "params": {
    "name": "Base"
  }
}
ENПользователь с локалью en
{
  "error": "error_brand_already_exists",
  "localMessage": "Brand Base already exists",
  "params": {
    "name": "Base"
  }
}

Методы

Методы

PUT

Редактировать карточку конкурента

/api/competitor/{competitorId}
Токен с правами записи

Редактировать карточку конкурента по его id

Параметры пути

ПолеТипОбязательноОписание
competitorId integer · int64 Да Поле competitorId.

Тело запроса

application/json
Поля объектаCompetitor
ПолеТипОбязательноОписание
id integer · int64 Нет ID конкурента
modelId integer · int64 Нет ID модели, для которой указывается конкурент
service stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC Да Маркетплейс конкурента
url string Да URL карточки конкурента на маркетплейсе
serviceId string Нет ID карточки конкурента на сайте маркетплейса
clientId integer · int64 Нет ID клиента
curl --request PUT 'https://api.selsup.ru/api/competitor/1001' \
  --header 'Authorization: YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "service": "NONE",
  "url": "https://example.com",
  "id": 1001,
  "modelId": 1001,
  "serviceId": "string",
  "clientId": 1001
}'

Успешный ответ

200

Тело ответа пустое.

Ошибки8

Прикладные ошибки обычно возвращаются как JSON с полями error, localMessage и params. Ориентируйтесь на error; локализованный текст может меняться. Как API возвращает прикладные ошибки ↑

401auth_required
Требуется авторизация

Заголовок Authorization отсутствует, пуст или содержит недействительный токен.

400error_access_denied
Недостаточно прав

Токен существует, но его роль не позволяет выполнить операцию.

500error_unknown
Непредвиденная ошибка

Внутренняя ошибка. Сохраните время запроса и обратитесь в поддержку, не повторяя мутацию вслепую.

400error_competitor_id_required
Требуется id конкурента

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_competitor_id_required; localMessage содержит приведённый выше перевод.

400error_competitor_required
Конкурент обязателен

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_competitor_required; localMessage содержит приведённый выше перевод.

400error_competitor_service_required
Сервис конкурента обязателен

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_competitor_service_required; localMessage содержит приведённый выше перевод.

400error_competitor_url_required
Ссылка конкурента обязательна

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_competitor_url_required; localMessage содержит приведённый выше перевод.

400error_no_client
Клиент не найден или был удален. Напишите в поддержку

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.

DELETE

Удалить карточку конкурента

/api/competitor/{competitorId}
Токен с правами записи

Удалить карточку конкурента по его id

Параметры пути

ПолеТипОбязательноОписание
competitorId integer · int64 Да Поле competitorId.
curl --request DELETE 'https://api.selsup.ru/api/competitor/1001' \
  --header 'Authorization: YOUR_API_TOKEN'

Успешный ответ

200

Тело ответа пустое.

Ошибки5

Прикладные ошибки обычно возвращаются как JSON с полями error, localMessage и params. Ориентируйтесь на error; локализованный текст может меняться. Как API возвращает прикладные ошибки ↑

401auth_required
Требуется авторизация

Заголовок Authorization отсутствует, пуст или содержит недействительный токен.

400error_access_denied
Недостаточно прав

Токен существует, но его роль не позволяет выполнить операцию.

500error_unknown
Непредвиденная ошибка

Внутренняя ошибка. Сохраните время запроса и обратитесь в поддержку, не повторяя мутацию вслепую.

400error_competitor_id_required
Требуется id конкурента

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_competitor_id_required; localMessage содержит приведённый выше перевод.

400error_no_client
Клиент не найден или был удален. Напишите в поддержку

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.

GET

Получить список всех конкурентов для модели

/api/competitor/{modelId}
Токен с правами чтения

Получить список всех конкурентов для модели по ее id

Параметры пути

ПолеТипОбязательноОписание
modelId integer · int64 Да Поле modelId.
curl --request GET 'https://api.selsup.ru/api/competitor/1001' \
  --header 'Authorization: YOUR_API_TOKEN'

Успешный ответ

200
Структура элемента массива Competitor[]
ПолеТипОбязательноОписание
id integer · int64 Нет ID конкурента
modelId integer · int64 Нет ID модели, для которой указывается конкурент
service stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC Да Маркетплейс конкурента
url string Да URL карточки конкурента на маркетплейсе
serviceId string Нет ID карточки конкурента на сайте маркетплейса
clientId integer · int64 Нет ID клиента
[
  "string"
]
Ошибки5

Прикладные ошибки обычно возвращаются как JSON с полями error, localMessage и params. Ориентируйтесь на error; локализованный текст может меняться. Как API возвращает прикладные ошибки ↑

401auth_required
Требуется авторизация

Заголовок Authorization отсутствует, пуст или содержит недействительный токен.

400error_access_denied
Недостаточно прав

Токен существует, но его роль не позволяет выполнить операцию.

500error_unknown
Непредвиденная ошибка

Внутренняя ошибка. Сохраните время запроса и обратитесь в поддержку, не повторяя мутацию вслепую.

400error_model_id_required
Требуется id модели

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_model_id_required; localMessage содержит приведённый выше перевод.

400error_no_client
Клиент не найден или был удален. Напишите в поддержку

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.

POST

Создать связь с карточкой конкурента

/api/competitor/{modelId}
Токен с правами записи

Создать модель конкурента, связывая его с карточкой конкурента

Параметры пути

ПолеТипОбязательноОписание
modelId integer · int64 Да Поле modelId.

Тело запроса

application/json
Поля объектаCompetitor
ПолеТипОбязательноОписание
id integer · int64 Нет ID конкурента
modelId integer · int64 Нет ID модели, для которой указывается конкурент
service stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC Да Маркетплейс конкурента
url string Да URL карточки конкурента на маркетплейсе
serviceId string Нет ID карточки конкурента на сайте маркетплейса
clientId integer · int64 Нет ID клиента
curl --request POST 'https://api.selsup.ru/api/competitor/1001' \
  --header 'Authorization: YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "service": "NONE",
  "url": "https://example.com",
  "id": 1001,
  "modelId": 1001,
  "serviceId": "string",
  "clientId": 1001
}'

Успешный ответ

200
Поля объекта Competitor
ПолеТипОбязательноОписание
id integer · int64 Нет ID конкурента
modelId integer · int64 Нет ID модели, для которой указывается конкурент
service stringNONE, WILDBERRIES, OZON, YANDEX_MARKET, FAMILIYA, NATIONAL_CATALOG, ALIEXPRESS, OTHER, MOY_SKLAD, SBER_MEGA_MARKET, CISLINK, ONE_C, AVITO, LEROY_MERLIN, DETMIR, KAZAN_EXPRESS, EVOTOR, WEBASYST, AMAZON, EBAY, SIMALAND, INSALES, LAMODA, OZON_PERFORMANCE, WALMART, GOOGLE, YANDEX_DISC, EMAIL, WOOCOMMERCE, MAGNIT, OPENCART, M_VIDEO, TAKEALOT, UZUM, SHOPIFY, MAKRO, YANDEX_KIT, BOB_SHOP, KASPI, DIADOC Да Маркетплейс конкурента
url string Да URL карточки конкурента на маркетплейсе
serviceId string Нет ID карточки конкурента на сайте маркетплейса
clientId integer · int64 Нет ID клиента
{
  "service": "NONE",
  "url": "https://example.com",
  "id": 1001,
  "modelId": 1001,
  "serviceId": "string",
  "clientId": 1001
}
Ошибки7

Прикладные ошибки обычно возвращаются как JSON с полями error, localMessage и params. Ориентируйтесь на error; локализованный текст может меняться. Как API возвращает прикладные ошибки ↑

401auth_required
Требуется авторизация

Заголовок Authorization отсутствует, пуст или содержит недействительный токен.

400error_access_denied
Недостаточно прав

Токен существует, но его роль не позволяет выполнить операцию.

500error_unknown
Непредвиденная ошибка

Внутренняя ошибка. Сохраните время запроса и обратитесь в поддержку, не повторяя мутацию вслепую.

400error_competitor_required
Конкурент обязателен

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_competitor_required; localMessage содержит приведённый выше перевод.

400error_competitor_service_required
Сервис конкурента обязателен

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_competitor_service_required; localMessage содержит приведённый выше перевод.

400error_competitor_url_required
Ссылка конкурента обязательна

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_competitor_url_required; localMessage содержит приведённый выше перевод.

400error_no_client
Клиент не найден или был удален. Напишите в поддержку

Персональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.

Authorization

Токен для тестовых запросов

Токен хранится только в localStorage этого браузера и отправляется исключительно в заголовке Authorization запросов к api.selsup.ru.

Попробовать

Параметры реального запроса

Реальный ответ API

Выполните запрос, чтобы увидеть ответ SelSup.