{
"error": "error_brand_already_exists",
"localMessage": "Бренд Base уже существует",
"params": {
"name": "Base"
}
}Публичный API · Справочник API
Параметры
Поиск параметров и создание собственных параметров товаров.
Методы управления параметрами товаров в категориях.
/api/param
Модель данных
Структуры данных
Поля объектов, которые используются в запросах и ответах этого раздела.
CacheStringOption0 полей
Measure8 полей
idinteger · int32Поле id.
namestringПоле name.
nationalCatalogIdinteger · int64Поле nationalCatalogId.
wildberriesTypeIdinteger · int64Поле wildberriesTypeId.
aliexpressCategoryIdinteger · int64Поле aliexpressCategoryId.
unitsUnit[]Поле units.
unitsMapobjectПоле unitsMap.
measureIdinteger · int32Поле measureId.
Option14 полей
idinteger · int64Идентификатор значения, может отсутствовать
namestringНазвание значения, лучше всегда передавать
paramIdinteger · int64Идентификатор значения параметра Param.id
ozonIdinteger · int64Идентификатор значения параметра на Ozon
wildberriesIdinteger · int64Признак того, что значение параметра WB
ymIdinteger · int64Признак того, что значение параметра YM
aliexpressIdinteger · int64Идентификатор значения параметра на Aliexpress
magnitIdinteger · int64Поле magnitId.
detmirIdstringКлюч значения параметра Детского мира
clientIdinteger · int64Поле clientId.
deletedbooleanПоле deleted.
oneCIdstringИдентификатор значения параметра в 1С
dictionarybooleanПоле dictionary.
optionIdOptionПоле optionId.
Param51 полей
namestringПоле name.
titlestringПоле title.
publishedbooleanПоле published.
visiblebooleanПоле visible.
serviceParamstringПоле serviceParam.
servicestringМаркетплейс, к которому относится этот параметр
useCategoryOptionbooleanПоле useCategoryOption.
valueTypestringПоле valueType.
displayTypestringПоле displayType.
requiredbooleanОбязательность заполнения параметра
aiSupportedbooleanПоле aiSupported.
multiValueAllowedbooleanМногозначный параметр - у которого может быть несколько значений
maxValuesCountinteger · int32Максимальное количество значений для многозначных параметров
useDictionarybooleanПоле useDictionary.
descriptionstringОписание параметра, как его заполнять и особенности заполнения
groupNamestringНазвание группировки параметров
groupIdstringИдентификатор группы параметров
ozonDictionaryIdinteger · int64Поле ozonDictionaryId.
dictionaryIdinteger · int64Поле dictionaryId.
measureIdinteger · int32Поле measureId.
measureMeasureЕдиница измерения параметра
defaultUnitUnitПоле defaultUnit.
ozonIdinteger · int64Поле ozonId.
wildberriesIdinteger · int64Поле wildberriesId.
ymIdinteger · int64Поле ymId.
lamodaIdstringПоле lamodaId.
magnitIdinteger · int64Поле magnitId.
sourceTypestringПоле sourceType.
detmirIdstringПоле detmirId.
nationalCatalogIdinteger · int64Связь с параметром национального каталога
categoryIdinteger · int64Поле categoryId.
avitoIdsinteger[]Поле avitoIds.
avitoOptionsXmlFileNamestringПоле avitoOptionsXmlFileName.
clientIdinteger · int64Заполняется для пользовательских параметров
createdDatestring · date-timeПоле createdDate.
aliexpressIdinteger · int64Поле aliexpressId.
presetstringПоле preset.
dictionaryParamIdinteger · int64Поле dictionaryParamId.
dictionaryKeystringПоле dictionaryKey.
levelstringПоле level.
gs1ClassstringГруппы категорий Честного знака
useAllCategoriesbooleanИспользуется для параметров клиента
oneCIdstringПоле oneCId.
optionsOption[]Поле options.
optionsCacheCacheStringOptionПоле optionsCache.
lastRefreshOptionsinteger · int64Поле lastRefreshOptions.
optionsCountinteger · int32Поле optionsCount.
isAnalyticbooleanИспользовать параметр в аналитических отчетах
analyticOrderinteger · int32Порядок отображения параметра в аналитических отчетах. NULL — параметр выводится после всех упорядоченных, в алфавитном порядке по имени
marketplaceServicestringСервис
idinteger · int64Поле id.
Unit3 полей
namestringНазвание единицы измерения
measureIdinteger · int32Мера параметра
idinteger · int32Поле id.
SuggestParam1 полей
numberstringПоле number.
SuggestResponse3 полей
apiversioninteger · int32Поле apiversion.
resultSuggestParam[]Поле result.
emptybooleanПоле empty.
Ошибки
Обработка ошибок
При ошибке API возвращает её код в поле error и сообщение на языке пользователя в localMessage. Проверяйте код error в программе, а localMessage показывайте пользователю.
errorКод ошибки для обработки в программе.
localMessageСообщение на языке пользователя, которому принадлежит токен.
paramsЗначения, которые сервер подставил в сообщение об ошибке.
Язык localMessage определяется полем lang пользователя, которому принадлежит API-токен. Язык страницы документации и заголовок Accept-Language его не переключают; если язык пользователя не указан, используется русский.
{
"error": "error_brand_already_exists",
"localMessage": "Brand Base already exists",
"params": {
"name": "Base"
}
}Методы
Методы
Создание пользовательского параметра
/api/param/Создаёт глобальный пользовательский параметр, который привязан к клиенту. Чтобы параметр отображался в товарах, его нужно сначала привязать к категориям через linkCategoriesToParam
Тело запроса
application/jsonПоля объектаParam
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name |
string | Нет | Поле name. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
title |
string | Нет | Поле title. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
published |
boolean | Нет | Поле published. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
visible |
boolean | Нет | Поле visible. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
serviceParam |
stringNAME, MODEL_NAME, MAIN_IMAGE_URL, TNVED, RICH_CONTENT, DESCRIPTION, TNVED_GROUP, MATERIALS, GENDER, IMAGES, BRAND, PACK_WEIGHT_GR, PACK_WEIGHT_KG, MADE_IN_COUNTRY, MARKING, WILDBERRIES_ARTICLE, WILDBERRIES_COLOR, WILDBERRIES_SIZE, REAL_SIZE, PACK_WIDTH, PACK_HEIGHT, PACK_DEPTH, PACK_LENGTH, MANUFACTURER, MEASURES, DOCUMENT_LINK, DOCUMENT_NAME, KEYWORDS, SEASON, ARTICLE, COLOR, SIZE, MATERIALS_WB, LAUNDRY | Нет | Поле serviceParam. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Маркетплейс, к которому относится этот параметр | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
useCategoryOption |
boolean | Нет | Поле useCategoryOption. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
valueType |
stringBOOLEAN, LONG, DOUBLE, ENUM, TEXT, DATE | Нет | Поле valueType. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
displayType |
stringSELECT, SUGGEST, TEXT, CHECKBOX, LONGTEXT | Нет | Поле displayType. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
required |
boolean | Нет | Обязательность заполнения параметра | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
aiSupported |
boolean | Нет | Поле aiSupported. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
multiValueAllowed |
boolean | Нет | Многозначный параметр - у которого может быть несколько значений | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
maxValuesCount |
integer · int32 | Нет | Максимальное количество значений для многозначных параметров | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
useDictionary |
boolean | Нет | Поле useDictionary. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
description |
string | Нет | Описание параметра, как его заполнять и особенности заполнения | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
groupName |
string | Нет | Название группировки параметров | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
groupId |
string | Нет | Идентификатор группы параметров | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ozonDictionaryId |
integer · int64 | Нет | Поле ozonDictionaryId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dictionaryId |
integer · int64 | Нет | Поле dictionaryId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
measureId |
integer · int32 | Нет | Поле measureId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
measure |
Measure | Нет | Единица измерения параметра | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id |
integer · int32 | Нет | Поле id. | ||||||||||||||||
name |
string | Нет | Поле name. | ||||||||||||||||
nationalCatalogId |
integer · int64 | Нет | Поле nationalCatalogId. | ||||||||||||||||
wildberriesTypeId |
integer · int64 | Нет | Поле wildberriesTypeId. | ||||||||||||||||
aliexpressCategoryId |
integer · int64 | Нет | Поле aliexpressCategoryId. | ||||||||||||||||
units |
Unit[] | Нет | Поле units. | ||||||||||||||||
Структура элемента массива
|
|||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
name |
string | Нет | Название единицы измерения |
measureId |
integer · int32 | Нет | Мера параметра |
id |
integer · int32 | Нет | Поле id. |
unitsMapmeasureIddefaultUnit
Поля объекта
Unit
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
name |
string | Нет | Название единицы измерения |
measureId |
integer · int32 | Нет | Мера параметра |
id |
integer · int32 | Нет | Поле id. |
ozonIdwildberriesIdymIdlamodaIdmagnitIdsourceTypedetmirIdnationalCatalogIdcategoryIdavitoIdsavitoOptionsXmlFileNameclientIdcreatedDatealiexpressIdpresetdictionaryParamIddictionaryKeylevelgs1ClassuseAllCategoriesoneCIdoptions
Структура элемента массива
Option
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор значения, может отсутствовать |
name |
string | Нет | Название значения, лучше всегда передавать |
paramId |
integer · int64 | Нет | Идентификатор значения параметра Param.id |
ozonId |
integer · int64 | Нет | Идентификатор значения параметра на Ozon |
wildberriesId |
integer · int64 | Нет | Признак того, что значение параметра WB |
ymId |
integer · int64 | Нет | Признак того, что значение параметра YM |
aliexpressId |
integer · int64 | Нет | Идентификатор значения параметра на Aliexpress |
magnitId |
integer · int64 | Нет | Поле magnitId. |
detmirId |
string | Нет | Ключ значения параметра Детского мира |
clientId |
integer · int64 | Нет | Поле clientId. |
deleted |
boolean | Нет | Поле deleted. |
oneCId |
string | Нет | Идентификатор значения параметра в 1С |
dictionary |
boolean | Нет | Поле dictionary. |
optionId |
Option | Нет | Поле optionId. |
optionsCachelastRefreshOptionsoptionsCountisAnalyticanalyticOrdermarketplaceServiceidcurl --request POST 'https://api.selsup.ru/api/param/' \
--header 'Authorization: YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"name": "Example",
"title": "Example",
"published": false,
"visible": false,
"serviceParam": "NAME",
"service": "NONE"
}'
const response = await fetch('https://api.selsup.ru/api/param/', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"name": "Example",
"title": "Example",
"published": false,
"visible": false,
"serviceParam": "NAME",
"service": "NONE"
}),
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/param/', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"name": "Example",
"title": "Example",
"published": false,
"visible": false,
"serviceParam": "NAME",
"service": "NONE"
}),
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/param/',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
json={
'name': 'Example',
'title': 'Example',
'published': False,
'visible': False,
'serviceParam': 'NAME',
'service': 'NONE'
},
)
response.raise_for_status()
result = response.json()
<?php
$payload = <<<'JSON'
{
"name": "Example",
"title": "Example",
"published": false,
"visible": false,
"serviceParam": "NAME",
"service": "NONE"
}
JSON;
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/param/',
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN'), 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
req, err := http.NewRequest("POST", "https://api.selsup.ru/api/param/", strings.NewReader(`{
"name": "Example",
"title": "Example",
"published": false,
"visible": false,
"serviceParam": "NAME",
"service": "NONE"
}`))
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
req.Header.Set("Content-Type", "application/json")
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/param/"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"name": "Example",
"title": "Example",
"published": false,
"visible": false,
"serviceParam": "NAME",
"service": "NONE"
}
"""))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
Param
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name |
string | Нет | Поле name. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
title |
string | Нет | Поле title. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
published |
boolean | Нет | Поле published. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
visible |
boolean | Нет | Поле visible. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
serviceParam |
stringNAME, MODEL_NAME, MAIN_IMAGE_URL, TNVED, RICH_CONTENT, DESCRIPTION, TNVED_GROUP, MATERIALS, GENDER, IMAGES, BRAND, PACK_WEIGHT_GR, PACK_WEIGHT_KG, MADE_IN_COUNTRY, MARKING, WILDBERRIES_ARTICLE, WILDBERRIES_COLOR, WILDBERRIES_SIZE, REAL_SIZE, PACK_WIDTH, PACK_HEIGHT, PACK_DEPTH, PACK_LENGTH, MANUFACTURER, MEASURES, DOCUMENT_LINK, DOCUMENT_NAME, KEYWORDS, SEASON, ARTICLE, COLOR, SIZE, MATERIALS_WB, LAUNDRY | Нет | Поле serviceParam. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Маркетплейс, к которому относится этот параметр | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
useCategoryOption |
boolean | Нет | Поле useCategoryOption. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
valueType |
stringBOOLEAN, LONG, DOUBLE, ENUM, TEXT, DATE | Нет | Поле valueType. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
displayType |
stringSELECT, SUGGEST, TEXT, CHECKBOX, LONGTEXT | Нет | Поле displayType. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
required |
boolean | Нет | Обязательность заполнения параметра | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
aiSupported |
boolean | Нет | Поле aiSupported. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
multiValueAllowed |
boolean | Нет | Многозначный параметр - у которого может быть несколько значений | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
maxValuesCount |
integer · int32 | Нет | Максимальное количество значений для многозначных параметров | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
useDictionary |
boolean | Нет | Поле useDictionary. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
description |
string | Нет | Описание параметра, как его заполнять и особенности заполнения | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
groupName |
string | Нет | Название группировки параметров | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
groupId |
string | Нет | Идентификатор группы параметров | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ozonDictionaryId |
integer · int64 | Нет | Поле ozonDictionaryId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dictionaryId |
integer · int64 | Нет | Поле dictionaryId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
measureId |
integer · int32 | Нет | Поле measureId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
measure |
Measure | Нет | Единица измерения параметра | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id |
integer · int32 | Нет | Поле id. | ||||||||||||||||
name |
string | Нет | Поле name. | ||||||||||||||||
nationalCatalogId |
integer · int64 | Нет | Поле nationalCatalogId. | ||||||||||||||||
wildberriesTypeId |
integer · int64 | Нет | Поле wildberriesTypeId. | ||||||||||||||||
aliexpressCategoryId |
integer · int64 | Нет | Поле aliexpressCategoryId. | ||||||||||||||||
units |
Unit[] | Нет | Поле units. | ||||||||||||||||
Структура элемента массива
|
|||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
name |
string | Нет | Название единицы измерения |
measureId |
integer · int32 | Нет | Мера параметра |
id |
integer · int32 | Нет | Поле id. |
unitsMapmeasureIddefaultUnit
Поля объекта
Unit
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
name |
string | Нет | Название единицы измерения |
measureId |
integer · int32 | Нет | Мера параметра |
id |
integer · int32 | Нет | Поле id. |
ozonIdwildberriesIdymIdlamodaIdmagnitIdsourceTypedetmirIdnationalCatalogIdcategoryIdavitoIdsavitoOptionsXmlFileNameclientIdcreatedDatealiexpressIdpresetdictionaryParamIddictionaryKeylevelgs1ClassuseAllCategoriesoneCIdoptions
Структура элемента массива
Option
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор значения, может отсутствовать |
name |
string | Нет | Название значения, лучше всегда передавать |
paramId |
integer · int64 | Нет | Идентификатор значения параметра Param.id |
ozonId |
integer · int64 | Нет | Идентификатор значения параметра на Ozon |
wildberriesId |
integer · int64 | Нет | Признак того, что значение параметра WB |
ymId |
integer · int64 | Нет | Признак того, что значение параметра YM |
aliexpressId |
integer · int64 | Нет | Идентификатор значения параметра на Aliexpress |
magnitId |
integer · int64 | Нет | Поле magnitId. |
detmirId |
string | Нет | Ключ значения параметра Детского мира |
clientId |
integer · int64 | Нет | Поле clientId. |
deleted |
boolean | Нет | Поле deleted. |
oneCId |
string | Нет | Идентификатор значения параметра в 1С |
dictionary |
boolean | Нет | Поле dictionary. |
optionId |
Option | Нет | Поле optionId. |
optionsCachelastRefreshOptionsoptionsCountisAnalyticanalyticOrdermarketplaceServiceid{
"name": "Example",
"title": "Example",
"published": false,
"visible": false,
"serviceParam": "NAME",
"service": "NONE"
}Ошибки8
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_param_empty_display_typeПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_param_empty_display_type; localMessage содержит приведённый выше перевод.
error_param_empty_levelПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_param_empty_level; localMessage содержит приведённый выше перевод.
error_param_empty_nameПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_param_empty_name; localMessage содержит приведённый выше перевод.
error_param_empty_value_typeПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_param_empty_value_type; localMessage содержит приведённый выше перевод.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
Получить параметр клиента
/api/param/{id}Получить параметр клиента.
Параметры пути
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Да | Поле id. |
curl --request GET 'https://api.selsup.ru/api/param/1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/param/1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/param/1001', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/param/1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/param/1001',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/param/1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/param/1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
Param
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name |
string | Нет | Поле name. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
title |
string | Нет | Поле title. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
published |
boolean | Нет | Поле published. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
visible |
boolean | Нет | Поле visible. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
serviceParam |
stringNAME, MODEL_NAME, MAIN_IMAGE_URL, TNVED, RICH_CONTENT, DESCRIPTION, TNVED_GROUP, MATERIALS, GENDER, IMAGES, BRAND, PACK_WEIGHT_GR, PACK_WEIGHT_KG, MADE_IN_COUNTRY, MARKING, WILDBERRIES_ARTICLE, WILDBERRIES_COLOR, WILDBERRIES_SIZE, REAL_SIZE, PACK_WIDTH, PACK_HEIGHT, PACK_DEPTH, PACK_LENGTH, MANUFACTURER, MEASURES, DOCUMENT_LINK, DOCUMENT_NAME, KEYWORDS, SEASON, ARTICLE, COLOR, SIZE, MATERIALS_WB, LAUNDRY | Нет | Поле serviceParam. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Маркетплейс, к которому относится этот параметр | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
useCategoryOption |
boolean | Нет | Поле useCategoryOption. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
valueType |
stringBOOLEAN, LONG, DOUBLE, ENUM, TEXT, DATE | Нет | Поле valueType. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
displayType |
stringSELECT, SUGGEST, TEXT, CHECKBOX, LONGTEXT | Нет | Поле displayType. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
required |
boolean | Нет | Обязательность заполнения параметра | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
aiSupported |
boolean | Нет | Поле aiSupported. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
multiValueAllowed |
boolean | Нет | Многозначный параметр - у которого может быть несколько значений | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
maxValuesCount |
integer · int32 | Нет | Максимальное количество значений для многозначных параметров | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
useDictionary |
boolean | Нет | Поле useDictionary. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
description |
string | Нет | Описание параметра, как его заполнять и особенности заполнения | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
groupName |
string | Нет | Название группировки параметров | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
groupId |
string | Нет | Идентификатор группы параметров | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ozonDictionaryId |
integer · int64 | Нет | Поле ozonDictionaryId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dictionaryId |
integer · int64 | Нет | Поле dictionaryId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
measureId |
integer · int32 | Нет | Поле measureId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
measure |
Measure | Нет | Единица измерения параметра | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id |
integer · int32 | Нет | Поле id. | ||||||||||||||||
name |
string | Нет | Поле name. | ||||||||||||||||
nationalCatalogId |
integer · int64 | Нет | Поле nationalCatalogId. | ||||||||||||||||
wildberriesTypeId |
integer · int64 | Нет | Поле wildberriesTypeId. | ||||||||||||||||
aliexpressCategoryId |
integer · int64 | Нет | Поле aliexpressCategoryId. | ||||||||||||||||
units |
Unit[] | Нет | Поле units. | ||||||||||||||||
Структура элемента массива
|
|||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
name |
string | Нет | Название единицы измерения |
measureId |
integer · int32 | Нет | Мера параметра |
id |
integer · int32 | Нет | Поле id. |
unitsMapmeasureIddefaultUnit
Поля объекта
Unit
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
name |
string | Нет | Название единицы измерения |
measureId |
integer · int32 | Нет | Мера параметра |
id |
integer · int32 | Нет | Поле id. |
ozonIdwildberriesIdymIdlamodaIdmagnitIdsourceTypedetmirIdnationalCatalogIdcategoryIdavitoIdsavitoOptionsXmlFileNameclientIdcreatedDatealiexpressIdpresetdictionaryParamIddictionaryKeylevelgs1ClassuseAllCategoriesoneCIdoptions
Структура элемента массива
Option
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор значения, может отсутствовать |
name |
string | Нет | Название значения, лучше всегда передавать |
paramId |
integer · int64 | Нет | Идентификатор значения параметра Param.id |
ozonId |
integer · int64 | Нет | Идентификатор значения параметра на Ozon |
wildberriesId |
integer · int64 | Нет | Признак того, что значение параметра WB |
ymId |
integer · int64 | Нет | Признак того, что значение параметра YM |
aliexpressId |
integer · int64 | Нет | Идентификатор значения параметра на Aliexpress |
magnitId |
integer · int64 | Нет | Поле magnitId. |
detmirId |
string | Нет | Ключ значения параметра Детского мира |
clientId |
integer · int64 | Нет | Поле clientId. |
deleted |
boolean | Нет | Поле deleted. |
oneCId |
string | Нет | Идентификатор значения параметра в 1С |
dictionary |
boolean | Нет | Поле dictionary. |
optionId |
Option | Нет | Поле optionId. |
optionsCachelastRefreshOptionsoptionsCountisAnalyticanalyticOrdermarketplaceServiceid{
"name": "Example",
"title": "Example",
"published": false,
"visible": false,
"serviceParam": "NAME",
"service": "NONE"
}Ошибки6
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_not_found_param_by_idПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_not_found_param_by_id; localMessage содержит приведённый выше перевод.
Саджест для параметров
/api/param/preset/{service}/{organizationId}/{preset}Запрашивает данные о параметре доступном только через саджест
Параметры пути
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
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, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Да | Сервис |
preset |
stringSUGGEST_REQUIRED | Да | Поле preset. |
organizationId |
integer · int64 | Да | Поле organizationId. |
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
attrId |
integer · int64 | Да | Поле attrId. |
number |
string | Да | Поле number. |
curl --request GET 'https://api.selsup.ru/api/param/preset/NONE/1001/SUGGEST_REQUIRED?attrId=1001&number=string' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/param/preset/NONE/1001/SUGGEST_REQUIRED?attrId=1001&number=string', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/param/preset/NONE/1001/SUGGEST_REQUIRED?attrId=1001&number=string', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/param/preset/NONE/1001/SUGGEST_REQUIRED?attrId=1001&number=string',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/param/preset/NONE/1001/SUGGEST_REQUIRED?attrId=1001&number=string',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/param/preset/NONE/1001/SUGGEST_REQUIRED?attrId=1001&number=string", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/param/preset/NONE/1001/SUGGEST_REQUIRED?attrId=1001&number=string"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Поля объекта
SuggestResponse
| Поле | Тип | Обязательно | Описание | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
apiversion |
integer · int32 | Нет | Поле apiversion. | ||||||||
result |
SuggestParam[] | Нет | Поле result. | ||||||||
Структура элемента массива
|
|||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
number |
string | Нет | Поле number. |
empty{
"apiversion": 1,
"result": "string",
"empty": false
}Ошибки8
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_no_integration_with_ncПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_integration_with_nc; localMessage содержит приведённый выше перевод.
error_service_did_not_find_any_resultsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_service_did_not_find_any_results; localMessage содержит приведённый выше перевод.
error_service_not_implementedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_service_not_implemented; localMessage содержит приведённый выше перевод.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.
error_token_expired_or_revokedПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_token_expired_or_revoked; localMessage содержит приведённый выше перевод.
Поиск параметров
/api/param/findВозвращает список всех заведенных параметров для категории озон, предмета Вайлдбериз или Национального каталога
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
nationalCatalogId |
integer · int64 | Нет | Категория Национального каталога, для которой необходимо получить список значений |
wildberriesTypeId |
integer · int64 | Нет | Предмет Вайлдбериз для которой неободимо получить список значений |
wildberriesCategoryId |
integer · int64 | Нет | Категория Вайлдбериз для которой неободимо получить список значений |
ozonCategoryId |
integer · int64 | Нет | Категория Озон для которой неободимо получить список значений |
ozonDescriptionCategoryId |
integer · int64 | Нет | Новая категория Озон для которой неободимо получить список значений |
aliexpressCategoryId |
integer · int64 | Нет | Категория Aliexpress для которой неободимо получить список значений |
lamodaCategoryId |
integer · int64 | Нет | Категория Lamoda для которой необходимо получить список значений |
kaspiCategoryId |
string | Нет | Код категории Kaspi для получения характеристик |
magnitCategoryId |
integer · int64 | Нет | Категория Магнит Маркета |
detmirCategoryId |
integer · int64 | Нет | Категория Детского мира для получения характеристик |
avitoCategoryId |
integer · int64 | Нет | Категория Avito для которой неободимо получить список значений |
yandexMarketCategoryId |
integer · int64 | Нет | Категория Яндекс.Маркета для которой неободимо получить список значений |
categoryId |
integer · int32 | Нет | Категория SelSup, используется только для параметров клиента вместе с clientId |
useAllCategories |
boolean | Нет | Используется только параметров клиента |
useCategoryOption |
boolean | Нет | Поле useCategoryOption. |
limit |
integer · int32 | Нет | Ограничение на количество записей. Максимальное значение - 500 |
page |
integer · int32 | Нет | Номер страницы начиная с 1 |
count |
boolean | Нет | Возвратить в ответе общее количество записей |
sortBy |
string | Нет | Поле сортировки записей. Работает только при получении списка. |
ascending |
boolean | Нет | Порядок сортировки - по возрастанию?. Работает только при получении списка. |
curl --request GET 'https://api.selsup.ru/api/param/find?limit=50&page=1' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/param/find?limit=50&page=1', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/param/find?limit=50&page=1', {
method: 'GET',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/param/find?limit=50&page=1',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/param/find?limit=50&page=1',
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://api.selsup.ru/api/param/find?limit=50&page=1", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/param/find?limit=50&page=1"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200
Структура элемента массива
Param[]
| Поле | Тип | Обязательно | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
name |
string | Нет | Поле name. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
title |
string | Нет | Поле title. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
published |
boolean | Нет | Поле published. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
visible |
boolean | Нет | Поле visible. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
serviceParam |
stringNAME, MODEL_NAME, MAIN_IMAGE_URL, TNVED, RICH_CONTENT, DESCRIPTION, TNVED_GROUP, MATERIALS, GENDER, IMAGES, BRAND, PACK_WEIGHT_GR, PACK_WEIGHT_KG, MADE_IN_COUNTRY, MARKING, WILDBERRIES_ARTICLE, WILDBERRIES_COLOR, WILDBERRIES_SIZE, REAL_SIZE, PACK_WIDTH, PACK_HEIGHT, PACK_DEPTH, PACK_LENGTH, MANUFACTURER, MEASURES, DOCUMENT_LINK, DOCUMENT_NAME, KEYWORDS, SEASON, ARTICLE, COLOR, SIZE, MATERIALS_WB, LAUNDRY | Нет | Поле serviceParam. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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, TEKSHER, KONTUR_LOGISTICS, KONTUR_EDI, VSE_INSTRUMENTI, ELECTRONIC_SIGN | Нет | Маркетплейс, к которому относится этот параметр | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
useCategoryOption |
boolean | Нет | Поле useCategoryOption. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
valueType |
stringBOOLEAN, LONG, DOUBLE, ENUM, TEXT, DATE | Нет | Поле valueType. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
displayType |
stringSELECT, SUGGEST, TEXT, CHECKBOX, LONGTEXT | Нет | Поле displayType. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
required |
boolean | Нет | Обязательность заполнения параметра | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
aiSupported |
boolean | Нет | Поле aiSupported. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
multiValueAllowed |
boolean | Нет | Многозначный параметр - у которого может быть несколько значений | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
maxValuesCount |
integer · int32 | Нет | Максимальное количество значений для многозначных параметров | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
useDictionary |
boolean | Нет | Поле useDictionary. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
description |
string | Нет | Описание параметра, как его заполнять и особенности заполнения | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
groupName |
string | Нет | Название группировки параметров | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
groupId |
string | Нет | Идентификатор группы параметров | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ozonDictionaryId |
integer · int64 | Нет | Поле ozonDictionaryId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dictionaryId |
integer · int64 | Нет | Поле dictionaryId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
measureId |
integer · int32 | Нет | Поле measureId. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
measure |
Measure | Нет | Единица измерения параметра | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Поля объекта
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Поле | Тип | Обязательно | Описание | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id |
integer · int32 | Нет | Поле id. | ||||||||||||||||
name |
string | Нет | Поле name. | ||||||||||||||||
nationalCatalogId |
integer · int64 | Нет | Поле nationalCatalogId. | ||||||||||||||||
wildberriesTypeId |
integer · int64 | Нет | Поле wildberriesTypeId. | ||||||||||||||||
aliexpressCategoryId |
integer · int64 | Нет | Поле aliexpressCategoryId. | ||||||||||||||||
units |
Unit[] | Нет | Поле units. | ||||||||||||||||
Структура элемента массива
|
|||||||||||||||||||
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
name |
string | Нет | Название единицы измерения |
measureId |
integer · int32 | Нет | Мера параметра |
id |
integer · int32 | Нет | Поле id. |
unitsMapmeasureIddefaultUnit
Поля объекта
Unit
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
name |
string | Нет | Название единицы измерения |
measureId |
integer · int32 | Нет | Мера параметра |
id |
integer · int32 | Нет | Поле id. |
ozonIdwildberriesIdymIdlamodaIdmagnitIdsourceTypedetmirIdnationalCatalogIdcategoryIdavitoIdsavitoOptionsXmlFileNameclientIdcreatedDatealiexpressIdpresetdictionaryParamIddictionaryKeylevelgs1ClassuseAllCategoriesoneCIdoptions
Структура элемента массива
Option
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
id |
integer · int64 | Нет | Идентификатор значения, может отсутствовать |
name |
string | Нет | Название значения, лучше всегда передавать |
paramId |
integer · int64 | Нет | Идентификатор значения параметра Param.id |
ozonId |
integer · int64 | Нет | Идентификатор значения параметра на Ozon |
wildberriesId |
integer · int64 | Нет | Признак того, что значение параметра WB |
ymId |
integer · int64 | Нет | Признак того, что значение параметра YM |
aliexpressId |
integer · int64 | Нет | Идентификатор значения параметра на Aliexpress |
magnitId |
integer · int64 | Нет | Поле magnitId. |
detmirId |
string | Нет | Ключ значения параметра Детского мира |
clientId |
integer · int64 | Нет | Поле clientId. |
deleted |
boolean | Нет | Поле deleted. |
oneCId |
string | Нет | Идентификатор значения параметра в 1С |
dictionary |
boolean | Нет | Поле dictionary. |
optionId |
Option | Нет | Поле optionId. |
optionsCachelastRefreshOptionsoptionsCountisAnalyticanalyticOrdermarketplaceServiceid[
"string"
]Ошибки3
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
Удаление пользовательского параметра
/api/param/{paramId}Удаляет глобальный пользовательский параметр клиента
Параметры пути
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
paramId |
integer · int64 | Да | Поле paramId. |
curl --request DELETE 'https://api.selsup.ru/api/param/1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/param/1001', {
method: 'DELETE',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const result = await response.json();
const response: Response = await fetch('https://api.selsup.ru/api/param/1001', {
method: 'DELETE',
headers: { Authorization: process.env.SELSUP_API_TOKEN! },
});
if (!response.ok) {
const error = await response.json() as { error?: string };
throw new Error(error.error ?? 'selsup_request_failed');
}
const result: unknown = await response.json();
import os
import requests
response = requests.delete(
'https://api.selsup.ru/api/param/1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
result = response.json()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/param/1001',
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SELSUP_API_TOKEN')],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($response === false || $status >= 400) {
throw new RuntimeException($response ?: 'selsup_request_failed');
}
echo $response;
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("DELETE", "https://api.selsup.ru/api/param/1001", nil)
if err != nil { panic(err) }
req.Header.Set("Authorization", os.Getenv("SELSUP_API_TOKEN"))
response, err := http.DefaultClient.Do(req)
if err != nil { panic(err) }
defer response.Body.Close()
result, _ := io.ReadAll(response.Body)
fmt.Printf("%d\n%s\n", response.StatusCode, result)
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class SelSupExample {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.selsup.ru/api/param/1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("DELETE", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Успешный ответ
200"string"Ошибки7
При ошибке проверьте HTTP-статус и тело ответа. Поле error содержит код ошибки, localMessage — сообщение для пользователя, params — дополнительные сведения. Обработка ошибок ↑
auth_requiredЗаголовок Authorization отсутствует, пуст или содержит недействительный токен.
error_access_deniedТокен существует, но его роль не позволяет выполнить операцию.
error_unknownНе удалось выполнить запрос из-за внутренней ошибки. Если запрос изменял данные, проверьте результат перед повторной отправкой. Для обращения в поддержку сохраните время запроса и полученный ответ.
error_cant_extract_tariffsПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_cant_extract_tariffs; localMessage содержит приведённый выше перевод.
error_no_clientПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_no_client; localMessage содержит приведённый выше перевод.
error_remove_paramПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_remove_param; localMessage содержит приведённый выше перевод.
error_subscription_expiredПерсональная ошибка этого метода. Для программной логики используйте стабильный код error_subscription_expired; localMessage содержит приведённый выше перевод.