Skip to content

Upload Media File ​

http
POST /content/v3/media/file

Base URL: https://content-api.wildberries.ru · Module: items · Section: Media Files · Specification doc ↗

Uploads and adds one media file for the listing. Requirements for images: * maximum images for each listing  — 30, * minimal resolution – 700 × 900 pixels, * maximum size — 32 МB, * minimal quality — 65%, * formats — JPG, PNG, BMP, GIF (static), WebP. Requirements for video: * maximum one video for each listing * maximum size — 50 MB * formats — MOV, MP4

Request limit per one seller account for all Media Files methods:

TypePeriodLimitIntervalBurst
Personal1 min100 requests600 ms5 requests
Service1 min100 requests600 ms5 requests
Base with secret1 min100 requests600 ms5 requests
Base1 h2 requests30 min1 request

In Sandbox — maximum of 1 request per second for all Content methods in total.

Parameters ​

NameInTypeReq.Description
X-Nm-IdheaderstringyesWB item number
X-Photo-Numberheaderinteger<int64>yesNumber of media file, starting from 1. To add the video set 1. To add the image to the uploaded ones, set file the number more then number of uploaded files.

Request body ​

multipart/form-data — schema object, required

  • uploadfile string<binary>

Responses ​

CodeDescriptionSchema
200SuccessPostV3MediaFileResponse200
400Bad requestmediaErrors
401Unauthorizedobject
402Payment requiredobject
403Access deniedmediaErrors
429Too many requestsobject

Structure 200:

  • data object
  • error boolean — Error flag
  • errorText string — Error description
  • additionalErrors object — Additional errors

Structure 400:

  • additionalErrors object — Additional errors
  • data object — Error data
  • error boolean — Error flag
  • errorText string — Error description

Structure 401:

  • title string — Error title
  • detail string — Error details
  • code string — Internal error code
  • requestId string — Unique request ID
  • origin string — WB internal service ID
  • status number — HTTP status code
  • statusText string — Text of the HTTP status code
  • timestamp string — Request date and time

Structure 402:

Structure 403:

  • additionalErrors object — Additional errors
  • data object — Error data
  • error boolean — Error flag
  • errorText string — Error description

Structure 429:

  • title string — Error title
  • detail string — Error details
  • code string — Internal error code
  • requestId string — Unique request ID
  • origin string — WB internal service ID
  • status number — HTTP status code
  • statusText string — Text of the HTTP status code
  • timestamp string — 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.

python
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_v3_media_file(x_nm_id=..., x_photo_number=..., uploadfile=...)
print(result)
ts
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.postV3MediaFile(xNmId, xPhotoNumber, uploadfile);
console.log(data);
go
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.PostV3MediaFile(context.Background()).XNmId(xNmId).XPhotoNumber(xPhotoNumber).Uploadfile(uploadfile).Execute()
if err != nil {
    panic(err)
}
fmt.Printf("%+v\n", result)
java
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.postV3MediaFile(xNmId, xPhotoNumber, uploadfile));
php
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->postV3MediaFile($x_nm_id, $x_photo_number));
bsl
#Использовать "wb-api-client"

Настройки = Новый Конфигурация();
Настройки.УстановитьТокен("<your WB JWT>");
Клиент = Новый ItemsApi(Настройки);

Сообщить(Клиент.PostV3MediaFile(XNmId, XPhotoNumber).Тело);
csharp
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.PostV3MediaFile(xNmId, xPhotoNumber));
rust
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_v3_media_file(&cfg, x_nm_id, x_photo_number, uploadfile).await;
    println!("{:#?}", result);
}