SelSup Developers

Public API · API Reference

Keywords

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

12 endpoints/api/keywordStableMachine-readable description ↗
{ }

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

/api/keyword

Ready-to-use workflows

Ready-to-use workflows

Data model

Data structures

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

Keyword3 fields
idinteger · int64

Id.

namestring

Name.

usingQuantityinteger · int32

Using Quantity.

KeywordGroup3 fields
idinteger · int64

Id.

namestring

Name.

keywordsKeyword[]

Keywords.

KeywordAndGroup2 fields
keywordKeyword[]

Keyword.

groupKeywordGroup[]

Group.

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

GET

Get Keyword From Group

/api/keyword/group/{groupId}
Token with read access

Get Keyword From Group using GET /api/keyword/group/{groupId}.

Path parameters

FieldTypeRequiredDescription
groupId integer · int64 Yes Group Id.
curl --request GET 'https://api.selsup.ru/api/keyword/group/1001' \
  --header 'Authorization: YOUR_API_TOKEN'

Success response

200
Object fields KeywordGroup
FieldTypeRequiredDescription
id integer · int64 No Id.
name string No Name.
keywords Keyword[] No Keywords.
Array item structure Keyword
FieldTypeRequiredDescription
id integer · int64 No Id.
name string No Name.
usingQuantity integer · int32 No Using Quantity.
{
  "id": 1001,
  "name": "Example",
  "keywords": "string"
}
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

Edit Keyword Group By Id

/api/keyword/group/{groupId}
Token with write access

Edit Keyword Group By Id using PUT /api/keyword/group/{groupId}.

Path parameters

FieldTypeRequiredDescription
groupId integer · int64 Yes Group Id.

Query parameters

FieldTypeRequiredDescription
newName string No New Name.

Request body

application/json
curl --request PUT 'https://api.selsup.ru/api/keyword/group/1001' \
  --header 'Authorization: YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '[
  "string"
]'

Success response

200
Object fields KeywordGroup
FieldTypeRequiredDescription
id integer · int64 No Id.
name string No Name.
keywords Keyword[] No Keywords.
Array item structure Keyword
FieldTypeRequiredDescription
id integer · int64 No Id.
name string No Name.
usingQuantity integer · int32 No Using Quantity.
{
  "id": 1001,
  "name": "Example",
  "keywords": "string"
}
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.

DELETE

Delete Keyword Group

/api/keyword/group/{groupId}
Token with write access

Delete Keyword Group using DELETE /api/keyword/group/{groupId}.

Path parameters

FieldTypeRequiredDescription
groupId integer · int64 Yes Group Id.
curl --request DELETE 'https://api.selsup.ru/api/keyword/group/1001' \
  --header 'Authorization: YOUR_API_TOKEN'

Success response

200
Object fields KeywordGroup
FieldTypeRequiredDescription
id integer · int64 No Id.
name string No Name.
keywords Keyword[] No Keywords.
Array item structure Keyword
FieldTypeRequiredDescription
id integer · int64 No Id.
name string No Name.
usingQuantity integer · int32 No Using Quantity.
{
  "id": 1001,
  "name": "Example",
  "keywords": "string"
}
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

Add Keyword Group

/api/keyword/add
Token with write access

Add Keyword Group using PUT /api/keyword/add.

Query parameters

FieldTypeRequiredDescription
productId integer · int64 No Product Id.
productViewId integer · int64 No Product View Id.
modelId integer · int64 No Model Id.

Request body

application/json
curl --request PUT 'https://api.selsup.ru/api/keyword/add' \
  --header 'Authorization: YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '[
  1
]'

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.

GET

Get Keyword Group

/api/keyword/group
Token with read access

Get Keyword Group using GET /api/keyword/group.

curl --request GET 'https://api.selsup.ru/api/keyword/group' \
  --header 'Authorization: YOUR_API_TOKEN'

Success response

200
Array item structure KeywordGroup[]
FieldTypeRequiredDescription
id integer · int64 No Id.
name string No Name.
keywords Keyword[] No Keywords.
Array item structure Keyword
FieldTypeRequiredDescription
id integer · int64 No Id.
name string No Name.
usingQuantity integer · int32 No Using Quantity.
[
  "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.

POST

Create Keyword Group

/api/keyword/group
Token with write access

Create Keyword Group using POST /api/keyword/group.

Query parameters

FieldTypeRequiredDescription
groupName string Yes Group Name.

Request body

application/json
curl --request POST 'https://api.selsup.ru/api/keyword/group?groupName=Example' \
  --header 'Authorization: YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '[
  "string"
]'

Success response

200
Object fields KeywordGroup
FieldTypeRequiredDescription
id integer · int64 No Id.
name string No Name.
keywords Keyword[] No Keywords.
Array item structure Keyword
FieldTypeRequiredDescription
id integer · int64 No Id.
name string No Name.
usingQuantity integer · int32 No Using Quantity.
{
  "id": 1001,
  "name": "Example",
  "keywords": "string"
}
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.

DELETE

Delete Keyword Groups

/api/keyword/group
Token with write access

Delete Keyword Groups using DELETE /api/keyword/group.

Request body

application/json
curl --request DELETE 'https://api.selsup.ru/api/keyword/group' \
  --header 'Authorization: YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '[
  1
]'

Success response

200
"string"
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.

POST

Merge Keyword Groups

/api/keyword/group/merge
Token with write access

Merge Keyword Groups using POST /api/keyword/group/merge.

Query parameters

FieldTypeRequiredDescription
newGroupName string Yes New Group Name.

Request body

application/json
curl --request POST 'https://api.selsup.ru/api/keyword/group/merge?newGroupName=Example' \
  --header 'Authorization: YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '[
  1
]'

Success response

200
Object fields KeywordGroup
FieldTypeRequiredDescription
id integer · int64 No Id.
name string No Name.
keywords Keyword[] No Keywords.
Array item structure Keyword
FieldTypeRequiredDescription
id integer · int64 No Id.
name string No Name.
usingQuantity integer · int32 No Using Quantity.
{
  "id": 1001,
  "name": "Example",
  "keywords": "string"
}
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_empty_group_name
The name of the keyword group cannot be empty

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

400error_empty_keywords_groups
The keyword group is empty

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

400error_need_at_least_two_groups
at least two groups required

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

Get Keyword For Entity

/api/keyword/{modelId}
Token with read access

Get Keyword For Entity using GET /api/keyword/{modelId}.

Path parameters

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

Success response

200
Object fields KeywordAndGroup
FieldTypeRequiredDescription
keyword Keyword[] No Keyword.
Array item structure Keyword
FieldTypeRequiredDescription
id integer · int64 No Id.
name string No Name.
usingQuantity integer · int32 No Using Quantity.
group KeywordGroup[] No Group.
Array item structure KeywordGroup
FieldTypeRequiredDescription
id integer · int64 No Id.
name string No Name.
keywords Keyword[] No Keywords.
Array item structure Keyword
FieldTypeRequiredDescription
id integer · int64 No Id.
name string No Name.
usingQuantity integer · int32 No Using Quantity.
{
  "keyword": "string",
  "group": "string"
}
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.

GET

Find Keyword Group

/api/keyword/group/find
Token with read access

Find Keyword Group using GET /api/keyword/group/find.

Query parameters

FieldTypeRequiredDescription
word string Yes Word.
curl --request GET 'https://api.selsup.ru/api/keyword/group/find?word=string' \
  --header 'Authorization: YOUR_API_TOKEN'

Success response

200
Array item structure KeywordGroup[]
FieldTypeRequiredDescription
id integer · int64 No Id.
name string No Name.
keywords Keyword[] No Keywords.
Array item structure Keyword
FieldTypeRequiredDescription
id integer · int64 No Id.
name string No Name.
usingQuantity integer · int32 No Using Quantity.
[
  "string"
]
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.

DELETE

Delete Keyword Group From Entity

/api/keyword/model/{modelId}
Token with write access

Delete Keyword Group From Entity using DELETE /api/keyword/model/{modelId}.

Path parameters

FieldTypeRequiredDescription
modelId integer · int64 Yes Model Id.

Request body

application/json
curl --request DELETE 'https://api.selsup.ru/api/keyword/model/1001' \
  --header 'Authorization: YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '[
  1
]'

Success response

200
"string"
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.

DELETE

Delete Keyword From Group

/api/keyword/group/{groupId}/keywords
Token with write access

Delete Keyword From Group using DELETE /api/keyword/group/{groupId}/keywords.

Path parameters

FieldTypeRequiredDescription
groupId integer · int64 Yes Group Id.

Request body

application/json
curl --request DELETE 'https://api.selsup.ru/api/keyword/group/1001/keywords' \
  --header 'Authorization: YOUR_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '[
  1
]'

Success response

200
"string"
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.

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.