SelSup Developers

Public API · API Reference

Hypothesis testing

Endpoints for Hypothesis testing, including exact routes, parameters, request bodies, and expandable response schemas.

5 endpoints/api/hypothesisStableMachine-readable description ↗
{ }

This page is backed by an editable standalone contract. Validate write operations with test data before production use.

/api/hypothesis

Ready-to-use workflows

Ready-to-use workflows

01

Start using Hypothesis testing

Use a dedicated API token and validate read operations with test data first.

  1. Keep the token server-side and send it in the Authorization header.
  2. Check required parameters and expand the request or response schema.
  3. Handle the HTTP status and the stable error field in application errors.

Data model

Data structures

Models are listed once here and can also be expanded directly from the endpoints that use them.

Hypothesis14 fields
idinteger · int32

Id.

namestring

Name.

previousStartDatestring · date-time

Previous Start Date.

startDatestring · date-time

Start Date.

endDatestring · date-time

End Date.

modelIdinteger · int64

Model Id.

modelArticlestring

Model Article.

viewIdinteger · int64

View Id.

productIdinteger · int64

Product Id.

organizationIdinteger · int64

Organization Id.

createdDatestring · date-time

Created Date.

createdUserstring

Created User.

servicestring

Service.

successStatusstring

Success Status.

FindResponseHypothesis1 fields
rowsHypothesis[]

Rows.

Error contract

How application errors are returned

The error code is identical in every locale, while the user-facing message is translated by the server. Build application logic around error and use localMessage for display only.

error

Stable machine-readable code for integration logic.

localMessage

Display-ready message in the API token user's language.

params

Values interpolated by the server into the localized message template.

localMessage uses the lang field of the user who owns the API token. The documentation language and Accept-Language header do not change it; Russian is used when the user has no language configured.

RUUser locale is ru
{
  "error": "error_brand_already_exists",
  "localMessage": "Бренд Base уже существует",
  "params": {
    "name": "Base"
  }
}
ENUser locale is en
{
  "error": "error_brand_already_exists",
  "localMessage": "Brand Base already exists",
  "params": {
    "name": "Base"
  }
}

Endpoints

Endpoints

POST

Hypothesis

/api/hypothesis/
Token with write access

Hypothesis using POST /api/hypothesis/.

Request body

application/json
Object fieldsHypothesis
FieldTypeRequiredDescription
id integer · int32 No Id.
name string No Name.
previousStartDate string · date-time No Previous Start Date.
startDate string · date-time No Start Date.
endDate string · date-time No End Date.
modelId integer · int64 No Model Id.
modelArticle string No Model Article.
viewId integer · int64 No View Id.
productId integer · int64 No Product Id.
organizationId integer · int64 No Organization Id.
createdDate string · date-time No Created Date.
createdUser string No Created User.
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 No Service.
successStatus stringNONE, SUCCESSFUL, UNSUCCESSFUL No Success Status.
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
}'

Success response

200
Object fields Hypothesis
FieldTypeRequiredDescription
id integer · int32 No Id.
name string No Name.
previousStartDate string · date-time No Previous Start Date.
startDate string · date-time No Start Date.
endDate string · date-time No End Date.
modelId integer · int64 No Model Id.
modelArticle string No Model Article.
viewId integer · int64 No View Id.
productId integer · int64 No Product Id.
organizationId integer · int64 No Organization Id.
createdDate string · date-time No Created Date.
createdUser string No Created User.
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 No Service.
successStatus stringNONE, SUCCESSFUL, UNSUCCESSFUL No Success Status.
{
  "id": 1001,
  "name": "Example",
  "previousStartDate": "2026-01-15T12:00:00Z",
  "startDate": "2026-01-15T12:00:00Z",
  "endDate": "2026-01-15T12:00:00Z",
  "modelId": 1001
}
Errors8

Application errors are normally returned as JSON with error, localMessage, and params. Branch on error; localized text may change. How application errors are returned ↑

401auth_required
Authentication required

Authorization is missing, empty, or contains an invalid token.

400error_access_denied
Insufficient permissions

The token exists, but its role cannot perform this operation.

500error_unknown
Unexpected error

Internal failure. Save the request time and contact support; do not blindly retry a mutation.

400error_empty_end_date
End date not specified

Endpoint-specific error. Use the stable error_empty_end_date code in application logic; localMessage contains the translation shown above.

400error_empty_name
Title not specified

Endpoint-specific error. Use the stable error_empty_name code in application logic; localMessage contains the translation shown above.

400error_empty_start_date
Start date not specified

Endpoint-specific error. Use the stable error_empty_start_date code in application logic; localMessage contains the translation shown above.

400error_end_less_then_start_date
End date must be greater than start date

Endpoint-specific error. Use the stable error_end_less_then_start_date code in application logic; localMessage contains the translation shown above.

400error_no_client
The client was not found or has been deleted. Write to support

Endpoint-specific error. Use the stable error_no_client code in application logic; localMessage contains the translation shown above.

GET

Id

/api/hypothesis/{id}
Token with read access

Id using GET /api/hypothesis/{id}.

Path parameters

FieldTypeRequiredDescription
id integer · int32 Yes Id.
curl --request GET 'https://api.selsup.ru/api/hypothesis/1001' \
  --header 'Authorization: YOUR_API_TOKEN'

Success response

200
Object fields Hypothesis
FieldTypeRequiredDescription
id integer · int32 No Id.
name string No Name.
previousStartDate string · date-time No Previous Start Date.
startDate string · date-time No Start Date.
endDate string · date-time No End Date.
modelId integer · int64 No Model Id.
modelArticle string No Model Article.
viewId integer · int64 No View Id.
productId integer · int64 No Product Id.
organizationId integer · int64 No Organization Id.
createdDate string · date-time No Created Date.
createdUser string No Created User.
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 No Service.
successStatus stringNONE, SUCCESSFUL, UNSUCCESSFUL No Success Status.
{
  "id": 1001,
  "name": "Example",
  "previousStartDate": "2026-01-15T12:00:00Z",
  "startDate": "2026-01-15T12:00:00Z",
  "endDate": "2026-01-15T12:00:00Z",
  "modelId": 1001
}
Errors4

Application errors are normally returned as JSON with error, localMessage, and params. Branch on error; localized text may change. How application errors are returned ↑

401auth_required
Authentication required

Authorization is missing, empty, or contains an invalid token.

400error_access_denied
Insufficient permissions

The token exists, but its role cannot perform this operation.

500error_unknown
Unexpected error

Internal failure. Save the request time and contact support; do not blindly retry a mutation.

400error_no_client
The client was not found or has been deleted. Write to support

Endpoint-specific error. Use the stable error_no_client code in application logic; localMessage contains the translation shown above.

PATCH

Patch Hypothesis

/api/hypothesis/{id}
Token with write access

Patch Hypothesis using PATCH /api/hypothesis/{id}.

Request body

application/json
Object fieldsHypothesis
FieldTypeRequiredDescription
id integer · int32 No Id.
name string No Name.
previousStartDate string · date-time No Previous Start Date.
startDate string · date-time No Start Date.
endDate string · date-time No End Date.
modelId integer · int64 No Model Id.
modelArticle string No Model Article.
viewId integer · int64 No View Id.
productId integer · int64 No Product Id.
organizationId integer · int64 No Organization Id.
createdDate string · date-time No Created Date.
createdUser string No Created User.
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 No Service.
successStatus stringNONE, SUCCESSFUL, UNSUCCESSFUL No Success Status.
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
}'

Success response

200
Object fields Hypothesis
FieldTypeRequiredDescription
id integer · int32 No Id.
name string No Name.
previousStartDate string · date-time No Previous Start Date.
startDate string · date-time No Start Date.
endDate string · date-time No End Date.
modelId integer · int64 No Model Id.
modelArticle string No Model Article.
viewId integer · int64 No View Id.
productId integer · int64 No Product Id.
organizationId integer · int64 No Organization Id.
createdDate string · date-time No Created Date.
createdUser string No Created User.
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 No Service.
successStatus stringNONE, SUCCESSFUL, UNSUCCESSFUL No Success Status.
{
  "id": 1001,
  "name": "Example",
  "previousStartDate": "2026-01-15T12:00:00Z",
  "startDate": "2026-01-15T12:00:00Z",
  "endDate": "2026-01-15T12:00:00Z",
  "modelId": 1001
}
Errors9

Application errors are normally returned as JSON with error, localMessage, and params. Branch on error; localized text may change. How application errors are returned ↑

401auth_required
Authentication required

Authorization is missing, empty, or contains an invalid token.

400error_access_denied
Insufficient permissions

The token exists, but its role cannot perform this operation.

500error_unknown
Unexpected error

Internal failure. Save the request time and contact support; do not blindly retry a mutation.

400error_empty_end_date
End date not specified

Endpoint-specific error. Use the stable error_empty_end_date code in application logic; localMessage contains the translation shown above.

400error_empty_id
Identifier not specified

Endpoint-specific error. Use the stable error_empty_id code in application logic; localMessage contains the translation shown above.

400error_empty_name
Title not specified

Endpoint-specific error. Use the stable error_empty_name code in application logic; localMessage contains the translation shown above.

400error_empty_start_date
Start date not specified

Endpoint-specific error. Use the stable error_empty_start_date code in application logic; localMessage contains the translation shown above.

400error_end_less_then_start_date
End date must be greater than start date

Endpoint-specific error. Use the stable error_end_less_then_start_date code in application logic; localMessage contains the translation shown above.

400error_no_client
The client was not found or has been deleted. Write to support

Endpoint-specific error. Use the stable error_no_client code in application logic; localMessage contains the translation shown above.

DELETE

Delete Hypothesis

/api/hypothesis/{id}
Token with write access

Delete Hypothesis using DELETE /api/hypothesis/{id}.

Path parameters

FieldTypeRequiredDescription
id integer · int32 Yes Id.
curl --request DELETE 'https://api.selsup.ru/api/hypothesis/1001' \
  --header 'Authorization: YOUR_API_TOKEN'

Success response

200

The response has no body.

Errors4

Application errors are normally returned as JSON with error, localMessage, and params. Branch on error; localized text may change. How application errors are returned ↑

401auth_required
Authentication required

Authorization is missing, empty, or contains an invalid token.

400error_access_denied
Insufficient permissions

The token exists, but its role cannot perform this operation.

500error_unknown
Unexpected error

Internal failure. Save the request time and contact support; do not blindly retry a mutation.

400error_no_client
The client was not found or has been deleted. Write to support

Endpoint-specific error. Use the stable error_no_client code in application logic; localMessage contains the translation shown above.

GET

Find

/api/hypothesis/find
Token with read access

Find using GET /api/hypothesis/find.

Query parameters

FieldTypeRequiredDescription
query string No Query.
modelId integer · int64 No Model 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 No Service.
endDateFrom string · date-time No End Date From.
endDateTo string · date-time No End Date To.
limit integer · int32 No Limit.
page integer · int32 No Page.
count boolean No Count.
sortBy stringID, NAME, CREATEDDATE, CREATEDUSER, STARTDATE, ENDDATE, PREVIOUSSTARTDATE, SUCCESSSTATUS No Sort By.
ascending boolean No Ascending.
curl --request GET 'https://api.selsup.ru/api/hypothesis/find?limit=50&page=1' \
  --header 'Authorization: YOUR_API_TOKEN'

Success response

200
Object fields FindResponseHypothesis
FieldTypeRequiredDescription
rows Hypothesis[] No Rows.
Array item structure Hypothesis
FieldTypeRequiredDescription
id integer · int32 No Id.
name string No Name.
previousStartDate string · date-time No Previous Start Date.
startDate string · date-time No Start Date.
endDate string · date-time No End Date.
modelId integer · int64 No Model Id.
modelArticle string No Model Article.
viewId integer · int64 No View Id.
productId integer · int64 No Product Id.
organizationId integer · int64 No Organization Id.
createdDate string · date-time No Created Date.
createdUser string No Created User.
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 No Service.
successStatus stringNONE, SUCCESSFUL, UNSUCCESSFUL No Success Status.
{
  "rows": "string"
}
Errors4

Application errors are normally returned as JSON with error, localMessage, and params. Branch on error; localized text may change. How application errors are returned ↑

401auth_required
Authentication required

Authorization is missing, empty, or contains an invalid token.

400error_access_denied
Insufficient permissions

The token exists, but its role cannot perform this operation.

500error_unknown
Unexpected error

Internal failure. Save the request time and contact support; do not blindly retry a mutation.

400error_no_client
The client was not found or has been deleted. Write to support

Endpoint-specific error. Use the stable error_no_client code in application logic; localMessage contains the translation shown above.

Authorization

Token for test requests

The token stays in this browser's localStorage and is sent only in the Authorization header of requests to api.selsup.ru.

Try it

Real request parameters

Live API response

Send a request to see the SelSup response.