SelSup Developers

Public API · API Reference

Product tags

Endpoints for Product tags, including exact routes, parameters, request bodies, and expandable response schemas.

9 endpoints/api/tagStableMachine-readable description ↗
{ }

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

/api/tag

Ready-to-use workflows

Ready-to-use workflows

01

Start using Product tags

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.

ProductTag3 fields
idinteger · int64

Id.

read-only
namestring

Name.

Required
clientIdinteger · int64

Client Id.

read-only
FindResponseProductTag1 fields
rowsProductTag[]

Rows.

FindResponseProductTagInfo1 fields
rowsProductTagInfo[]

Rows.

ProductTagInfo2 fields
productIdinteger · int64

Product Id.

productTagsProductTag[]

Product Tags.

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

PUT

Update Tag

/api/tag/{tagId}
Token with write access

Update Tag using PUT /api/tag/{tagId}.

Path parameters

FieldTypeRequiredDescription
tagId integer · int64 Yes Tag Id.

Request body

application/json
Object fieldsProductTag
FieldTypeRequiredDescription
id integer · int64 No Id.
name string Yes Name.
clientId integer · int64 No Client Id.
curl --request PUT 'https://api.selsup.ru/api/tag/1001' \
  --header 'Authorization: YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "Example",
  "id": 1001,
  "clientId": 1001
}'

Success response

200
Object fields ProductTag
FieldTypeRequiredDescription
id integer · int64 No Id.
name string Yes Name.
clientId integer · int64 No Client Id.
{
  "name": "Example",
  "id": 1001,
  "clientId": 1001
}
Errors7

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.

400error_tag_id_and_name_required
Tag id and name are required

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

400error_tag_id_required
Tag id is required

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

400error_tag_update_failed
Failed to update tag with id: {0}

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

DELETE

Update Tag 1

/api/tag/{tagId}
Token with write access

Update Tag 1 using DELETE /api/tag/{tagId}.

Path parameters

FieldTypeRequiredDescription
tagId integer · int64 Yes Tag Id.
curl --request DELETE 'https://api.selsup.ru/api/tag/1001' \
  --header 'Authorization: YOUR_API_TOKEN'

Success response

200

The response has no body.

Errors3

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.

PUT

Bind Tag To Product

/api/tag/product/{tagId}/{productId}
Token with write access

Bind Tag To Product using PUT /api/tag/product/{tagId}/{productId}.

Path parameters

FieldTypeRequiredDescription
tagId integer · int64 Yes Tag Id.
productId integer · int64 Yes Product Id.
curl --request PUT 'https://api.selsup.ru/api/tag/product/1001/1001' \
  --header 'Authorization: YOUR_API_TOKEN'

Success response

200

The response has no body.

Errors6

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_duplicate_tag_association
Tag is already associated with the product

Endpoint-specific error. Use the stable error_duplicate_tag_association 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.

400error_tag_and_product_id_required
tag and product ID required

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

DELETE

Un Bind Tag To Product

/api/tag/product/{tagId}/{productId}
Token with write access

Un Bind Tag To Product using DELETE /api/tag/product/{tagId}/{productId}.

Path parameters

FieldTypeRequiredDescription
tagId integer · int64 Yes Tag Id.
productId integer · int64 Yes Product Id.
curl --request DELETE 'https://api.selsup.ru/api/tag/product/1001/1001' \
  --header 'Authorization: YOUR_API_TOKEN'

Success response

200

The response has no body.

Errors5

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.

400error_tag_and_model_id_required
Tag id and model id are required

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

PUT

Bind Tag To Model

/api/tag/model/{tagId}/{modelId}
Token with write access

Bind Tag To Model using PUT /api/tag/model/{tagId}/{modelId}.

Path parameters

FieldTypeRequiredDescription
tagId integer · int64 Yes Tag Id.
modelId integer · int64 Yes Model Id.
curl --request PUT 'https://api.selsup.ru/api/tag/model/1001/1001' \
  --header 'Authorization: YOUR_API_TOKEN'

Success response

200

The response has no body.

Errors6

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_duplicate_tag_association
Tag is already associated with the product

Endpoint-specific error. Use the stable error_duplicate_tag_association 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.

400error_tag_and_model_id_required
Tag id and model id are required

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

DELETE

Un Bind Tag To Model

/api/tag/model/{tagId}/{modelId}
Token with write access

Un Bind Tag To Model using DELETE /api/tag/model/{tagId}/{modelId}.

Path parameters

FieldTypeRequiredDescription
tagId integer · int64 Yes Tag Id.
modelId integer · int64 Yes Model Id.
curl --request DELETE 'https://api.selsup.ru/api/tag/model/1001/1001' \
  --header 'Authorization: YOUR_API_TOKEN'

Success response

200

The response has no body.

Errors5

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.

400error_tag_and_model_id_required
Tag id and model id are required

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

POST

Create Tag

/api/tag
Token with write access

Create Tag using POST /api/tag.

Request body

application/json
Object fieldsProductTag
FieldTypeRequiredDescription
id integer · int64 No Id.
name string Yes Name.
clientId integer · int64 No Client Id.
curl --request POST 'https://api.selsup.ru/api/tag' \
  --header 'Authorization: YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "Example",
  "id": 1001,
  "clientId": 1001
}'

Success response

200
Object fields ProductTag
FieldTypeRequiredDescription
id integer · int64 No Id.
name string Yes Name.
clientId integer · int64 No Client Id.
{
  "name": "Example",
  "id": 1001,
  "clientId": 1001
}
Errors6

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_duplicate_tag_name
Tag with this name already exists: {0}

Endpoint-specific error. Use the stable error_duplicate_tag_name 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.

400error_tag_name_required
Tag name is required

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

GET

Find Tags

/api/tag/find
Token with read access

Find Tags using GET /api/tag/find.

Query parameters

FieldTypeRequiredDescription
query string No Query.
productId integer · int64 No Product Id.
limit integer · int32 No Limit.
page integer · int32 No Page.
count boolean No Count.
sortBy stringID, NAME No Sort By.
ascending boolean No Ascending.
curl --request GET 'https://api.selsup.ru/api/tag/find?limit=50&page=1' \
  --header 'Authorization: YOUR_API_TOKEN'

Success response

200
Object fields FindResponseProductTag
FieldTypeRequiredDescription
rows ProductTag[] No Rows.
Array item structure ProductTag
FieldTypeRequiredDescription
id integer · int64 No Id.
name string Yes Name.
clientId integer · int64 No Client Id.
{
  "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.

GET

Find Model Tags

/api/tag/find/{modelId}
Token with read access

Find Model Tags using GET /api/tag/find/{modelId}.

Path parameters

FieldTypeRequiredDescription
modelId integer · int64 Yes Model Id.
curl --request GET 'https://api.selsup.ru/api/tag/find/1001' \
  --header 'Authorization: YOUR_API_TOKEN'

Success response

200
Object fields FindResponseProductTagInfo
FieldTypeRequiredDescription
rows ProductTagInfo[] No Rows.
Array item structure ProductTagInfo
FieldTypeRequiredDescription
productId integer · int64 No Product Id.
productTags ProductTag[] No Product Tags.
Array item structure ProductTag
FieldTypeRequiredDescription
id integer · int64 No Id.
name string Yes Name.
clientId integer · int64 No Client Id.
{
  "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.