List Items with Merge
POST /content/v2/cards/upload/addBase URL: https://content-api.wildberries.ru · Module: items · Section: Listing Items · Specification doc ↗
The method lists items by merging it with existing individual listings and groups of merged listings. There can be no more than 30 listings in one group of merged listings, respectively, you can list no more than 29 items in one request.
The dimensions of the items can only be specified in centimeters, and the weight of packed items must be specified in kilograms. If this method response is Success (200) but listing was not updated, check errors using failed listings with errors method. Items are listed asynchronously. The process of synchronizing a new listing with services may take up to 30 minutes. During this time, you can't add inventory to warehouses and set prices. In the sandbox, the product card is created immediately, without waiting.
To add documents to the listing, pass the document data in the documents request object. To confirm that no documents are required for the item, pass true in the excludeDocuments parameter. Document validation is performed asynchronously and can take up to 3 days. When the listing or document is changed, the validation is started again. The validation results are displayed in the listings, the documents object:
- the result for each document in the
verdictfields of theitemsobject. Ifverdictis not returned in the response, the document validation is not completed yet. - the final overall result for the listing in the
overallVerdictfield. During the listing validation, not only the results of the document validation are taken into account, but also other data. For example, the data of required labeling codes and information from external registries. IfoverallVerdictis not returned in the response, the listing validation is not completed yet.
The types of documents that you can add for the item are specified in subcategory characteristics.
Not all the documents that you can add are required and are being validated. You independently determine which permits are required for the item in accordance with the law.
Request limit per one seller account:
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 min | 10 requests | 6 s | 5 requests |
| Service | 1 min | 10 requests | 6 s | 5 requests |
| Base with secret | 1 min | 10 requests | 6 s | 5 requests |
| Base | 2 h | 1 request | 2 h | 1 request |
Request body
application/json — schema object, optional
imtIDinteger<int64>—imtIDof an individual listing or group of merged listings to which the listed items are addedcardsToAddobject[]— Added listingsbrandstring— BrandvendorCodestring(required) — Seller item numberkizMarkedboolean— Confirmation that required labeling code Chestny ZNAK is specified: -true— the seller confirms that required labeling code is applied to the item -false— the seller does not confirm that required labeling code is applied to the item. Passtruein the request to confirm that the item has required labeling code. The item will not pass validation if there is no confirmation from the seller that required labeling code is applied to the item To check if labeling code Chestny ZNAK is required, use the Listings method, the response fieldneedKizwholesaleobject— B2B saleenabledboolean— Is the item intended for sale only to B2B buyers: -true— the item is intended for sale only to B2B buyers -false— the item is intended for sale to B2B and B2C buyersquantumnumber<uint64>— Minimum number of items in one cart of B2B buyer. Only when"enable":true
titlestring— Item titlegtinstring— Additional GTIN. Specify this parameter if you have previously indicated the same GTIN in theskusparameter of one of the listings. It is not possible to specify the same GTIN inskusfor different listings or item sizes. Only for sellers from the Russiandescriptionstring— Item description. The maximum number of characters depends on the item category Standard — 2000, minimum — 1000, maximum — 5000 More details about **rules for filling out the listing** in Instructions category of sellers portaldimensionsobject— Dimensions and weight of the item **with packaging**. Specify incentimetersandkilogramsfor any item. If the data is not specified, zero values for length, width, height and weight will be automatically generated. The process of synchronizing new data with service may take up to 30 minuteslengthinteger<int64>— Length, cmwidthinteger<int64>— Width, cmheightinteger<int64>— Height, cmweightBruttonumber— Weight, kg Number of decimal places <=3
sizesobject[]— Item sizes. If the item has sizes but you send empty parameter, it is generated automatically with values:techSize= "A",wbSize= "1" and some random SKUtechSizestring— Item size (for example, L or 45)wbSizestring— Russian sizepriceinteger<int64>— Price, ₽skusstring[]— SKU. If not specified, the SKU is generated automatically
characteristicsobject[]— Item characteristics. Use the Subcategory characteristics method to get characteristics of the itemidinteger<int64>(required) — Characteristic IDvalueobject(required) — Characteristic values. Data type — array of strings or number — depends on the characteristic data type. For more details see the description of thecharcTypefield in the Subcategory characteristics method. The allowed number of values is specified in themaxCountfield of the Subcategory characteristics method
documentsobject— DocumentsitemsdocumentsRequest[]— Permits list and data. The document typetypeis required for each documenttypeinteger<int64>— Document type. The types of documents that you can add for the item are listed in subcategory characteristics in thecharcIDfield. Possible document types:: -1— Certificate of Conformity. You can specify forcharcID: 15001136, 15001137, 15001138 -2— The Correspondence Declaration. You can specify forcharcID: 15001135, 15001137, 15001138 -3— Certificate of Registration of SGR. You can specify forcharcID: 62945173, 15000785, 15004302 -4— Registration Certificate. You can specify forcharcID: 15001574, 15002355, 15002356, 15002357 -5— Certificate of Registration of the Republic of Belarus. You can specify forcharcID: 15003071, 15003939 -7— Registration of a Pesticide. You can specify forcharcID: 15003924, 15003925 -8— Registration of an Agrochemical. You can specify forcharcID: 15003920, 15003921 -9— Medicine Registration Certificate. You can specify forcharcID: 1897013, 15004284numberstring— Document numberproductNumberstring— Additional document numbertradeNamestring— Trade nameapplicantstring— Representative of the medical device manufacturerstartDatestring— Document start date and timeendDatestring— Document end date and timeisEndlessboolean— Is the document valid indefinitely: -true— yes, the document is indefinite -false— no, the document has an expiration date
excludeDocumentsboolean— Seller confirmation that no permits are required for the item: -true— yes, seller confirms that no permits are required. All values passed todocumentswill be replaced with empty values -false— no, seller does not confirm that no permits are required Whether the permits are required is checked when creating and changing the listing. If permits are required for the item and the valuetrueis specified, the listing will not pass validation
Responses
| Code | Description | Schema |
|---|---|---|
200 | Success | responseItemList |
400 | Bad request | responseBodyContentError400 |
401 | Unauthorized | object |
402 | Payment required | object |
403 | Access denied | object |
413 | The request body size exceeds the given limit | PostV2CardsUploadAddResponse413 |
429 | Too many requests | object |
Structure 200:
dataobject— Response dataerrorboolean— Error flagerrorTextstring— Error descriptionadditionalErrorsobject— Any additional errors- one of:
object,string,object
- one of:
Structure 400:
dataobject— Error dataerrorboolean— Error flagerrorTextstring— Error descriptionadditionalErrorsobject— Additional errors
Structure 401:
titlestring— Error titledetailstring— Error detailscodestring— Internal error coderequestIdstring— Unique request IDoriginstring— WB internal service IDstatusnumber— HTTP status codestatusTextstring— Text of the HTTP status codetimestampstring— Request date and time
Structure 402:
titlestring— Error titledetailstring— Error details. The error is only returned to services from the Solutions for business Catalog
Structure 403:
titlestring— Error titledetailstring— Error detailscodestring— Internal error coderequestIdstring— Request IDoriginstring— WB internal service IDstatusnumber— HTTP status codestatusTextstring— Text of the HTTP status codetimestampstring— Request date and time
Structure 413:
titlestring— Error titledetailstring— Error detailscodestring— Internal error coderequestIdstring— Unique request IDoriginstring— WB internal service IDstatusnumber— HTTP status codestatusTextstring— Text of the HTTP status code
Structure 429:
titlestring— Error titledetailstring— Error detailscodestring— Internal error coderequestIdstring— Unique request IDoriginstring— WB internal service IDstatusnumber— HTTP status codestatusTextstring— Text of the HTTP status codetimestampstring— Request date and time
Call examples
Arguments are shown as parameter names — substitute your own values. Languages whose client does not expose this operation are omitted.
from wb_api_client.items import Configuration, ApiClient
from wb_api_client.items.api import ItemsApi
cfg = Configuration(access_token="<your WB JWT>")
api = ItemsApi(ApiClient(cfg))
result = api.post_v2_cards_upload_add(post_v2_cards_upload_add_request=...)
print(result)import {
Configuration,
ItemsApi,
} from "@valeryverkhoturov/wb-api-client/items";
const cfg = new Configuration({});
cfg.setAccessToken("<your WB JWT>");
const api = new ItemsApi(cfg);
const { data } = await api.postV2CardsUploadAdd(postV2CardsUploadAddRequest);
console.log(data);import (
"context"
"fmt"
wbitems "github.com/ValeryVerkhoturov/wb-api-client-go/items"
)
cfg := wbitems.NewConfiguration()
cfg.SetAccessToken("<your WB JWT>")
client := wbitems.NewAPIClient(cfg)
result, _, err := client.ItemsAPI.PostV2CardsUploadAdd(context.Background()).Execute()
if err != nil {
panic(err)
}
fmt.Printf("%+v\n", result)import io.github.valeryverkhoturov.wbapi.items.ApiClient;
import io.github.valeryverkhoturov.wbapi.items.SecretString;
import io.github.valeryverkhoturov.wbapi.items.api.ItemsApi;
ApiClient client = new ApiClient();
client.setAccessToken(new SecretString("<your WB JWT>"));
ItemsApi api = new ItemsApi(client);
System.out.println(api.postV2CardsUploadAdd(postV2CardsUploadAddRequest));use ValeryVerkhoturov\WbApiClient\Items\Configuration;
use ValeryVerkhoturov\WbApiClient\Items\SecretString;
use ValeryVerkhoturov\WbApiClient\Items\Api\ItemsApi;
use GuzzleHttp\Client;
$config = (new Configuration())
->setAccessTokenSecret(new SecretString('<your WB JWT>'));
$api = new ItemsApi(new Client(), $config);
print_r($api->postV2CardsUploadAdd());#Использовать "wb-api-client"
Настройки = Новый Конфигурация();
Настройки.УстановитьТокен("<your WB JWT>");
Клиент = Новый ItemsApi(Настройки);
Сообщить(Клиент.PostV2CardsUploadAdd(Тело).Тело);using ValeryVerkhoturov.WbApiClient.Items.Api;
using ValeryVerkhoturov.WbApiClient.Items.Client;
var config = new Configuration();
config.AccessTokenSecret = new SecretString("<your WB JWT>");
var api = new ItemsApi(config);
Console.WriteLine(api.PostV2CardsUploadAdd());use wb_api_client::items::apis::{configuration::Configuration, items_api};
#[tokio::main]
async fn main() {
let mut cfg = Configuration::new();
cfg.set_access_token("<your WB JWT>");
let result = items_api::post_v2_cards_upload_add(&cfg, post_v2_cards_upload_add_request).await;
println!("{:#?}", result);
}