开始使用广告活动
使用专用API代币,首先验证测试数据的读取操作.
- 保存代币服务器侧,然后将其发送到Authorization标题中.
- 检查所需参数,并扩大请求或响应方案.
- 在应用错误中处理HTTP状态和稳定的error字段.
通过可编辑的独立合同来支持本页面. 在生产使用之前,验证使用测试数据的写作操作.
/api/campaign
准备使用的工作流程
使用专用API代币,首先验证测试数据的读取操作.
数据模型
模型在此列出一次,并且可以直接从使用它们的终端点扩展.
limitinteger · int32限制.
pageinteger · int32页面.
countboolean伯爵.
sortBystring排序了.
ascendingboolean升高.
statusstringStatus.
campaignStatusstring竞选状态.
typeinteger · int32Type.
offsetinteger · int32没有什么.
servicestring服务.
dateTostring · date-time约会到.
dateFromstring · date-time时间从.
isStatCampaignboolean是州政府运动.
dateStartstring · date-time开始日期.
querystring问问.
productExternalIdinteger · int64产品外部身份证
organizationIdsinteger[]组织身份证.
servicestring服务.
organizationIdinteger · int64组织身份证.
organizationIdsinteger[]组织身份证.
filterCampaignFilter选器.
idinteger · int64Id.
read-onlystatusstringStatus.
read-onlytypestringType.
read-onlynamestring姓名.
clientIdinteger · int64客户身份证.
entityIdinteger · int64实体身份证
progressinteger · int32进步.
processedQuantityinteger · int32处理量
organizationIdinteger · int64组织身份证.
priorityinteger · int32优先考虑.
propertiesstring房产.
messagestring信息.
messageParamsstring消息帕拉姆.
createdDatestring · date-time创造日期.
startDatestring · date-time开始日期.
finishDatestring · date-time终结日期.
urlstring查看一个URL.
inputFileUrlstring输入文件URL.
retryNumberinteger · int32复试号码.
userIdinteger · int32用户身份证
retryDatestring · date-time试一次.
debugboolean调试.
forcedStartboolean强迫开始.
servicestring服务.
langstringLang.
idinteger · int64Id.
externalIdinteger · int64其他身份证.
namestring姓名.
campaignNamestring竞选名字.
typestringType.
statusTypestring状态类型.
productIdinteger · int64产品身份证
externalProductIdinteger · int64外部产品ID.
createDatestring · date-time创建日期.
endDatestring · date-time终结日期.
startDatestring · date-time开始日期.
suminteger · int64总计.
writeOffTypestring写下"不写字".
onPauseboolean在休息.
clientIdinteger · int64客户身份证.
servicestring服务.
categoryIdinteger · int64类别的ID.
categoryNamestring类别名称
campaignTypestring运动类型.
dateStatImportstring · date-time进口日期数据
nmsstring没有什么.
paymentTypestring支付类型
idinteger · int64Id.
namestring姓名.
publishedboolean发表了.
hasSizeboolean有大小.
monoBoxMinQuantityinteger · int32单盒子最小量.
monoTypestring单一类型.
monoMinPriceinteger · int32单小价格.
hasParentboolean有父母.
parentIdinteger · int64亲人身份证.
wildberriesIdinteger · int64果的身份证.
lastSyncDatestring · date-time最后的同步日期.
notChangedDaysinteger · int32没有改变的日子.
commissionnumber · double委员会.
fbsCommissionnumber · double联邦调查局.
fbwCommissionnumber · double联邦调查委员会.
dbsCommissionnumber · double美国联邦调查局
edbsCommissionnumber · double艾德斯委员会.
cAndCCommissionnumber · double委员会.
bookingCommissionnumber · double预订委员会.
logisticPriceinteger · int32后勤价格.
storagePricenumber · double存储价格.
acceptancePricenumber · double接受价格.
needDimensionsboolean需要维度.
purchasePercentAvgnumber · double购买百分比 Avg.
purchasePercentMinnumber · double购买百分比
photoAvginteger · int32照片来源:
photoMininteger · int32照片:
drrAvgnumber · double艾夫博士.
drrMinnumber · double博士.
marginAvgnumber · double边缘 Avg.
marginMinnumber · double边缘分.
candCCommissionnumber · double委员会.
campaignstring运动.
valuenumber · double价值.
organizationIdinteger · int64组织身份证.
organizationNamestring组织名称
clicksCampaignStat[]点击.
viewsCampaignStat[]观看
expensesCampaignStat[]费用.
averageCostCampaignStat[]平均成本
rowsStatCampaign[]排列.
limitinteger · int32限制.
pageinteger · int32页面.
countboolean伯爵.
sortBystring排序了.
ascendingboolean升高.
statCampaignIdinteger · int64报警活动身份证.
viewsinteger · int32观看
clicksinteger · int32点击.
ratioClicksViewsnumber · double比例点击查看.
averageCostnumber · double平均成本
expensesnumber · double费用.
quantityAddCartinteger · int32量增加卡车.
quantityOrdersinteger · int32量量订单.
ratioOrdersOfVisitsnumber · double访问量比例
quantityProductOrdersinteger · int32产品量订单
ordersAmountnumber · double订单数量
campaignIdinteger · int64活动身份证.
campaignNamestring竞选名字.
createDatestring · date-time创建日期.
servicestring服务.
campaignTypestring运动类型.
categoryNamestring类别名称
externalIdinteger · int64其他身份证.
productIdinteger · int64产品身份证
productViewIdinteger · int64产品查看ID.
datestring · date-time约会.
startDatestring · date-time开始日期.
endDatestring · date-time终结日期.
importDatestring · date-time进口日期
uniqueIdstring唯一的身份证.
clientIdinteger · int64客户身份证.
organizationIdinteger · int64组织身份证.
organizationNamestring组织名称
rowTypestring排列类型.
quantityBuyoutsnumber · double量收购.
revenuenumber · double收入.
profitFactnumber · double利实践.
marginFactnumber · double边缘实况.
drrnumber · double博士,我知道.
cpsnumber · double警方.
quantityBuyoutsForecastnumber · double预测量量收购.
profitForecastnumber · double预测利
marginForecastnumber · double利预测
allowableExpensesnumber · double允许的支出.
currencystring货币.
unavailableReasonsobject原因不存在
rowsCampaign[]排列.
balanceinteger · int32保持平衡.
netinteger · int32网上.
bonusinteger · int32奖金.
错误合同
编程的代码在每个地方都相同,而用户面向的消息由服务器翻译. 建立在error周围的应用逻辑,仅用于显示.
鱼类稳定机器可读的代码用于集成逻辑.
鱼类在API代币用户语言中显示准备的消息.
鱼类服务器在本地化消息模板中插入的值.
localMessage使用了 API代币的用户的lang字段.文档语言和 Accept-Language标题不会改变它;当用户没有语言配置时,使用俄语.
{
"error": "error_brand_already_exists",
"localMessage": "Бренд Base уже существует",
"params": {
"name": "Base"
}
}{
"error": "error_brand_already_exists",
"localMessage": "品牌 Base 已经存在",
"params": {
"name": "Base"
}
}终点
/api/campaign/updateStatusCampaign使用 POST 更新状态活动
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
campaignId |
integer · int64 | 是 | 活动身份证. |
status |
stringDELETED, READY, FINISHED, CANCELLED, ACTIVE, PAUSED, UNKNOWN, ARCHIVED | 是 | Status. |
organizationId |
integer · int64 | 是 | 组织身份证. |
curl --request POST 'https://api.selsup.ru/api/campaign/updateStatusCampaign?campaignId=1001&status=DELETED&organizationId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/campaign/updateStatusCampaign?campaignId=1001&status=DELETED&organizationId=1001', {
method: 'POST',
headers: { Authorization: process.env.SELSUP_API_TOKEN },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'selsup_request_failed');
}
const response: Response = await fetch('https://api.selsup.ru/api/campaign/updateStatusCampaign?campaignId=1001&status=DELETED&organizationId=1001', {
method: 'POST',
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');
}
import os
import requests
response = requests.post(
'https://api.selsup.ru/api/campaign/updateStatusCampaign?campaignId=1001&status=DELETED&organizationId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/campaign/updateStatusCampaign?campaignId=1001&status=DELETED&organizationId=1001',
CURLOPT_CUSTOMREQUEST => 'POST',
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("POST", "https://api.selsup.ru/api/campaign/updateStatusCampaign?campaignId=1001&status=DELETED&organizationId=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/campaign/updateStatusCampaign?campaignId=1001&status=DELETED&organizationId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.method("POST", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
答案没有身体.
应用错误通常以 JSON, error,localMessage和 params为回归. 如何返回应用错误 ↑
auth_requiredAuthorization 缺失,空,或包含无效的代币.
error_access_denied代币存在,但它的作用不能执行这个操作.
error_unknown节省请求时间和联系支持;不要盲目重新尝试突变.
error_no_client应用逻辑中使用稳定的error_no_client代码;localMessage包含上述翻译.
error_organization_not_found应用逻辑中使用稳定的error_organization_not_found代码;localMessage包含上述翻译.
error_prepared_integration_not_found应用逻辑中使用稳定的error_prepared_integration_not_found代码;localMessage包含上述翻译.
error_subscription_expired应用逻辑中使用稳定的error_subscription_expired代码;localMessage包含上述翻译.
error_token_expired_or_revoked应用逻辑中使用稳定的error_token_expired_or_revoked代码;localMessage包含上述翻译.
error_wildberries_api应用逻辑中使用稳定的error_wildberries_api代码;localMessage包含上述翻译.
/api/campaign/stats/xlsx使用 POST /api/campaign/stats/xlsx.的出口活动统计数据
application/jsonCampaignStatExportRequest| 字段 | 类型 | 必填 | 描述 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 | 否 | 服务. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
organizationId |
integer · int64 | 否 | 组织身份证. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
organizationIds |
integer[] | 否 | 组织身份证. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
filter |
CampaignFilter | 否 | 选器. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
对象场
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
limit |
integer · int32 | 否 | 限制. |
page |
integer · int32 | 否 | 页面. |
count |
boolean | 否 | 伯爵. |
sortBy |
stringEXTERNALID, SERVICE, CAMPAIGNNAME, CAMPAIGNTYPE, CATEGORYNAME, VIEWS, CLICKS, RATIOCLICKSVIEWS, AVERAGECOST, EXPENSES, QUANTITYADDCART, QUANTITYORDERS, RATIOORDERSOFVISITS, QUANTITYPRODUCTORDERS, ORDERSAMOUNT, CREATEDATE, STATUS | 否 | 排序了. |
ascending |
boolean | 否 | 升高. |
status |
string | 否 | Status. |
campaignStatus |
stringDELETED, READY, FINISHED, CANCELLED, ACTIVE, PAUSED, UNKNOWN, ARCHIVED | 否 | 竞选状态. |
type |
integer · int32 | 否 | Type. |
offset |
integer · int32 | 否 | 没有什么. |
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 | 否 | 服务. |
dateTo |
string · date-time | 否 | 约会到. |
dateFrom |
string · date-time | 否 | 时间从. |
isStatCampaign |
boolean | 否 | 是州政府运动. |
dateStart |
string · date-time | 否 | 开始日期. |
query |
string | 否 | 问问. |
productExternalId |
integer · int64 | 否 | 产品外部身份证 |
organizationIds |
integer[] | 否 | 组织身份证. |
curl --request POST 'https://api.selsup.ru/api/campaign/stats/xlsx' \
--header 'Authorization: YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"service": "NONE",
"organizationId": 1001,
"organizationIds": "string",
"filter": "string"
}'
const response = await fetch('https://api.selsup.ru/api/campaign/stats/xlsx', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"service": "NONE",
"organizationId": 1001,
"organizationIds": "string",
"filter": "string"
}),
});
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/campaign/stats/xlsx', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"service": "NONE",
"organizationId": 1001,
"organizationIds": "string",
"filter": "string"
}),
});
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/campaign/stats/xlsx',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
json={
'service': 'NONE',
'organizationId': 1001,
'organizationIds': 'string',
'filter': 'string'
},
)
response.raise_for_status()
result = response.json()
<?php
$payload = <<<'JSON'
{
"service": "NONE",
"organizationId": 1001,
"organizationIds": "string",
"filter": "string"
}
JSON;
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/campaign/stats/xlsx',
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/campaign/stats/xlsx", strings.NewReader(`{
"service": "NONE",
"organizationId": 1001,
"organizationIds": "string",
"filter": "string"
}`))
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/campaign/stats/xlsx"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"service": "NONE",
"organizationId": 1001,
"organizationIds": "string",
"filter": "string"
}
"""))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
TmsTask
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
id |
integer · int64 | 否 | Id. |
status |
stringCREATED, RUNNING, FINISHED, ERROR, RESTARTING, INTERRUPTING, INTERRUPTED, STOPPED, EXCEPTION | 否 | Status. |
type |
stringWILDBERRIES_CREATE_CARD, NATIONAL_CATALOG_CREATE_CARD, OZON_CREATE_CARD, OZON_CARDS_IMPORT, IMPORT_FBS_ORDERS, UPLOAD_PHOTOGRAPHY, WILDBERRIES_UPDATE_PRICE, WILDBERRIES_CARD_IMPORT, WILDBERRIES_CARD_UPDATE, SELSUP_STOCKS, REFRESH_PHOTOGRAPHY, SUPPLYING_QUANTITY_TASK, EXPORT_PRICE, OZON_UPDATE_PRICE, WILDBERRIES_FILE_TASK, YANDEX_MARKET_CARD_CREATE, OZON_CARD_UPDATE_TASK, OZON_IMPORT_STAT_TASK, WILDBERRIES_PROFIT_STAT_TASK, ALIEXPRESS_CREATE_CARD_TASK, ALIEXPRESS_UPDATE_CARD_TASK, PRICES_IMPORT_TASK, WILDBERRIES_PRICES_TASK, YANDEX_MARKET_CARD_IMPORT, STOCKS_UPDATE, WILDBERRIES_STOCKS_IMPORT_TASK, WILDBERRIES_ORDERS_AND_SALES_TASK, WILDBERRIES_INCOMES_IMPORT_TASK, OZON_STOCKS_IMPORT_TASK, TURNOVER_DOCUMENTS_TASK, INTRODUCE_WMS_ITEMS_TASK, PRODUCTS_FILE_TASK, MODELS_FILE_TASK, UPDATE_PRODUCT_CODES_TASK, INTRODUCE_CODES_TASK, PRODUCTS_IMPORT_TASK, PRICES_FILE_TASK, YANDEX_MARKET_UPDATE_PRICE_TASK, IMPORT_STOCKS_TASK, MOY_SKLAD_EXPORT_ORDERS, MERGE_PRODUCTS_TASK, PRODUCTS_WILDBERRIES_EXCEL_IMPORT_TASK, MOY_SKLAD_CREATE_CARD, IMPORT_FBO_STOCKS_FROM_FILE, CREATE_WMS_ITEMS, MOY_SKLAD_CARDS_IMPORT, PROMOTION_FILE, UNUSED_1, UNUSED, PRODUCT_ANALYTICS_FILE_TASK, PROMOTION_RESET_FILE, MOY_SKLAD_IMPORT_ORDERS, FINANCE_REPORT_FILE_TASK, YML_FILE_EXPORT, PRODUCT_BALANCE_REPORT_FILE_TASK, CURRENT_PRODUCT_BALANCE_FILE_TASK, IMPORT_TRANSACTIONS, MATCH_UNREGISTERED_PROFIT_REPORT_TASK, UPDATE_AVERAGE_SERVICE_EXPENSES_TASK, YANDEX_MARKET_ORDER_IMPORT_STAT_TASK, ABC_REPORT_FILE_TASK, MODEL_CONTRACTORS_IMPORT, MODEL_CONTRACTORS_EXPORT, BANK_TRANSACTION_IMPORT_FILE_TASK, YML_IMPORT_TASK, SALES_DYNAMIC_REPORT_FILE_TASK, UPDATE_FBS_ORDERS, EXPORT_TRANSACTION_IN_EXCEL_FILE_TASK, IMPORT_TRANSACTION_FROM_EXCEL_FILE_TASK, EXPORT_PROFIT_REPORT_FILE_TASK, IMPORT_PROFIT_REPORT_FROM_EXCEL_FILE_TASK, IMPORT_REALIZATION_REPORT_TASK, STOCK_RECONCILIATION, ORDER_REPORT_FILE_TASK, GET_WB_FBO_ORDER_FROM_PROFIT_REPORT_TASK, TO_QUANTITY_STORAGE_METHOD, APPLY_RECONCILIATION, OZON_IMPORT_FBO_ORDERS_TASK, UPDATE_PURCHASE_PRICE_IN_PROFIT_REPORT_TASK, FBS_LABELS, MERGE_PRODUCT_STOCKS, CREATE_ORDER_FROM_FILE, ALIEXPRESS_CARD_IMPORT, PRICE_LIST_IMPORT, WB_STOCK_REPORT_FILE, CONTRACTORS_REPORT_FILE, PRODUCTS_SBER_MEGA_MARKET_EXCEL_IMPORT_TASK, EXPORT_PROBLEMATIC_PRODUCT_REPORT, PLAN_SUPPLY_REPORT_TASK, PLAN_FACT_SALES_REPORT_FILE, IMPORT_PLAN_SALES_FROM_EXCEL_FILE_TASK, EXPORT_PLAN_SALES_EXCEL_FILE_TASK, ORDERS_TO_BUY_FILE_TASK, MERGE_PRICE_ON_OTHER_MP_TASK, MATCH_PRODUCT_LAST_OPERATION_DATE_TASK, PROBLEMATIC_PRODUCT_PRICE_FILE_TASK, CATEGORIES_IMPORT_EXCEL_TASK, AVITO_CARD_IMPORT, UPDATE_OLD_WB_ORDER_STATUSES_TASK, PRESTA_SHOP_IMPORT_TASK, PRODUCTS_AVITO_EXCEL_IMPORT_TASK, FBO_STOCK_RECONCILIATION_TASK, APPLY_FBO_RECONCILIATION_TASK, EXPORT_REPRICE_PRODUCT_CONFIG_TASK, IMPORT_REPRICE_PRODUCT_CONFIG_TASK, OZON_CASH_FLOW_STATEMENT_IMPORT_TASK, IMPORT_PROMOTION_STRATEGY_FILE_TASK, UPDATE_ORDER_DELIVERY_INFO_TASK, BILLING_OPERATION_TASK, SET_PURCHASE_PERCENT_TASK, REMOVE_PRODUCT_IMAGES_TASK, STRUCTURE_TURNOVER_TASK, OZON_NEW_UPDATE_PRICE, REPLACE_PRODUCT_IMAGE_TASK, UPDATE_OZON_PROMOTION_DATA_TASK, WILDBERRIES_IMPORT_CAMPAIGN_TASK, WILDBERRIES_STORAGE_REPORT_TASK, WEBASYST_LINK_ARTICLE_TASK, DELIVERY_SERVICE_LABELS, HAND_ON_PULSE_FILE_TASK, ITEMS_INCOME_EXCEL_TASK, UPDATE_SETS_EXCEL_TASK, DELETE_PROFIT_REPORTS_BY_FILE_HISTORY_IDS_TASK, EXPORT_PRODUCT_SETS_TASK, AMAZON_CARD_IMPORT, IMPORT_ACCEPTED_PRODUCTS_TASK, ADD_ORDER_PRODUCT_FROM_FILE_TASK, EXPORT_ITEM_HISTORY_FILE_TASK, WILDBERRIES_IMPORT_CAMPAIGN_BY_EXCEL_TASK, REMOVE_CLIENT_ORGANIZATION, EBAY_CARD_IMPORT_TASK, PRODUCTS_IMPORT_FROM_ORGANIZATION_TASK, IMPORT_FBO_ORDERS, LAMODA_CARD_IMPORT, UPDATE_WB_PROMOTION_DATA_TASK, IMPORT_RETURNS_REPORT_TASK, UPDATE_PROMOTION_DATA_TASK, RESTORE_CLIENT_ORGANIZATION, LEROY_MERLIN_CARD_IMPORT, YANDEX_MARKET_STOCKS_IMPORT_TASK, WILDBERRIES_IMPORT_NM_REPORT_TASK, ORDER_ANALYTICS_FILE_TASK, CLIENT_DATABASE_MOVE_TASK, FAST_CARD_IMPORT, EXPORT_PRODUCT_CODE, INSALES_CARD_IMPORT_TASK, REMOVE_PRODUCT_VIDEOS_TASK, UPDATE_CARDS_TASK, FIND_UNPROFITABLE_PRODUCTS_TASK, FIND_UNPURCHASED_PRODUCTS_TASK, WALMART_CARD_IMPORT, PRODUCT_GROUPS_TASK, CONTRACTOR_ARTICLE_EXPORT_TASK, CONTRACTOR_ARTICLE_IMPORT_TASK, CURRENCY_CONVERSION_TASK, UPDATE_SUPPLY_PLAN_REPORT_TASK, EXPORT_SUPPLY_PLAN_REPORT_FILE_TASK, CHECK_STOCK_ORDER, PHOTOGRAPHY_EXCEL, PREPARE_FINDIR_DATA_TASK, CARD_SPLITTING_TASK, EXPORT_IMAGE_UPDATES_TEMPLATE_TASK, IMPORT_IMAGE_UPDATES_TASK, PREPARE_PRODUCT_HAND_ON_PULSE_TASK, UPDATE_OZON_AVERAGE_DELIVERY_TIME, UPDATE_COMMISSIONS_TASK, WOOCOMMERCE_CARD_IMPORT, UPDATE_FBS_STOCKS_HISTORY, RETURNS_FILE_TASK, FAST_PRODUCTS_IMPORT_TASK, ANALYZE_PRODUCT_CARDS_TASK, DETMIR_CARD_IMPORT, MATCH_OZON_REALIZATION_REPORT_TASK, MAGNIT_IMPORT_PRODUCTS_TASK, UPDATE_PURCHASE_PRICE_FROM_STOCKS_IN_PROFIT_REPORT_TASK, MOY_SKLAD_FBO_MP_DATES_FIX, PRICE_HISTORY_FILE_TASK, FBM_ORDERS_IMPORT_TASK, UZUM_IMPORT_PRODUCTS_TASK, OPENCART_CARD_IMPORT, CARDS_IMPORT, OZON_CROSSDOCK_TRANSIT_ROUTES_TASK, UNUSED_2, OZON_IMPORT_SALES_FUNNEL_REPORT_TASK, WRITE_OFF_PRODUCTS_FILE_TASK, CLIENT_DATABASE_CREATE_TASK, UPDATE_FBS_LABELS_TASK, REBUILD_PROFIT_REPORT_HOURLY_AGGREGATE_TASK, OZON_IMPORT_CAMPAIGN_TASK, EXPORT_SUPPLY_PLAN_FILE_TASK, IMPORT_SUPPLY_PLAN_FILE_TASK, CREATE_SERVICE_CARDS, WAREHOUSE_ECONOMICS_FILE_TASK, UPDATE_WILDBERRIES_ACQUIRING_RATE_TASK, PRODUCT_SALES_FORECAST_TASK, UPDATE_PRODUCT_CODES_STATUSES_TASK, MARKETPLACE_UPDATE_PRICE_TASK, UZUM_IMPORT_STAT_TASK, CAMPAIGN_STATS_FILE_TASK, OZON_FBO_WORKFLOW_TASK, EXPORT_CERTIFICATE_TEMPLATE_TASK, IMPORT_CERTIFICATES_TASK, REBUILD_LOCAL_ORDER_PROFIT_REPORT_TASK, SHOPIFY_CARD_IMPORT | 否 | Type. |
name |
string | 否 | 姓名. |
clientId |
integer · int64 | 否 | 客户身份证. |
entityId |
integer · int64 | 否 | 实体身份证 |
progress |
integer · int32 | 否 | 进步. |
processedQuantity |
integer · int32 | 否 | 处理量 |
organizationId |
integer · int64 | 否 | 组织身份证. |
priority |
integer · int32 | 否 | 优先考虑. |
properties |
string | 否 | 房产. |
message |
string | 否 | 信息. |
messageParams |
string | 否 | 消息帕拉姆. |
createdDate |
string · date-time | 否 | 创造日期. |
startDate |
string · date-time | 否 | 开始日期. |
finishDate |
string · date-time | 否 | 终结日期. |
url |
string | 否 | 查看一个URL. |
inputFileUrl |
string | 否 | 输入文件URL. |
retryNumber |
integer · int32 | 否 | 复试号码. |
userId |
integer · int32 | 否 | 用户身份证 |
retryDate |
string · date-time | 否 | 试一次. |
debug |
boolean | 否 | 调试. |
forcedStart |
boolean | 否 | 强迫开始. |
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 | 否 | 服务. |
lang |
string | 否 | Lang. |
{
"id": 1001,
"status": "CREATED",
"type": "WILDBERRIES_CREATE_CARD",
"name": "Example",
"clientId": 1001,
"entityId": 1001
}应用错误通常以 JSON, error,localMessage和 params为回归. 如何返回应用错误 ↑
auth_requiredAuthorization 缺失,空,或包含无效的代币.
error_access_denied代币存在,但它的作用不能执行这个操作.
error_unknown节省请求时间和联系支持;不要盲目重新尝试突变.
error_analytics_access_denied应用逻辑中使用稳定的error_analytics_access_denied代码;localMessage包含上述翻译.
error_no_marketplace应用逻辑中使用稳定的error_no_marketplace代码;localMessage包含上述翻译.
error_no_organization应用逻辑中使用稳定的error_no_organization代码;localMessage包含上述翻译.
error_subscription_expired应用逻辑中使用稳定的error_subscription_expired代码;localMessage包含上述翻译.
error_unsupported_service应用逻辑中使用稳定的error_unsupported_service代码;localMessage包含上述翻译.
error_user_does_not_have_this_organization应用逻辑中使用稳定的error_user_does_not_have_this_organization代码;localMessage包含上述翻译.
/api/campaign/createCampaign使用 POST 创建活动
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
organizationId |
integer · int64 | 是 | 组织身份证. |
application/jsonCampaign| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
id |
integer · int64 | 否 | Id. |
externalId |
integer · int64 | 否 | 其他身份证. |
name |
string | 否 | 姓名. |
campaignName |
string | 否 | 竞选名字. |
type |
stringIN_CATALOG, IN_CARD, IN_SEARCH, IN_MAIN, AUTO, IN_SEARCH_AND_CATALOG, BRAND_SHELF, UNKNOWN | 否 | Type. |
statusType |
stringDELETED, READY, FINISHED, CANCELLED, ACTIVE, PAUSED, UNKNOWN, ARCHIVED | 否 | 状态类型. |
productId |
integer · int64 | 否 | 产品身份证 |
externalProductId |
integer · int64 | 否 | 外部产品ID. |
createDate |
string · date-time | 否 | 创建日期. |
endDate |
string · date-time | 否 | 终结日期. |
startDate |
string · date-time | 否 | 开始日期. |
sum |
integer · int64 | 否 | 总计. |
writeOffType |
stringBALANCE, NET, BONUS | 否 | 写下"不写字". |
onPause |
boolean | 否 | 在休息. |
clientId |
integer · int64 | 否 | 客户身份证. |
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 | 否 | 服务. |
categoryId |
integer · int64 | 否 | 类别的ID. |
categoryName |
string | 否 | 类别名称 |
campaignType |
string | 否 | 运动类型. |
dateStatImport |
string · date-time | 否 | 进口日期数据 |
nms |
string | 否 | 没有什么. |
paymentType |
string | 否 | 支付类型 |
curl --request POST 'https://api.selsup.ru/api/campaign/createCampaign?organizationId=1001' \
--header 'Authorization: YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"id": 1001,
"externalId": 1001,
"name": "Example",
"campaignName": "Example",
"type": "IN_CATALOG",
"statusType": "DELETED"
}'
const response = await fetch('https://api.selsup.ru/api/campaign/createCampaign?organizationId=1001', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"id": 1001,
"externalId": 1001,
"name": "Example",
"campaignName": "Example",
"type": "IN_CATALOG",
"statusType": "DELETED"
}),
});
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/campaign/createCampaign?organizationId=1001', {
method: 'POST',
headers: {
Authorization: process.env.SELSUP_API_TOKEN!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"id": 1001,
"externalId": 1001,
"name": "Example",
"campaignName": "Example",
"type": "IN_CATALOG",
"statusType": "DELETED"
}),
});
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/campaign/createCampaign?organizationId=1001',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
json={
'id': 1001,
'externalId': 1001,
'name': 'Example',
'campaignName': 'Example',
'type': 'IN_CATALOG',
'statusType': 'DELETED'
},
)
response.raise_for_status()
result = response.json()
<?php
$payload = <<<'JSON'
{
"id": 1001,
"externalId": 1001,
"name": "Example",
"campaignName": "Example",
"type": "IN_CATALOG",
"statusType": "DELETED"
}
JSON;
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/campaign/createCampaign?organizationId=1001',
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/campaign/createCampaign?organizationId=1001", strings.NewReader(`{
"id": 1001,
"externalId": 1001,
"name": "Example",
"campaignName": "Example",
"type": "IN_CATALOG",
"statusType": "DELETED"
}`))
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/campaign/createCampaign?organizationId=1001"))
.header("Authorization", System.getenv("SELSUP_API_TOKEN"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"id": 1001,
"externalId": 1001,
"name": "Example",
"campaignName": "Example",
"type": "IN_CATALOG",
"statusType": "DELETED"
}
"""))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}
Campaign
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
id |
integer · int64 | 否 | Id. |
externalId |
integer · int64 | 否 | 其他身份证. |
name |
string | 否 | 姓名. |
campaignName |
string | 否 | 竞选名字. |
type |
stringIN_CATALOG, IN_CARD, IN_SEARCH, IN_MAIN, AUTO, IN_SEARCH_AND_CATALOG, BRAND_SHELF, UNKNOWN | 否 | Type. |
statusType |
stringDELETED, READY, FINISHED, CANCELLED, ACTIVE, PAUSED, UNKNOWN, ARCHIVED | 否 | 状态类型. |
productId |
integer · int64 | 否 | 产品身份证 |
externalProductId |
integer · int64 | 否 | 外部产品ID. |
createDate |
string · date-time | 否 | 创建日期. |
endDate |
string · date-time | 否 | 终结日期. |
startDate |
string · date-time | 否 | 开始日期. |
sum |
integer · int64 | 否 | 总计. |
writeOffType |
stringBALANCE, NET, BONUS | 否 | 写下"不写字". |
onPause |
boolean | 否 | 在休息. |
clientId |
integer · int64 | 否 | 客户身份证. |
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 | 否 | 服务. |
categoryId |
integer · int64 | 否 | 类别的ID. |
categoryName |
string | 否 | 类别名称 |
campaignType |
string | 否 | 运动类型. |
dateStatImport |
string · date-time | 否 | 进口日期数据 |
nms |
string | 否 | 没有什么. |
paymentType |
string | 否 | 支付类型 |
{
"id": 1001,
"externalId": 1001,
"name": "Example",
"campaignName": "Example",
"type": "IN_CATALOG",
"statusType": "DELETED"
}应用错误通常以 JSON, error,localMessage和 params为回归. 如何返回应用错误 ↑
auth_requiredAuthorization 缺失,空,或包含无效的代币.
error_access_denied代币存在,但它的作用不能执行这个操作.
error_unknown节省请求时间和联系支持;不要盲目重新尝试突变.
error_no_client应用逻辑中使用稳定的error_no_client代码;localMessage包含上述翻译.
error_organization_not_found应用逻辑中使用稳定的error_organization_not_found代码;localMessage包含上述翻译.
error_prepared_integration_not_found应用逻辑中使用稳定的error_prepared_integration_not_found代码;localMessage包含上述翻译.
error_service_not_supported应用逻辑中使用稳定的error_service_not_supported代码;localMessage包含上述翻译.
error_subscription_expired应用逻辑中使用稳定的error_subscription_expired代码;localMessage包含上述翻译.
error_token_expired_or_revoked应用逻辑中使用稳定的error_token_expired_or_revoked代码;localMessage包含上述翻译.
error_wildberries_api应用逻辑中使用稳定的error_wildberries_api代码;localMessage包含上述翻译.
/api/campaign/updateCampaigns使用 GET /api/campaign/updateCampaigns.的进口活动
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
organizationId |
integer · int64 | 是 | 组织身份证. |
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 | 是 | 服务. |
curl --request GET 'https://api.selsup.ru/api/campaign/updateCampaigns?organizationId=1001&service=NONE' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/campaign/updateCampaigns?organizationId=1001&service=NONE', {
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/campaign/updateCampaigns?organizationId=1001&service=NONE', {
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/campaign/updateCampaigns?organizationId=1001&service=NONE',
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/campaign/updateCampaigns?organizationId=1001&service=NONE',
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/campaign/updateCampaigns?organizationId=1001&service=NONE", 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/campaign/updateCampaigns?organizationId=1001&service=NONE"))
.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());
}
}
TmsTask
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
id |
integer · int64 | 否 | Id. |
status |
stringCREATED, RUNNING, FINISHED, ERROR, RESTARTING, INTERRUPTING, INTERRUPTED, STOPPED, EXCEPTION | 否 | Status. |
type |
stringWILDBERRIES_CREATE_CARD, NATIONAL_CATALOG_CREATE_CARD, OZON_CREATE_CARD, OZON_CARDS_IMPORT, IMPORT_FBS_ORDERS, UPLOAD_PHOTOGRAPHY, WILDBERRIES_UPDATE_PRICE, WILDBERRIES_CARD_IMPORT, WILDBERRIES_CARD_UPDATE, SELSUP_STOCKS, REFRESH_PHOTOGRAPHY, SUPPLYING_QUANTITY_TASK, EXPORT_PRICE, OZON_UPDATE_PRICE, WILDBERRIES_FILE_TASK, YANDEX_MARKET_CARD_CREATE, OZON_CARD_UPDATE_TASK, OZON_IMPORT_STAT_TASK, WILDBERRIES_PROFIT_STAT_TASK, ALIEXPRESS_CREATE_CARD_TASK, ALIEXPRESS_UPDATE_CARD_TASK, PRICES_IMPORT_TASK, WILDBERRIES_PRICES_TASK, YANDEX_MARKET_CARD_IMPORT, STOCKS_UPDATE, WILDBERRIES_STOCKS_IMPORT_TASK, WILDBERRIES_ORDERS_AND_SALES_TASK, WILDBERRIES_INCOMES_IMPORT_TASK, OZON_STOCKS_IMPORT_TASK, TURNOVER_DOCUMENTS_TASK, INTRODUCE_WMS_ITEMS_TASK, PRODUCTS_FILE_TASK, MODELS_FILE_TASK, UPDATE_PRODUCT_CODES_TASK, INTRODUCE_CODES_TASK, PRODUCTS_IMPORT_TASK, PRICES_FILE_TASK, YANDEX_MARKET_UPDATE_PRICE_TASK, IMPORT_STOCKS_TASK, MOY_SKLAD_EXPORT_ORDERS, MERGE_PRODUCTS_TASK, PRODUCTS_WILDBERRIES_EXCEL_IMPORT_TASK, MOY_SKLAD_CREATE_CARD, IMPORT_FBO_STOCKS_FROM_FILE, CREATE_WMS_ITEMS, MOY_SKLAD_CARDS_IMPORT, PROMOTION_FILE, UNUSED_1, UNUSED, PRODUCT_ANALYTICS_FILE_TASK, PROMOTION_RESET_FILE, MOY_SKLAD_IMPORT_ORDERS, FINANCE_REPORT_FILE_TASK, YML_FILE_EXPORT, PRODUCT_BALANCE_REPORT_FILE_TASK, CURRENT_PRODUCT_BALANCE_FILE_TASK, IMPORT_TRANSACTIONS, MATCH_UNREGISTERED_PROFIT_REPORT_TASK, UPDATE_AVERAGE_SERVICE_EXPENSES_TASK, YANDEX_MARKET_ORDER_IMPORT_STAT_TASK, ABC_REPORT_FILE_TASK, MODEL_CONTRACTORS_IMPORT, MODEL_CONTRACTORS_EXPORT, BANK_TRANSACTION_IMPORT_FILE_TASK, YML_IMPORT_TASK, SALES_DYNAMIC_REPORT_FILE_TASK, UPDATE_FBS_ORDERS, EXPORT_TRANSACTION_IN_EXCEL_FILE_TASK, IMPORT_TRANSACTION_FROM_EXCEL_FILE_TASK, EXPORT_PROFIT_REPORT_FILE_TASK, IMPORT_PROFIT_REPORT_FROM_EXCEL_FILE_TASK, IMPORT_REALIZATION_REPORT_TASK, STOCK_RECONCILIATION, ORDER_REPORT_FILE_TASK, GET_WB_FBO_ORDER_FROM_PROFIT_REPORT_TASK, TO_QUANTITY_STORAGE_METHOD, APPLY_RECONCILIATION, OZON_IMPORT_FBO_ORDERS_TASK, UPDATE_PURCHASE_PRICE_IN_PROFIT_REPORT_TASK, FBS_LABELS, MERGE_PRODUCT_STOCKS, CREATE_ORDER_FROM_FILE, ALIEXPRESS_CARD_IMPORT, PRICE_LIST_IMPORT, WB_STOCK_REPORT_FILE, CONTRACTORS_REPORT_FILE, PRODUCTS_SBER_MEGA_MARKET_EXCEL_IMPORT_TASK, EXPORT_PROBLEMATIC_PRODUCT_REPORT, PLAN_SUPPLY_REPORT_TASK, PLAN_FACT_SALES_REPORT_FILE, IMPORT_PLAN_SALES_FROM_EXCEL_FILE_TASK, EXPORT_PLAN_SALES_EXCEL_FILE_TASK, ORDERS_TO_BUY_FILE_TASK, MERGE_PRICE_ON_OTHER_MP_TASK, MATCH_PRODUCT_LAST_OPERATION_DATE_TASK, PROBLEMATIC_PRODUCT_PRICE_FILE_TASK, CATEGORIES_IMPORT_EXCEL_TASK, AVITO_CARD_IMPORT, UPDATE_OLD_WB_ORDER_STATUSES_TASK, PRESTA_SHOP_IMPORT_TASK, PRODUCTS_AVITO_EXCEL_IMPORT_TASK, FBO_STOCK_RECONCILIATION_TASK, APPLY_FBO_RECONCILIATION_TASK, EXPORT_REPRICE_PRODUCT_CONFIG_TASK, IMPORT_REPRICE_PRODUCT_CONFIG_TASK, OZON_CASH_FLOW_STATEMENT_IMPORT_TASK, IMPORT_PROMOTION_STRATEGY_FILE_TASK, UPDATE_ORDER_DELIVERY_INFO_TASK, BILLING_OPERATION_TASK, SET_PURCHASE_PERCENT_TASK, REMOVE_PRODUCT_IMAGES_TASK, STRUCTURE_TURNOVER_TASK, OZON_NEW_UPDATE_PRICE, REPLACE_PRODUCT_IMAGE_TASK, UPDATE_OZON_PROMOTION_DATA_TASK, WILDBERRIES_IMPORT_CAMPAIGN_TASK, WILDBERRIES_STORAGE_REPORT_TASK, WEBASYST_LINK_ARTICLE_TASK, DELIVERY_SERVICE_LABELS, HAND_ON_PULSE_FILE_TASK, ITEMS_INCOME_EXCEL_TASK, UPDATE_SETS_EXCEL_TASK, DELETE_PROFIT_REPORTS_BY_FILE_HISTORY_IDS_TASK, EXPORT_PRODUCT_SETS_TASK, AMAZON_CARD_IMPORT, IMPORT_ACCEPTED_PRODUCTS_TASK, ADD_ORDER_PRODUCT_FROM_FILE_TASK, EXPORT_ITEM_HISTORY_FILE_TASK, WILDBERRIES_IMPORT_CAMPAIGN_BY_EXCEL_TASK, REMOVE_CLIENT_ORGANIZATION, EBAY_CARD_IMPORT_TASK, PRODUCTS_IMPORT_FROM_ORGANIZATION_TASK, IMPORT_FBO_ORDERS, LAMODA_CARD_IMPORT, UPDATE_WB_PROMOTION_DATA_TASK, IMPORT_RETURNS_REPORT_TASK, UPDATE_PROMOTION_DATA_TASK, RESTORE_CLIENT_ORGANIZATION, LEROY_MERLIN_CARD_IMPORT, YANDEX_MARKET_STOCKS_IMPORT_TASK, WILDBERRIES_IMPORT_NM_REPORT_TASK, ORDER_ANALYTICS_FILE_TASK, CLIENT_DATABASE_MOVE_TASK, FAST_CARD_IMPORT, EXPORT_PRODUCT_CODE, INSALES_CARD_IMPORT_TASK, REMOVE_PRODUCT_VIDEOS_TASK, UPDATE_CARDS_TASK, FIND_UNPROFITABLE_PRODUCTS_TASK, FIND_UNPURCHASED_PRODUCTS_TASK, WALMART_CARD_IMPORT, PRODUCT_GROUPS_TASK, CONTRACTOR_ARTICLE_EXPORT_TASK, CONTRACTOR_ARTICLE_IMPORT_TASK, CURRENCY_CONVERSION_TASK, UPDATE_SUPPLY_PLAN_REPORT_TASK, EXPORT_SUPPLY_PLAN_REPORT_FILE_TASK, CHECK_STOCK_ORDER, PHOTOGRAPHY_EXCEL, PREPARE_FINDIR_DATA_TASK, CARD_SPLITTING_TASK, EXPORT_IMAGE_UPDATES_TEMPLATE_TASK, IMPORT_IMAGE_UPDATES_TASK, PREPARE_PRODUCT_HAND_ON_PULSE_TASK, UPDATE_OZON_AVERAGE_DELIVERY_TIME, UPDATE_COMMISSIONS_TASK, WOOCOMMERCE_CARD_IMPORT, UPDATE_FBS_STOCKS_HISTORY, RETURNS_FILE_TASK, FAST_PRODUCTS_IMPORT_TASK, ANALYZE_PRODUCT_CARDS_TASK, DETMIR_CARD_IMPORT, MATCH_OZON_REALIZATION_REPORT_TASK, MAGNIT_IMPORT_PRODUCTS_TASK, UPDATE_PURCHASE_PRICE_FROM_STOCKS_IN_PROFIT_REPORT_TASK, MOY_SKLAD_FBO_MP_DATES_FIX, PRICE_HISTORY_FILE_TASK, FBM_ORDERS_IMPORT_TASK, UZUM_IMPORT_PRODUCTS_TASK, OPENCART_CARD_IMPORT, CARDS_IMPORT, OZON_CROSSDOCK_TRANSIT_ROUTES_TASK, UNUSED_2, OZON_IMPORT_SALES_FUNNEL_REPORT_TASK, WRITE_OFF_PRODUCTS_FILE_TASK, CLIENT_DATABASE_CREATE_TASK, UPDATE_FBS_LABELS_TASK, REBUILD_PROFIT_REPORT_HOURLY_AGGREGATE_TASK, OZON_IMPORT_CAMPAIGN_TASK, EXPORT_SUPPLY_PLAN_FILE_TASK, IMPORT_SUPPLY_PLAN_FILE_TASK, CREATE_SERVICE_CARDS, WAREHOUSE_ECONOMICS_FILE_TASK, UPDATE_WILDBERRIES_ACQUIRING_RATE_TASK, PRODUCT_SALES_FORECAST_TASK, UPDATE_PRODUCT_CODES_STATUSES_TASK, MARKETPLACE_UPDATE_PRICE_TASK, UZUM_IMPORT_STAT_TASK, CAMPAIGN_STATS_FILE_TASK, OZON_FBO_WORKFLOW_TASK, EXPORT_CERTIFICATE_TEMPLATE_TASK, IMPORT_CERTIFICATES_TASK, REBUILD_LOCAL_ORDER_PROFIT_REPORT_TASK, SHOPIFY_CARD_IMPORT | 否 | Type. |
name |
string | 否 | 姓名. |
clientId |
integer · int64 | 否 | 客户身份证. |
entityId |
integer · int64 | 否 | 实体身份证 |
progress |
integer · int32 | 否 | 进步. |
processedQuantity |
integer · int32 | 否 | 处理量 |
organizationId |
integer · int64 | 否 | 组织身份证. |
priority |
integer · int32 | 否 | 优先考虑. |
properties |
string | 否 | 房产. |
message |
string | 否 | 信息. |
messageParams |
string | 否 | 消息帕拉姆. |
createdDate |
string · date-time | 否 | 创造日期. |
startDate |
string · date-time | 否 | 开始日期. |
finishDate |
string · date-time | 否 | 终结日期. |
url |
string | 否 | 查看一个URL. |
inputFileUrl |
string | 否 | 输入文件URL. |
retryNumber |
integer · int32 | 否 | 复试号码. |
userId |
integer · int32 | 否 | 用户身份证 |
retryDate |
string · date-time | 否 | 试一次. |
debug |
boolean | 否 | 调试. |
forcedStart |
boolean | 否 | 强迫开始. |
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 | 否 | 服务. |
lang |
string | 否 | Lang. |
{
"id": 1001,
"status": "CREATED",
"type": "WILDBERRIES_CREATE_CARD",
"name": "Example",
"clientId": 1001,
"entityId": 1001
}应用错误通常以 JSON, error,localMessage和 params为回归. 如何返回应用错误 ↑
auth_requiredAuthorization 缺失,空,或包含无效的代币.
error_access_denied代币存在,但它的作用不能执行这个操作.
error_unknown节省请求时间和联系支持;不要盲目重新尝试突变.
error_analytics_access_denied应用逻辑中使用稳定的error_analytics_access_denied代码;localMessage包含上述翻译.
error_unsupported_service应用逻辑中使用稳定的error_unsupported_service代码;localMessage包含上述翻译.
/api/campaign/reloadCampaignStats使用 GET /api/campaign/reloadCampaignStats.重新加载竞选统计数据
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
dateFrom |
string · date | 是 | 时间从. |
dateTo |
string · date | 是 | 约会到. |
organizationId |
integer · int64 | 是 | 组织身份证. |
isExpensesOnly |
boolean | 否 | 只有费用. |
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 | 是 | 服务. |
curl --request GET 'https://api.selsup.ru/api/campaign/reloadCampaignStats?dateFrom=2026-01-15&dateTo=2026-01-15&organizationId=1001&service=NONE' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/campaign/reloadCampaignStats?dateFrom=2026-01-15&dateTo=2026-01-15&organizationId=1001&service=NONE', {
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 response: Response = await fetch('https://api.selsup.ru/api/campaign/reloadCampaignStats?dateFrom=2026-01-15&dateTo=2026-01-15&organizationId=1001&service=NONE', {
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');
}
import os
import requests
response = requests.get(
'https://api.selsup.ru/api/campaign/reloadCampaignStats?dateFrom=2026-01-15&dateTo=2026-01-15&organizationId=1001&service=NONE',
headers={'Authorization': os.environ['SELSUP_API_TOKEN']},
)
response.raise_for_status()
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.selsup.ru/api/campaign/reloadCampaignStats?dateFrom=2026-01-15&dateTo=2026-01-15&organizationId=1001&service=NONE',
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/campaign/reloadCampaignStats?dateFrom=2026-01-15&dateTo=2026-01-15&organizationId=1001&service=NONE", 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/campaign/reloadCampaignStats?dateFrom=2026-01-15&dateTo=2026-01-15&organizationId=1001&service=NONE"))
.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());
}
}
答案没有身体.
应用错误通常以 JSON, error,localMessage和 params为回归. 如何返回应用错误 ↑
auth_requiredAuthorization 缺失,空,或包含无效的代币.
error_access_denied代币存在,但它的作用不能执行这个操作.
error_unknown节省请求时间和联系支持;不要盲目重新尝试突变.
/api/campaign/getWildberriesSubjects使用GET/api/campaign/getWildberriesSubjects.获取Wildberries主题
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
query |
string | 是 | 问问. |
limit |
integer · int32 | 是 | 限制. |
organizationId |
integer · int64 | 是 | 组织身份证. |
curl --request GET 'https://api.selsup.ru/api/campaign/getWildberriesSubjects?query=string&limit=50&organizationId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/campaign/getWildberriesSubjects?query=string&limit=50&organizationId=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/campaign/getWildberriesSubjects?query=string&limit=50&organizationId=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/campaign/getWildberriesSubjects?query=string&limit=50&organizationId=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/campaign/getWildberriesSubjects?query=string&limit=50&organizationId=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/campaign/getWildberriesSubjects?query=string&limit=50&organizationId=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/campaign/getWildberriesSubjects?query=string&limit=50&organizationId=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());
}
}
WildberriesType[]
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
id |
integer · int64 | 否 | Id. |
name |
string | 否 | 姓名. |
published |
boolean | 否 | 发表了. |
hasSize |
boolean | 否 | 有大小. |
monoBoxMinQuantity |
integer · int32 | 否 | 单盒子最小量. |
monoType |
stringALWAYS, NEVER, MONO_IF_MIN_PRICE | 否 | 单一类型. |
monoMinPrice |
integer · int32 | 否 | 单小价格. |
hasParent |
boolean | 否 | 有父母. |
parentId |
integer · int64 | 否 | 亲人身份证. |
wildberriesId |
integer · int64 | 否 | 果的身份证. |
lastSyncDate |
string · date-time | 否 | 最后的同步日期. |
notChangedDays |
integer · int32 | 否 | 没有改变的日子. |
commission |
number · double | 否 | 委员会. |
fbsCommission |
number · double | 否 | 联邦调查局. |
fbwCommission |
number · double | 否 | 联邦调查委员会. |
dbsCommission |
number · double | 否 | 美国联邦调查局 |
edbsCommission |
number · double | 否 | 艾德斯委员会. |
cAndCCommission |
number · double | 否 | 委员会. |
bookingCommission |
number · double | 否 | 预订委员会. |
logisticPrice |
integer · int32 | 否 | 后勤价格. |
storagePrice |
number · double | 否 | 存储价格. |
acceptancePrice |
number · double | 否 | 接受价格. |
needDimensions |
boolean | 否 | 需要维度. |
purchasePercentAvg |
number · double | 否 | 购买百分比 Avg. |
purchasePercentMin |
number · double | 否 | 购买百分比 |
photoAvg |
integer · int32 | 否 | 照片来源: |
photoMin |
integer · int32 | 否 | 照片: |
drrAvg |
number · double | 否 | 艾夫博士. |
drrMin |
number · double | 否 | 博士. |
marginAvg |
number · double | 否 | 边缘 Avg. |
marginMin |
number · double | 否 | 边缘分. |
candCCommission |
number · double | 否 | 委员会. |
[
"string"
]应用错误通常以 JSON, error,localMessage和 params为回归. 如何返回应用错误 ↑
auth_requiredAuthorization 缺失,空,或包含无效的代币.
error_access_denied代币存在,但它的作用不能执行这个操作.
error_unknown节省请求时间和联系支持;不要盲目重新尝试突变.
error_organization_not_found应用逻辑中使用稳定的error_organization_not_found代码;localMessage包含上述翻译.
error_prepared_integration_not_found应用逻辑中使用稳定的error_prepared_integration_not_found代码;localMessage包含上述翻译.
error_subscription_expired应用逻辑中使用稳定的error_subscription_expired代码;localMessage包含上述翻译.
error_token_expired_or_revoked应用逻辑中使用稳定的error_token_expired_or_revoked代码;localMessage包含上述翻译.
/api/campaign/getTotalStatCampaigns使用 GET /api/campaign/getTotalStatCampaigns.获取总数据
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
organizationId |
integer · int64 | 否 | 组织身份证. |
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 | 是 | 服务. |
status |
string | 否 | Status. |
campaignStatus |
stringDELETED, READY, FINISHED, CANCELLED, ACTIVE, PAUSED, UNKNOWN, ARCHIVED | 否 | 竞选状态. |
type |
integer · int32 | 否 | Type. |
offset |
integer · int32 | 否 | 没有什么. |
dateTo |
string · date-time | 否 | 约会到. |
dateFrom |
string · date-time | 否 | 时间从. |
isStatCampaign |
boolean | 否 | 是州政府运动. |
dateStart |
string · date-time | 否 | 开始日期. |
query |
string | 否 | 问问. |
productExternalId |
integer · int64 | 否 | 产品外部身份证 |
organizationIds |
integer[] | 否 | 组织身份证. |
limit |
integer · int32 | 否 | 限制. |
page |
integer · int32 | 否 | 页面. |
count |
boolean | 否 | 伯爵. |
sortBy |
stringEXTERNALID, SERVICE, CAMPAIGNNAME, CAMPAIGNTYPE, CATEGORYNAME, VIEWS, CLICKS, RATIOCLICKSVIEWS, AVERAGECOST, EXPENSES, QUANTITYADDCART, QUANTITYORDERS, RATIOORDERSOFVISITS, QUANTITYPRODUCTORDERS, ORDERSAMOUNT, CREATEDATE, STATUS | 否 | 排序了. |
ascending |
boolean | 否 | 升高. |
topN |
integer · int32 | 是 | 顶部N. |
curl --request GET 'https://api.selsup.ru/api/campaign/getTotalStatCampaigns?service=NONE&limit=50&page=1&topN=1' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/campaign/getTotalStatCampaigns?service=NONE&limit=50&page=1&topN=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/campaign/getTotalStatCampaigns?service=NONE&limit=50&page=1&topN=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/campaign/getTotalStatCampaigns?service=NONE&limit=50&page=1&topN=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/campaign/getTotalStatCampaigns?service=NONE&limit=50&page=1&topN=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/campaign/getTotalStatCampaigns?service=NONE&limit=50&page=1&topN=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/campaign/getTotalStatCampaigns?service=NONE&limit=50&page=1&topN=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());
}
}
CampaignTotalStats
| 字段 | 类型 | 必填 | 描述 | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
clicks |
CampaignStat[] | 否 | 点击. | ||||||||||||||||||||
阵列项结构
|
|||||||||||||||||||||||
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
campaign |
string | 否 | 运动. |
value |
number · double | 否 | 价值. |
organizationId |
integer · int64 | 否 | 组织身份证. |
organizationName |
string | 否 | 组织名称 |
viewsCampaignStat
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
campaign |
string | 否 | 运动. |
value |
number · double | 否 | 价值. |
organizationId |
integer · int64 | 否 | 组织身份证. |
organizationName |
string | 否 | 组织名称 |
expensesCampaignStat
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
campaign |
string | 否 | 运动. |
value |
number · double | 否 | 价值. |
organizationId |
integer · int64 | 否 | 组织身份证. |
organizationName |
string | 否 | 组织名称 |
averageCostCampaignStat
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
campaign |
string | 否 | 运动. |
value |
number · double | 否 | 价值. |
organizationId |
integer · int64 | 否 | 组织身份证. |
organizationName |
string | 否 | 组织名称 |
{
"clicks": "string",
"views": "string",
"expenses": "string",
"averageCost": "string"
}应用错误通常以 JSON, error,localMessage和 params为回归. 如何返回应用错误 ↑
auth_requiredAuthorization 缺失,空,或包含无效的代币.
error_access_denied代币存在,但它的作用不能执行这个操作.
error_unknown节省请求时间和联系支持;不要盲目重新尝试突变.
/api/campaign/getStatCampaigns使用 GET 获取Stat 活动
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
organizationId |
integer · int64 | 否 | 组织身份证. |
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 | 是 | 服务. |
status |
string | 否 | Status. |
campaignStatus |
stringDELETED, READY, FINISHED, CANCELLED, ACTIVE, PAUSED, UNKNOWN, ARCHIVED | 否 | 竞选状态. |
type |
integer · int32 | 否 | Type. |
offset |
integer · int32 | 否 | 没有什么. |
dateTo |
string · date-time | 否 | 约会到. |
dateFrom |
string · date-time | 否 | 时间从. |
isStatCampaign |
boolean | 否 | 是州政府运动. |
dateStart |
string · date-time | 否 | 开始日期. |
query |
string | 否 | 问问. |
productExternalId |
integer · int64 | 否 | 产品外部身份证 |
organizationIds |
integer[] | 否 | 组织身份证. |
limit |
integer · int32 | 否 | 限制. |
page |
integer · int32 | 否 | 页面. |
count |
boolean | 否 | 伯爵. |
sortBy |
stringEXTERNALID, SERVICE, CAMPAIGNNAME, CAMPAIGNTYPE, CATEGORYNAME, VIEWS, CLICKS, RATIOCLICKSVIEWS, AVERAGECOST, EXPENSES, QUANTITYADDCART, QUANTITYORDERS, RATIOORDERSOFVISITS, QUANTITYPRODUCTORDERS, ORDERSAMOUNT, CREATEDATE, STATUS | 否 | 排序了. |
ascending |
boolean | 否 | 升高. |
curl --request GET 'https://api.selsup.ru/api/campaign/getStatCampaigns?service=NONE&limit=50&page=1' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/campaign/getStatCampaigns?service=NONE&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/campaign/getStatCampaigns?service=NONE&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/campaign/getStatCampaigns?service=NONE&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/campaign/getStatCampaigns?service=NONE&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/campaign/getStatCampaigns?service=NONE&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/campaign/getStatCampaigns?service=NONE&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());
}
}
FindResponseStatCampaign
| 字段 | 类型 | 必填 | 描述 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
rows |
StatCampaign[] | 否 | 排列. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
阵列项结构
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
limit |
integer · int32 | 否 | 限制. |
page |
integer · int32 | 否 | 页面. |
count |
boolean | 否 | 伯爵. |
sortBy |
string | 否 | 排序了. |
ascending |
boolean | 否 | 升高. |
statCampaignId |
integer · int64 | 否 | 报警活动身份证. |
views |
integer · int32 | 否 | 观看 |
clicks |
integer · int32 | 否 | 点击. |
ratioClicksViews |
number · double | 否 | 比例点击查看. |
averageCost |
number · double | 否 | 平均成本 |
expenses |
number · double | 否 | 费用. |
quantityAddCart |
integer · int32 | 否 | 量增加卡车. |
quantityOrders |
integer · int32 | 否 | 量量订单. |
ratioOrdersOfVisits |
number · double | 否 | 访问量比例 |
quantityProductOrders |
integer · int32 | 否 | 产品量订单 |
ordersAmount |
number · double | 否 | 订单数量 |
campaignId |
integer · int64 | 否 | 活动身份证. |
campaignName |
string | 否 | 竞选名字. |
createDate |
string · date-time | 否 | 创建日期. |
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 | 否 | 服务. |
campaignType |
stringIN_CATALOG, IN_CARD, IN_SEARCH, IN_MAIN, AUTO, IN_SEARCH_AND_CATALOG, BRAND_SHELF, UNKNOWN | 否 | 运动类型. |
categoryName |
string | 否 | 类别名称 |
externalId |
integer · int64 | 否 | 其他身份证. |
productId |
integer · int64 | 否 | 产品身份证 |
productViewId |
integer · int64 | 否 | 产品查看ID. |
date |
string · date-time | 否 | 约会. |
startDate |
string · date-time | 否 | 开始日期. |
endDate |
string · date-time | 否 | 终结日期. |
importDate |
string · date-time | 否 | 进口日期 |
uniqueId |
string | 否 | 唯一的身份证. |
clientId |
integer · int64 | 否 | 客户身份证. |
organizationId |
integer · int64 | 否 | 组织身份证. |
organizationName |
string | 否 | 组织名称 |
rowType |
stringCAMPAIGN, UNALLOCATED | 否 | 排列类型. |
quantityBuyouts |
number · double | 否 | 量收购. |
revenue |
number · double | 否 | 收入. |
profitFact |
number · double | 否 | 利实践. |
marginFact |
number · double | 否 | 边缘实况. |
drr |
number · double | 否 | 博士,我知道. |
cps |
number · double | 否 | 警方. |
quantityBuyoutsForecast |
number · double | 否 | 预测量量收购. |
profitForecast |
number · double | 否 | 预测利 |
marginForecast |
number · double | 否 | 利预测 |
allowableExpenses |
number · double | 否 | 允许的支出. |
currency |
string | 否 | 货币. |
unavailableReasons |
object | 否 | 原因不存在 |
{
"rows": "string"
}应用错误通常以 JSON, error,localMessage和 params为回归. 如何返回应用错误 ↑
auth_requiredAuthorization 缺失,空,或包含无效的代币.
error_access_denied代币存在,但它的作用不能执行这个操作.
error_unknown节省请求时间和联系支持;不要盲目重新尝试突变.
/api/campaign/getCampaigns使用 GET 获取活动
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
organizationId |
integer · int64 | 是 | 组织身份证. |
status |
string | 否 | Status. |
campaignStatus |
stringDELETED, READY, FINISHED, CANCELLED, ACTIVE, PAUSED, UNKNOWN, ARCHIVED | 否 | 竞选状态. |
type |
integer · int32 | 否 | Type. |
offset |
integer · int32 | 否 | 没有什么. |
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 | 否 | 服务. |
dateTo |
string · date-time | 否 | 约会到. |
dateFrom |
string · date-time | 否 | 时间从. |
isStatCampaign |
boolean | 否 | 是州政府运动. |
dateStart |
string · date-time | 否 | 开始日期. |
query |
string | 否 | 问问. |
productExternalId |
integer · int64 | 否 | 产品外部身份证 |
organizationIds |
integer[] | 否 | 组织身份证. |
limit |
integer · int32 | 否 | 限制. |
page |
integer · int32 | 否 | 页面. |
count |
boolean | 否 | 伯爵. |
sortBy |
stringEXTERNALID, SERVICE, CAMPAIGNNAME, CAMPAIGNTYPE, CATEGORYNAME, VIEWS, CLICKS, RATIOCLICKSVIEWS, AVERAGECOST, EXPENSES, QUANTITYADDCART, QUANTITYORDERS, RATIOORDERSOFVISITS, QUANTITYPRODUCTORDERS, ORDERSAMOUNT, CREATEDATE, STATUS | 否 | 排序了. |
ascending |
boolean | 否 | 升高. |
curl --request GET 'https://api.selsup.ru/api/campaign/getCampaigns?organizationId=1001&limit=50&page=1' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/campaign/getCampaigns?organizationId=1001&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/campaign/getCampaigns?organizationId=1001&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/campaign/getCampaigns?organizationId=1001&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/campaign/getCampaigns?organizationId=1001&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/campaign/getCampaigns?organizationId=1001&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/campaign/getCampaigns?organizationId=1001&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());
}
}
FindResponseCampaign
| 字段 | 类型 | 必填 | 描述 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
rows |
Campaign[] | 否 | 排列. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
阵列项结构
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
id |
integer · int64 | 否 | Id. |
externalId |
integer · int64 | 否 | 其他身份证. |
name |
string | 否 | 姓名. |
campaignName |
string | 否 | 竞选名字. |
type |
stringIN_CATALOG, IN_CARD, IN_SEARCH, IN_MAIN, AUTO, IN_SEARCH_AND_CATALOG, BRAND_SHELF, UNKNOWN | 否 | Type. |
statusType |
stringDELETED, READY, FINISHED, CANCELLED, ACTIVE, PAUSED, UNKNOWN, ARCHIVED | 否 | 状态类型. |
productId |
integer · int64 | 否 | 产品身份证 |
externalProductId |
integer · int64 | 否 | 外部产品ID. |
createDate |
string · date-time | 否 | 创建日期. |
endDate |
string · date-time | 否 | 终结日期. |
startDate |
string · date-time | 否 | 开始日期. |
sum |
integer · int64 | 否 | 总计. |
writeOffType |
stringBALANCE, NET, BONUS | 否 | 写下"不写字". |
onPause |
boolean | 否 | 在休息. |
clientId |
integer · int64 | 否 | 客户身份证. |
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 | 否 | 服务. |
categoryId |
integer · int64 | 否 | 类别的ID. |
categoryName |
string | 否 | 类别名称 |
campaignType |
string | 否 | 运动类型. |
dateStatImport |
string · date-time | 否 | 进口日期数据 |
nms |
string | 否 | 没有什么. |
paymentType |
string | 否 | 支付类型 |
{
"rows": "string"
}应用错误通常以 JSON, error,localMessage和 params为回归. 如何返回应用错误 ↑
auth_requiredAuthorization 缺失,空,或包含无效的代币.
error_access_denied代币存在,但它的作用不能执行这个操作.
error_unknown节省请求时间和联系支持;不要盲目重新尝试突变.
error_no_client应用逻辑中使用稳定的error_no_client代码;localMessage包含上述翻译.
/api/campaign/getCampaignBalance使用 GET /api/campaign/getCampaignBalance.获得竞选平衡
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
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 | 是 | 服务. |
organizationId |
integer · int64 | 是 | 组织身份证. |
curl --request GET 'https://api.selsup.ru/api/campaign/getCampaignBalance?service=NONE&organizationId=1001' \
--header 'Authorization: YOUR_API_TOKEN'
const response = await fetch('https://api.selsup.ru/api/campaign/getCampaignBalance?service=NONE&organizationId=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/campaign/getCampaignBalance?service=NONE&organizationId=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/campaign/getCampaignBalance?service=NONE&organizationId=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/campaign/getCampaignBalance?service=NONE&organizationId=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/campaign/getCampaignBalance?service=NONE&organizationId=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/campaign/getCampaignBalance?service=NONE&organizationId=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());
}
}
WbBalance
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
balance |
integer · int32 | 否 | 保持平衡. |
net |
integer · int32 | 否 | 网上. |
bonus |
integer · int32 | 否 | 奖金. |
{
"balance": 1,
"net": 1,
"bonus": 1
}应用错误通常以 JSON, error,localMessage和 params为回归. 如何返回应用错误 ↑
auth_requiredAuthorization 缺失,空,或包含无效的代币.
error_access_denied代币存在,但它的作用不能执行这个操作.
error_unknown节省请求时间和联系支持;不要盲目重新尝试突变.
error_organization_not_found应用逻辑中使用稳定的error_organization_not_found代码;localMessage包含上述翻译.
error_service_not_supported应用逻辑中使用稳定的error_service_not_supported代码;localMessage包含上述翻译.
error_subscription_expired应用逻辑中使用稳定的error_subscription_expired代码;localMessage包含上述翻译.
error_token_expired_or_revoked应用逻辑中使用稳定的error_token_expired_or_revoked代码;localMessage包含上述翻译.