SelSup Developers

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

Тестирование гипотез

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

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

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

/api/hypothesis

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

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

01

Начать работу с разделом «Тестирование гипотез»

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

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

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

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

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

Hypothesis14 полей
idinteger · int32

Поле id.

namestring

Название гипотезы

previousStartDatestring · date-time

Начало предыдущего периода для сравнения

startDatestring · date-time

Дата начала гипотезы

endDatestring · date-time

Дата окончания гипотезы

modelIdinteger · int64

Модель, в которой создана гипотеза

modelArticlestring

Артикул модели, в которой создана гипотеза

viewIdinteger · int64

Идентификатор цвета

productIdinteger · int64

Идентификатор товара

organizationIdinteger · int64

Идентификатор организации

createdDatestring · date-time

Дата создания

createdUserstring

Логин пользователя, создавшего гипотезу

servicestring

Маркетплейс, на котором проверяем гипотезу

successStatusstring

Статус

FindResponseHypothesis1 полей
rowsHypothesis[]

Строки с результатом поиска

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

Как 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"
  }
}

Методы

Методы

POST

Создать гипотезу

/api/hypothesis/
Токен с правами записи

Позволяет создать новую гипотезу

Тело запроса

application/json
Поля объектаHypothesis
ПолеТипОбязательноОписание
id integer · int32 Нет Поле id.
name string Нет Название гипотезы
previousStartDate string · date-time Нет Начало предыдущего периода для сравнения
startDate string · date-time Нет Дата начала гипотезы
endDate string · date-time Нет Дата окончания гипотезы
modelId integer · int64 Нет Модель, в которой создана гипотеза
modelArticle string Нет Артикул модели, в которой создана гипотеза
viewId integer · int64 Нет Идентификатор цвета
productId integer · int64 Нет Идентификатор товара
organizationId integer · int64 Нет Идентификатор организации
createdDate string · date-time Нет Дата создания
createdUser string Нет Логин пользователя, создавшего гипотезу
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 Нет Маркетплейс, на котором проверяем гипотезу
successStatus stringNONE, SUCCESSFUL, UNSUCCESSFUL Нет Статус
curl --request POST 'https://api.selsup.ru/api/hypothesis/' \
  --header 'Authorization: YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "id": 1001,
  "name": "Example",
  "previousStartDate": "2026-01-15T12:00:00Z",
  "startDate": "2026-01-15T12:00:00Z",
  "endDate": "2026-01-15T12:00:00Z",
  "modelId": 1001
}'

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

200
Поля объекта Hypothesis
ПолеТипОбязательноОписание
id integer · int32 Нет Поле id.
name string Нет Название гипотезы
previousStartDate string · date-time Нет Начало предыдущего периода для сравнения
startDate string · date-time Нет Дата начала гипотезы
endDate string · date-time Нет Дата окончания гипотезы
modelId integer · int64 Нет Модель, в которой создана гипотеза
modelArticle string Нет Артикул модели, в которой создана гипотеза
viewId integer · int64 Нет Идентификатор цвета
productId integer · int64 Нет Идентификатор товара
organizationId integer · int64 Нет Идентификатор организации
createdDate string · date-time Нет Дата создания
createdUser string Нет Логин пользователя, создавшего гипотезу
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 Нет Маркетплейс, на котором проверяем гипотезу
successStatus stringNONE, SUCCESSFUL, UNSUCCESSFUL Нет Статус
{
  "id": 1001,
  "name": "Example",
  "previousStartDate": "2026-01-15T12:00:00Z",
  "startDate": "2026-01-15T12:00:00Z",
  "endDate": "2026-01-15T12:00:00Z",
  "modelId": 1001
}
Ошибки8

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

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

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

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

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

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

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

400error_empty_end_date
Не указана дата окончания

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

400error_empty_name
Не указано название

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

400error_empty_start_date
Не указана дата начала

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

400error_end_less_then_start_date
Дата окончания должна быть больше даты начала

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

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

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

GET

Получить гипотезу

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

Позволяет получить гипотезу по ID

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

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

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

200
Поля объекта Hypothesis
ПолеТипОбязательноОписание
id integer · int32 Нет Поле id.
name string Нет Название гипотезы
previousStartDate string · date-time Нет Начало предыдущего периода для сравнения
startDate string · date-time Нет Дата начала гипотезы
endDate string · date-time Нет Дата окончания гипотезы
modelId integer · int64 Нет Модель, в которой создана гипотеза
modelArticle string Нет Артикул модели, в которой создана гипотеза
viewId integer · int64 Нет Идентификатор цвета
productId integer · int64 Нет Идентификатор товара
organizationId integer · int64 Нет Идентификатор организации
createdDate string · date-time Нет Дата создания
createdUser string Нет Логин пользователя, создавшего гипотезу
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 Нет Маркетплейс, на котором проверяем гипотезу
successStatus stringNONE, SUCCESSFUL, UNSUCCESSFUL Нет Статус
{
  "id": 1001,
  "name": "Example",
  "previousStartDate": "2026-01-15T12:00:00Z",
  "startDate": "2026-01-15T12:00:00Z",
  "endDate": "2026-01-15T12:00:00Z",
  "modelId": 1001
}
Ошибки4

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

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

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

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

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

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

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

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

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

PATCH

Изменить гипотезу

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

Позволяет изменить гипотезу

Тело запроса

application/json
Поля объектаHypothesis
ПолеТипОбязательноОписание
id integer · int32 Нет Поле id.
name string Нет Название гипотезы
previousStartDate string · date-time Нет Начало предыдущего периода для сравнения
startDate string · date-time Нет Дата начала гипотезы
endDate string · date-time Нет Дата окончания гипотезы
modelId integer · int64 Нет Модель, в которой создана гипотеза
modelArticle string Нет Артикул модели, в которой создана гипотеза
viewId integer · int64 Нет Идентификатор цвета
productId integer · int64 Нет Идентификатор товара
organizationId integer · int64 Нет Идентификатор организации
createdDate string · date-time Нет Дата создания
createdUser string Нет Логин пользователя, создавшего гипотезу
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 Нет Маркетплейс, на котором проверяем гипотезу
successStatus stringNONE, SUCCESSFUL, UNSUCCESSFUL Нет Статус
curl --request PATCH 'https://api.selsup.ru/api/hypothesis/%7Bid%7D' \
  --header 'Authorization: YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "id": 1001,
  "name": "Example",
  "previousStartDate": "2026-01-15T12:00:00Z",
  "startDate": "2026-01-15T12:00:00Z",
  "endDate": "2026-01-15T12:00:00Z",
  "modelId": 1001
}'

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

200
Поля объекта Hypothesis
ПолеТипОбязательноОписание
id integer · int32 Нет Поле id.
name string Нет Название гипотезы
previousStartDate string · date-time Нет Начало предыдущего периода для сравнения
startDate string · date-time Нет Дата начала гипотезы
endDate string · date-time Нет Дата окончания гипотезы
modelId integer · int64 Нет Модель, в которой создана гипотеза
modelArticle string Нет Артикул модели, в которой создана гипотеза
viewId integer · int64 Нет Идентификатор цвета
productId integer · int64 Нет Идентификатор товара
organizationId integer · int64 Нет Идентификатор организации
createdDate string · date-time Нет Дата создания
createdUser string Нет Логин пользователя, создавшего гипотезу
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 Нет Маркетплейс, на котором проверяем гипотезу
successStatus stringNONE, SUCCESSFUL, UNSUCCESSFUL Нет Статус
{
  "id": 1001,
  "name": "Example",
  "previousStartDate": "2026-01-15T12:00:00Z",
  "startDate": "2026-01-15T12:00:00Z",
  "endDate": "2026-01-15T12:00:00Z",
  "modelId": 1001
}
Ошибки9

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

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

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

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

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

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

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

400error_empty_end_date
Не указана дата окончания

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

400error_empty_id
Не указан идентификатор

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

400error_empty_name
Не указано название

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

400error_empty_start_date
Не указана дата начала

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

400error_end_less_then_start_date
Дата окончания должна быть больше даты начала

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

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

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

DELETE

Удалить гипотезу

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

Позволяет удалить гипотезу

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

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

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

200

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

Ошибки4

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

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

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

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

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

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

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

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

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

GET

Поиск гипотез

/api/hypothesis/find
Токен с правами чтения

Позволяет получить список гипотез

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

ПолеТипОбязательноОписание
query string Нет Поле query.
modelId integer · int64 Нет Поле modelId.
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 Нет Сервис
endDateFrom string · date-time Нет Поле endDateFrom.
endDateTo string · date-time Нет Поле endDateTo.
limit integer · int32 Нет Ограничение на количество записей. Максимальное значение - 500
page integer · int32 Нет Номер страницы начиная с 1
count boolean Нет Возвратить в ответе общее количество записей
sortBy stringID, NAME, CREATEDDATE, CREATEDUSER, STARTDATE, ENDDATE, PREVIOUSSTARTDATE, SUCCESSSTATUS Нет Поле для сортировки
ascending boolean Нет Порядок сортировки - по возрастанию?. Работает только при получении списка.
curl --request GET 'https://api.selsup.ru/api/hypothesis/find?limit=50&page=1' \
  --header 'Authorization: YOUR_API_TOKEN'

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

200
Поля объекта FindResponseHypothesis
ПолеТипОбязательноОписание
rows Hypothesis[] Нет Строки с результатом поиска
Структура элемента массива Hypothesis
ПолеТипОбязательноОписание
id integer · int32 Нет Поле id.
name string Нет Название гипотезы
previousStartDate string · date-time Нет Начало предыдущего периода для сравнения
startDate string · date-time Нет Дата начала гипотезы
endDate string · date-time Нет Дата окончания гипотезы
modelId integer · int64 Нет Модель, в которой создана гипотеза
modelArticle string Нет Артикул модели, в которой создана гипотеза
viewId integer · int64 Нет Идентификатор цвета
productId integer · int64 Нет Идентификатор товара
organizationId integer · int64 Нет Идентификатор организации
createdDate string · date-time Нет Дата создания
createdUser string Нет Логин пользователя, создавшего гипотезу
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 Нет Маркетплейс, на котором проверяем гипотезу
successStatus stringNONE, SUCCESSFUL, UNSUCCESSFUL Нет Статус
{
  "rows": "string"
}
Ошибки4

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

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

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

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

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

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

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

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

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

Authorization

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

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

Попробовать

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

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

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