Search

Wildberries Цифровой (wbd)

По вопросам работы с WBD API, обращайтесь в техническую поддержку.

Wildberries Цифровой

По вопросам работы с WBD API, обращайтесь в техническую поддержку.

Введение WBD

Добро пожаловать в Wildberries Digital (WBD) API, интерфейс для продавцов Wildberries Цифровой, предоставляющий возможности управления магазином и получения оперативной и статистической информации по протоколу HTTP.

Основные возможности WBD API

  • Управление предложениями и контентом.
  • Загрузка и управление медиа-файлами.
  • Получение информации о контенте и предложениях.
  • Управление ключами активации.

Формат и инструменты для работы с API

API представлено в формате Swagger (OpenAPI), что позволяет легко импортировать его в такие инструменты, как Postman, и генерировать клиентский код на различных языках программирования с помощью Swagger CodeGen. Для ручной проверки API вы можете использовать:

Авторизация WBD

Срок действия токена: 365 дней.

Для доступа к WBD API необходимо пройти авторизацию с использованием JWT. Следуйте инструкциям ниже для получения и использования токена.

Получение токена

  1. Перейдите по ссылке на сайт WBD.
  2. Нажмите кнопку "Получить токен".
  3. Скопируйте сгенерированный токен JWT.

Использование токена
В каждом запросе к WBD API передавайте токен в заголовке Authorization в следующем формате:

Authorization: Bearer <api_token>

где <api_token> — ваш токен авторизации (JWT).

Пример запроса:

GET /api/v1/offers/author HTTP/1.1
Host: devapi-digital.wildberries.ru
Authorization: Bearer eyJhbGciOdJIUzI1NiIsInR5cCIkIkpXVCJ9.eyJhJjo0ODM2MTE5NawiYiI6NDI4NTk1MjMsImV4cCI6MTc0OTU0MjQ0MH0.DOWjZBSLwCxvU_kKkneCcJ_E-GuflHSsre8nAUr0xFo

Рекомендации по безопасности

  • Храните токен в безопасном месте.
  • Не передавайте токен в URL.
  • Не выкладывайте токен в публичный доступ. Для всех запросов используйте хост devapi-digital.wildberries.ru

Пример полного URL: https://devapi-digital.wildberries.ru/api/v1/offers/author

Соблюдение этих рекомендаций обеспечит безопасное использование WBD API.

Предложения

Создать новое предложение{{ /api/v1/offers }}

Описание метода

Максимум 50 запросов в секунду

Метод позволяет создать новое предложение.

Обязательные поля:

  • title — Название предложения
  • description — Описание предложения
  • tags — Теги предложения
  • section — Категория предложения
  • catalog_path — Подкатегория предложения.
  • age_rating — Возрастное ограничение предложения
  • price — Цена предложения

Добавить обложку

Обложка для предложения загружается отдельно после создания предложения.
Вам необходимо воспользоваться методом Добавить или обновить обложку предложения.

Добавить дополнительные медиа-файлы

  1. Загрузить медиафайлы с помощью метода Загрузить медиа-файл для предложения, метод возвращает список URI адресов загруженных медиа-файлов
  2. Добавить URI медиа-файлов в поле gallery

Категория и подкатеогрия предложения

Воспользуйтесь методом Получить категории и их подкатегории для получения ID подкатегории и правильного сопоставления с категорией.

Предложение из категории "Услуги"

section8

Доступ к публикации контента этой категории предоставляется через заявку в техническую поддержку.

Предложение c уникальными ключами

Предложение c уникальными ключами относятся к категориям (section):

  • Ключи активации3
  • Купоны и развлечения12
  • Подарочные сертификаты13

Обязательные данные:

  • Ключи к предложению
  • Инструкция по активации ключа

Загрузка ключей

Список ключей передается в поле keys вашего запроса при создании предложения.

В дальнейшем вы можете добавлять ключи с помощью метода Добавить ключи активации.

Добавление инструкции по активации ключа

Инструкцию по активации ключа необходимо добавить в поле meta в формате JSON используя следующий пример.
Чтобы сделать текст более привлекательным и удобочитаемым, используйте перенос строки \n.

Пример:

{
    "meta":{
        "key_instruction": "Инструкция по активации\n1. Зайдите на сайт ...\n2.Вставьте ключ в поле ..."
    }
}

Предложение с контентом

Предложение с контентом относится к категориям (section):

  • Видеоконтент1
  • Аудиоконтент2
  • Электронные книги4
  • Аудиокниги5
  • Цифровые товары6

Обязательные данные:

  • Контент для предложения

Добавление контента

Если вы ещё не добавили контент в личный кабинет продавца, то вы можете это сделать по инструкции.

Для добавления контента вам необходимо передать в поле content список данных используя пример ниже.

Пример:

"content": [
    {
        "category_id": 1,
        "content": 8942
    },
    {
        "category_id": 1,
        "content": 4211
    }
]

где:

  • category_id — ID категории контента
  • content — ID контента

Эту информацию вы можете получить с помощью метод Получить список своего контента.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
title
required
string <= 500 characters

Название предложения.
Максимальная длина — 500 символов.

description
required
string <= 5000 characters

Описание предложения. Это текст, который описывает ваше предложение и помогает людям понять, что именно представляет из себя продаваемый вами товар и чем он может быть полезен. Важно правильно назвать предложение и более подробно прописать его описание, чтобы пользователи узнали как можно больше информации еще до покупки.
Максимальная длина — 5000 символов.

tags
required
Array of strings [ 1 .. 5 ] items [ items <= 45 characters ]

Массив тегов. Теги нужны для группирования, ранжирования и облегчения поиска вашего товара.

Ограничения:

  • Максимальное количество тегов — 5
  • Максимальная длина тега — 45 символов
section
required
integer <int32>
Enum: 1 2 3 4 5 6 8 9 12 13

ID категории предложения:

  • 1 — Видеоконтент
  • 2 — Аудиоконтент
  • 3 — Ключи активации
  • 4 — Электронные книги
  • 5 — Аудиокниги
  • 6 — Цифровые товары
  • 8 — Услуги
  • 12 — Купоны и развлечения
  • 13 — Подарочные сертификаты
catalog_path
required
Array of integers <int64> non-empty [ items <int64 > ]

Массив ID подкатегорий, в котором находится предложение.
Воспользуйтесь методом Получить категории и их подкатегории для получения ID и правильного сопоставления с категорией.

age_rating
required
string
Enum: "0+" "6+" "12+" "14+" "16+" "18+"

Возрастное ограничение. Это система, которая используется для определения, подходит ли ваше предложение для определенной возрастной группы.

price
required
integer <int64>

Цена предложения в рублях

discount_price
integer <int64>

Цена с учетом скидки в рублях

gallery
Array of strings <= 8 items

Список URL-адресов дополнительных изображений, а так же видео превью.
Можно передать до 8 медиа-файлов.
Важно, чтобы все изображения были в формате .jpg или .png, а видео в формате .mp4

keys
Array of strings <= 1000 items [ items <= 200 characters ]

Список ключей.
Это обязательное поле, если вы хотите создать предложение из категории (section):

  • Ключи активации3
  • Купоны и развлечения12
  • Подарочные сертификаты13

Ограничения:

  • Максимальное количество ключей — 1000
  • Максимальная длина ключа — 200 символов
status
integer <int32>
Default: 0
Enum: 0 1

Задается статус вашего предложения:

  • 0 — Добавить в черновик
  • 1 — Опубликовать
Array of objects (OfferCreateContent)

Список контента

object (OfferMetaRequest)

Метаданные предложения

Responses

Request samples

Content type
application/json
{
  • "title": "Книга `Спортивное питание`",
  • "description": "Очень хорошая книга о спортивном питании.",
  • "tags": [
    ],
  • "section": 4,
  • "catalog_path": [
    ],
  • "age_rating": "16+",
  • "price": 849,
  • "discount_price": 799,
  • "gallery": [
    ],
  • "keys": [
    ],
  • "status": 1,
  • "content": [
    ],
  • "meta": {
    }
}

Response samples

Content type
application/json
{
  • "id": 42,
  • "title": "Книга `Спортивное питание`",
  • "description": "Очень хорошая книга о спортивном питании.",
  • "section": 4,
  • "catalog_path": [
    ],
  • "price": 849,
  • "discount_price": 799,
  • "gallery": [
    ],
  • "meta": "string",
  • "tags": [
    ],
  • "thumbnail": [
    ],
  • "content": [
    ],
  • "created": "2024-06-10T07:29:30Z",
  • "updated": "2024-06-17T22:12:13Z",
  • "deleted": "2024-06-19T22:12:13Z",
  • "status": 1,
  • "view_count": 47,
  • "purchase_count": 10,
  • "adult": false,
  • "age_rating": "16+",
  • "rating": 50
}

Добавить или обновить обложку предложения{{ /api/v1/offers/thumb }}

Описание метода

Максимум 10 запросов в секунду

Метод позволяет добавить или обновить обложку предложения.
Для добавления более привлекательной карточки предложения, мы рекомендуем:
1. Добавлять изображения с соотношением сторон 1:1
2. Минимальный размер изображения 1200х1200 пикселей
3. Фон контрастный белому

Максимальный размер файла: 5 Мб.
Допустимые форматы: .png, .jpeg
Authorizations:
ApiKeyAuth
header Parameters
X-Content-Type
required
string
Enum: "image/jpeg" "image/png"

Тип изображения

X-Wbd-OfferId
required
integer <int64>

ID предложения

Request Body schema: application/octet-stream
required
string <binary>

Байты файла

Responses

Response samples

Content type
application/json
{
  • "status": 400,
  • "title": "bad request",
  • "detail": "value 'five' is invalid for parameter offer_id",
  • "code": "string",
  • "errors": [
    ],
  • "requestId": "b709d59bd0791513350332ffe5f813c1",
  • "origin": "gateway-dev"
}

Редактировать предложение{{ /api/v1/offers/{offer_id} }}

Описание метода

Максимум 50 запросов в секунду

Метод позволяет редактировать информацию о предложении.

Категория и подкатеогрия предложения

Воспользуйтесь методом Получить категории и их подкатегории для получения ID подкатегории и правильного сопоставления с категорией.

Authorizations:
ApiKeyAuth
path Parameters
offer_id
required
integer <int64>

ID предложения

Request Body schema: application/json
required
title
string <= 500 characters

Название предложения.
Максимальная длина — 500 символов.

description
string <= 5000 characters

Описание предложения. Это текст, который описывает ваше предложение и помогает людям понять, что именно представляет из себя продаваемый вами товар и чем он может быть полезен. Важно правильно назвать предложение и более подробно прописать его описание, чтобы пользователи узнали как можно больше информации еще до покупки.
Максимальная длина — 5000 символов.

price
integer <int64>

Цена предложения в рублях

discount_price
integer or null <int64>

Цена с учетом скидки в рублях

gallery
Array of strings or null <= 8 items

Список URL-адресов дополнительных изображений, а так же видео превью.
Можно передать до 8 медиа-файлов.
Важно, чтобы все изображения были в формате .jpg или .png, а видео в формате .mp4

age_rating
string
Enum: "0+" "6+" "12+" "14+" "16+" "18+"

Возрастное ограничение. Это система, которая используется для определения, подходит ли ваше предложение для определенной возрастной группы.

tags
Array of strings [ 1 .. 5 ] items [ items <= 45 characters ]

Массив тегов. Теги нужны для группирования, ранжирования и облегчения поиска вашего товара.

Ограничения:

  • Максимальное количество тегов — 5
  • Максимальная длина тега — 45 символов
status
integer or null <int32>
Enum: 0 1 2 3

Статус вашего предложения:

  • 0 — Добавить в черновик
  • 1 — Опубликовать
  • 2 — Приостановить продажу
  • 3 — Удалить
catalog_path
Array of integers <int64> [ items <int64 > ]

Массив ID подкатегорий, в котором находится предложение.
Воспользуйтесь методом Получить категории и их подкатегории для получения ID и правильного сопоставления с категорией.

object (OfferMetaRequest)

Метаданные предложения

section
integer <int32>
Enum: 1 2 4 5 6

ID категории предложения:

  • 1 — Видеоконтент
  • 2 — Аудиоконтент
  • 4 — Электронные книги
  • 5 — Аудиокниги
  • 6 — Цифровые товары

Responses

Request samples

Content type
application/json
{
  • "title": "Книга `Спортивное питание`",
  • "description": "Очень хорошая книга о спортивном питании.",
  • "price": 849,
  • "discount_price": 799,
  • "gallery": [
    ],
  • "age_rating": "16+",
  • "tags": [
    ],
  • "status": 1,
  • "catalog_path": [
    ],
  • "meta": {
    },
  • "section": 4
}

Response samples

Content type
application/json
{
  • "status": 400,
  • "title": "bad request",
  • "detail": "value 'five' is invalid for parameter offer_id",
  • "code": "string",
  • "errors": [
    ],
  • "requestId": "b709d59bd0791513350332ffe5f813c1",
  • "origin": "gateway-dev"
}

Получить информацию о предложении{{ /api/v1/offers/{offer_id} }}

Описание метода

Максимум 100 запросов в секунду

Метод позволяет получить информацию о конкретном предложении.

Authorizations:
ApiKeyAuth
path Parameters
offer_id
required
integer <int64>

ID предложения

Responses

Response samples

Content type
application/json
{
  • "id": 42,
  • "title": "Книга `Спортивное питание`",
  • "description": "Очень хорошая книга о спортивном питании.",
  • "section": 4,
  • "catalog_path": [
    ],
  • "price": 849,
  • "discount_price": 799,
  • "gallery": [
    ],
  • "meta": "string",
  • "tags": [
    ],
  • "thumbnail": [
    ],
  • "content": [
    ],
  • "created": "2024-06-10T07:29:30Z",
  • "updated": "2024-06-17T22:12:13Z",
  • "deleted": "2024-06-19T22:12:13Z",
  • "status": 1,
  • "view_count": 47,
  • "purchase_count": 10,
  • "adult": false,
  • "age_rating": "16+",
  • "rating": 50
}

Получить список своих предложений{{ /api/v1/offers/author }}

Описание метода

Максимум 100 запросов в секунду

Метод позволяет получить список своих предложений с использованием фильтрации.

Описание параметров фильтрации:

  • search — Поиск предложений по названию. Укажите часть или полное название предложения для поиска.
  • category — Фильтрация предложений по категории контента. Список категорий находится в таблице.
  • status — Фильтрация предложений по статусу. Возможные значения:
    • 0 — Черновик
    • 1 — Опубликован
    • 2 — Приостановлен
  • sort — Сортировка предложений по дате создания или обновления. Укажите created для сортировки по дате создания и updated для сортировки по дате обновления.
  • sort_dir — Направление сортировки. Укажите asc для сортировки по возрастанию или desc для сортировки по убыванию.
  • skip — Смещение. Позволяет пропустить определенное количество предложений в результирующем наборе.
    Например, если skip равно 20, то выборка начнется с 21-й записи.
  • take — Количество предложений, которое нужно вернуть в ответе.
    Например, если take равно 10, то в ответе будет не более 10 записей.
Authorizations:
ApiKeyAuth
query Parameters
search
string

Поиск по названию предложения

category
integer <int64>
Enum: 1 2 4

Фильтрация по категории контента:

  • 1 — Видеоконтент
  • 2 — Аудиоконтент
  • 4 — Документ
status
integer <int32>
Enum: 0 1 2

Фильтрация по статусу:

  • 0 — Черновик
  • 1 — Опубликован
  • 2 — Приостановлен
sort
string
Enum: "created" "updated"

Сортировка предложений по дате создания или обновления

sort_dir
string
Enum: "asc" "desc"

Направление сортировки:

  • asc — по возрастанию
  • desc — по убыванию
skip
integer <int64>
Default: 0

Смещение. Количество предложений, которые нужно пропустить в результирующем наборе.

take
integer <int64>
Default: 50

Количество предложений для получения

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 10
}

Обновить цену{{ /api/v1/offer/price/{offer_id} }}

Описание метода

Максимум 50 запросов в секунду

Метод позволяет изменить цену предложения и цену с учетом скидок.

Если вы не хотите выставлять скидку, то в запросе необходимо не передавать параметр discount_price или выставить у него значение 0.

Authorizations:
ApiKeyAuth
path Parameters
offer_id
required
integer <int64>

ID предложения

Request Body schema: application/json
required
regular_price
integer <int64>

Цена в рублях

discount_price
integer <int64>

Цена в рублях с учетом скидки

Responses

Request samples

Content type
application/json
{
  • "regular_price": 5432,
  • "discount_price": 5000
}

Response samples

Content type
application/json
{
  • "status": 400,
  • "title": "bad request",
  • "detail": "value 'five' is invalid for parameter offer_id",
  • "code": "string",
  • "errors": [
    ],
  • "requestId": "b709d59bd0791513350332ffe5f813c1",
  • "origin": "gateway-dev"
}

Обновить статус{{ /api/v1/offer/{offer_id} }}

Описание метода

Максимум 50 запросов в секунду

Метод позволяет обновить статус вашего предложения.

Статус может быть:

  • 0 — Черновик
  • 1 — Опубликован
  • 2 — Приостановлен
  • 3 — Удалён
Authorizations:
ApiKeyAuth
path Parameters
offer_id
required
integer <int64>

ID предложения

Request Body schema: application/json
required
status
required
integer <int32>
Enum: 0 1 2 3

Responses

Request samples

Content type
application/json
{
  • "status": 0
}

Response samples

Content type
application/json
{
  • "status": 400,
  • "title": "bad request",
  • "detail": "value 'five' is invalid for parameter offer_id",
  • "code": "string",
  • "errors": [
    ],
  • "requestId": "b709d59bd0791513350332ffe5f813c1",
  • "origin": "gateway-dev"
}

Получить категории и их подкатегории{{ /api/v1/catalog }}

Описание метода

Максимум 100 запросов в секунду

Метод позволяет получить дерево(структура данных) с категориям и их подкатегориями.

Иерархия структуры данных

В нашей структуре есть три уровня иерархии:

  1. Корневой узел — сущность Каталог
  2. Внешние узлы представляют собой категории (section):
  • 1 — Видеоконтент
  • 2 — Аудиоконтент
  • 3 — Ключи активации
  • 4 — Электронные книги
  • 5 — Аудиокниги
  • 6 — Цифровые товары
  • 8 — Услуги
  • 12 — Купоны и развлечения
  • 13 — Подарочные сертификаты
  1. Листья дерева являются подкатегориями (catalog_path):
  • 65 — Обучающие видео
  • 66 — Спорт
  • 67 — Мастер-класс
  • 68 — Йога
  • 69 — Медитации
Authorizations:
ApiKeyAuth

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 0
}

Контент

Категории контента

catalog_id — Идентифицировать категории Название категории Форматы файлов
1 Видеоконтент mp4
2 Аудиоконтент mp3
4 Документ pdf, epub, txt

Требования к контенту

Допустимый контент для загрузки

  • Видео (.MP4)
  • Аудио/Музыка (.MP3)
  • Документы (.PDF, .EPUB, .TXT)

Требования к файлам:

  • Максимальный размер файла: 3 Гб
  • Минимальная продолжительность видео/аудио: 1 минута
  • Поддерживаемые форматы: .MP4, .EPUB, .TXT, .PDF, .MP3

Требования к обложке:

  • Максимальный размер: 5 Мб
  • Поддерживаемые форматы: .PNG, .JPG (.JPEG)
  • Формат изображения: 1:1 (рекомендуется)

Загрузить обложку контента{{ /api/v1/content/illustration }}

Описание метода

Максимум 10 запросов в секунду

Метод позволяет загрузить обложку контента.

Максимальный размер файла: 5 Мб.
Допустимые форматы: .png, .jpeg
Рекомендации:
  • Соотношение сторон 1:1

Краткая инструкция по применению:

  1. Убедитесь, что ваш файл соответствует указанным ограничениям и рекомендациям.
  2. Вызовите этот метод.
  3. При загрузке обложки вы получите список URI адресов для нового контента.
  4. Воспользуйтесь методом Инициализировать новый контент и передайте список URI адресов в поле meta в формате JSON используя следующий пример.

Пример:

{
    "meta": {
        "thumbnail": [
            "vol6/529/013cfs7f229183179aj53d2b3bbb839a/480.jpg",
            "vol6/529/013cfs7f229183179aj53d2b3bbb839a/1280.jpg",
            "vol6/529/013cfs7f229183179aj53d2b3bbb839a/1920.jpg"
        ]
    }
}
Authorizations:
ApiKeyAuth
header Parameters
X-Content-Type
required
string
Enum: "image/png" "image/jpeg"

Тип файла

Request Body schema: application/octet-stream
required
string <binary>

Байты файла

Responses

Response samples

Content type
application/json
{
  • "uris": [
    ],
  • "userId": 483611
}

Инициализировать новый контент{{ /api/v1/content/upload/init }}

Описание метода

Максимум 10 запросов в секунду

Метод позволяет инициализировать (загрузить) информацию нового контента.

Типы контента и требования к ним вы можете посмотреть в оглавлении Работа с контентом.

Подготовка файла к последующей загрузки:

  • Вам необходимо разбить файл на части (фреймы) не более 2 Мб.
  • Передать размер (в байтах) каждой части и порядковый номер в поле parts

Пример:
Файл размером 5 Мб, нужно разбить на 3 части — 2 Мб, 2 Мб и 1 Мб.

{
    "parts": [
        {
          "index": 1,
          "size": 2097152
        },
        {
          "index": 2,
          "size": 2097152
        },
        {
          "index": 3,
          "size": 1048576
        }
    ],
}

В методе Загрузить контент (файл) вам нужно будет загрузить 3 части файла с указанием их порядкового номера через X-Wbd-Part-Index.

Обязательные поля в метаданных (meta) для загрузки контента:

Общие поля:

  • thumbnail
  • rating

Аудиоконтент:

  • author

Документ:

  • author
  • pages

Краткая инструкция по применению:

  1. Подготовьте метаданные и информацию о вашем контенте.
  2. Убедитесь, что ваш контент соответствует требованиям (формат и размер файла).
  3. Вызовите этот метод для инициализации нового контента.
  4. В ответе вы получите uuid контента, необходимый для последующей загрузки самого файла.
  5. Используйте метод Загрузить файл контента, чтобы загрузить файл.
Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
title
required
string <= 500 characters

Название контента.
Максимальная длина — 500 символов.

description
required
string <= 1000 characters

Описание контента.
Максимальная длина — 1000 символов.

catalog_id
required
integer
Enum: 1 2 4

ID категории контента:

  • 1 — Видеоконтент
  • 2 — Аудиоконтент
  • 4 — Документ
content_type
required
string
Enum: "video/mp4" "audio/mpeg" "text/plain" "application/pdf" "application/epub+zip"

Тип файла:

  • Видеоконтент:
    • video/mp4
  • Аудиоконтент:
    • audio/mpeg
  • Документ:
    • application/pdf
    • application/epub+zip
    • text/plain
required
Array of objects (ChunkPart)

Для оптимальной скорости загрузки контента следует разбить файл на фреймы по 2 Мб. В массиве указываются индекс каждого фрейма и его размер.

required
object or null (ContentMeta)

Метаданные. Дополнительная информация о контенте.

Responses

Request samples

Content type
application/json
{
  • "title": "Книга `Иван Тургенев: Отцы и дети'",
  • "description": "Очень хорошая книга.",
  • "catalog_id": 4,
  • "content_type": "application/epub+zip",
  • "parts": [
    ],
  • "meta": {
    }
}

Response samples

Content type
application/json
{
  • "content_id": 493292,
  • "uuid": "25f5e4c9-2cac-11ef-adbf-9cc2c45608a"
}

Загрузить контент (файл){{ /api/v1/content/upload/chunk }}

Описание метода

Максимум 10 запросов в секунду

Метод позволяет загрузить контент (файл) по частям.

Краткая инструкция по применению:

  1. Разбейте файл на части размером не более 2 Мб.
  2. Для каждой части файла:
  • Убедитесь, что заголовок X-Content-Type соответствует типу вашего контента (например, video/mp4, audio/mpeg, application/pdf и т.д.).
  • Установите заголовок X-Wbd-Part-Index в соответствии с индексом текущей части (начиная с 1).
  • Укажите uuid контента в заголовке X-Wbd-Content-Uuid, который вы получили при инициализации нового контента.
  • Отправьте байты (часть файла) в теле запроса.
  1. Повторяйте шаг 2 для всех частей файла до завершения загрузки.
Authorizations:
ApiKeyAuth
header Parameters
X-Content-Type
required
string
Enum: "video/mp4" "audio/mpeg" "text/plain" "application/pdf" "application/zip" "application/epub+zip"

Тип файла

X-Wbd-Part-Index
required
integer <int64>

Индекс фрейма (части контента)

X-Wbd-Content-Uuid
required
string

Уникальный ID полученный в инициализации нового контента

Request Body schema: application/octet-stream
required
string <binary>

Байты файла

Responses

Response samples

Content type
application/json
{
  • "chunk": 3,
  • "uri": "vol19/924/e9e5d152ea3d9018bd061c62f75efbdf/content"
}

Редактировать контент{{ /api/v1/content/author/{content_id} }}

Описание метода

Максимум 50 запросов в секунду

Метод позволяет редактировать информацию о контенте.

Authorizations:
ApiKeyAuth
path Parameters
content_id
required
integer <int64>

ID контента

Request Body schema: application/json
required
title
string or null <= 500 characters

Название контента.
Максимальная длина — 500 символов.

description
string or null <= 1000 characters

Описание контента.
Максимальная длина — 1000 символов.

Responses

Request samples

Content type
application/json
{
  • "title": "Книга 'Иван Тургенев: Отцы и дети'",
  • "description": "Очень хорошая книга."
}

Response samples

Content type
application/json
{
  • "id": 5321,
  • "author_id": 93224,
  • "title": "Книга 'Иван Тургенев: Отцы и дети'",
  • "description": "Очень хорошая книга.",
  • "content_type": "application/epub+zip",
  • "uri": "vol19/924/e9e55159ea3d9018bd061c62f75efbdf/content",
  • "files": [
    ],
  • "playlist": "vol14/147/f2671cfb67bd8c200b9464vd6f0dd97d/output.m3u8",
  • "meta": null,
  • "category_id": 4,
  • "status": 2,
  • "created": "2024-06-10T07:29:30Z",
  • "updated": "2024-06-17T22:12:13Z"
}

Получить информацию о контенте{{ /api/v1/content/author/{content_id} }}

Описание метода

Максимум 100 запросов в секунду

Метод позволяет получить информацию о конкретном контенте.

Authorizations:
ApiKeyAuth
path Parameters
content_id
required
integer <int64>

ID контента

Responses

Response samples

Content type
application/json
{
  • "id": 5321,
  • "author_id": 93224,
  • "title": "Книга 'Иван Тургенев: Отцы и дети'",
  • "description": "Очень хорошая книга.",
  • "content_type": "application/epub+zip",
  • "uri": "vol19/924/e9e55159ea3d9018bd061c62f75efbdf/content",
  • "files": [
    ],
  • "playlist": "vol14/147/f2671cfb67bd8c200b9464vd6f0dd97d/output.m3u8",
  • "meta": null,
  • "category_id": 4,
  • "status": 2,
  • "created": "2024-06-10T07:29:30Z",
  • "updated": "2024-06-17T22:12:13Z"
}

Получить список своего контента{{ /api/v1/content/author }}

Описание метода

Максимум 100 запросов в секунду

Метод позволяет получить список своего контента с использованием фильтрации.

Описание параметров фильтрации:

  • search — Поиск контента по названию. Укажите часть или полное название контента для поиска.
  • category — Фильтрация контента по категории. Список категорий находится в таблице, колонка — "catalog_id — Идентифицировать категории".
  • status — Фильтрация контента по статусу. Возможные значения:
    • 0 — Создан
    • 1 — Загружено на сервер
    • 2 — Опубликован
    • 3 — Ошибка в обработке или публикации
    • 4 — Обрабатывается
    • 5 — Отправлено на сервер
  • sort — Сортировка контента по дате создания или обновления. Укажите created для сортировки по дате создания и updated для сортировки по дате обновления.
  • sort_dir — Направление сортировки. Укажите asc для сортировки по возрастанию или desc для сортировки по убыванию.
  • skip — Смещение. Позволяет пропустить определенное количество контента в результирующем наборе.
    Например, если skip равно 20, то выборка начнется с 21-й записи.
  • take — Количество контента, которое нужно вернуть в ответе.
    Например, если take равно 10, то в ответе будет не более 10 записей.
Authorizations:
ApiKeyAuth
query Parameters
search
string

Поиск по названию контента

category
integer <int64>
Enum: 1 2 4

Фильтрация по категории:

  • 1 — Видеоконтент
  • 2 — Аудиоконтент
  • 4 — Документ
status
integer <int32>
Enum: 0 1 2 3 4 5

Фильтрация по статусу:

  • 0 — Создан
  • 1 — Загружено на сервер
  • 2 — Опубликован
  • 3 — Ошибка в обработке или публикации
  • 4 — Обрабатывается
  • 5 — Отправлено на сервер
sort
string
Enum: "created" "updated"

Сортировка контента по дате создания или обновления

sort_dir
string
Enum: "asc" "desc"

Направление сортировки:

  • asc — по возрастанию
  • desc — по убыванию
skip
integer <int64>
Default: 0

Смещение. Количество предложений, которые нужно пропустить в результирующем наборе.

take
integer <int64>
Default: 50

Количество контента для получения

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 10
}

Скачать контент{{ /api/v1/content/download/{uri} }}

Описание метода

Максимум 10 запросов в секунду

Метод позволяет скачать контент по URI.

Получение URI-адреса контента:

  1. Воспользуйтесь одним из методов для получения информации о контенте.
  2. В информации о контенте возьмите URI-адрес из поля uri или files.

Скачивание контента частями:

Вы можете скачать файл частями с использованием заголовка Range.

Пример: Range: bytes=0-524287999

Ответ содержит заголовок Content-Range с информацией о скаченном файле.

Пример: Content-Range: bytes 0-524287999/1073741824

Authorizations:
ApiKeyAuth
path Parameters
uri
required
string

URI-адрес контента

header Parameters
Range
string

Позволять скачивать файл частями.

Пример: bytes=0-524287999

Responses

Response samples

Content type
application/json
{
  • "status": 401,
  • "title": "unauthorized",
  • "detail": "authorization required",
  • "code": "string",
  • "requestId": "b709d59bd0791513350332ffe5f813c1",
  • "origin": "gateway-dev"
}

Удалить контент{{ /api/v1/content/delete }}

Описание метода

Максимум 50 запросов в секунду

Метод позволяет удалить контент по ID.

Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
content_id
integer <int64>

ID контента

Responses

Request samples

Content type
application/json
{
  • "content_id": 493292
}

Response samples

Content type
application/json
{
  • "status": 401,
  • "title": "unauthorized",
  • "detail": "authorization required",
  • "code": "string",
  • "requestId": "b709d59bd0791513350332ffe5f813c1",
  • "origin": "gateway-dev"
}

Загрузить медиафайлы для предложения{{ /api/v1/content/gallery }}

Описание метода

Максимум 10 запросов в секунду

Метод позволяет загружать медиафайлы на сервер. После успешной загрузки возвращает список URI-адресов, которые можно использовать для добавления дополнительных медиафайлов в предложение.

Данный метод поможет вам добавить дополнительные медиафайлы при создании или обновлении предложения.

Ограничения по размеру:
  • изображение: 5 Мб
  • видео: 50 Мб
  • общий размер всех файлов: 100 Мб
Допустимые форматы:
  • изображение: .png, .jpeg
  • видео: .mp4
Можно передать до 8 медиафайлов.
Authorizations:
ApiKeyAuth
Request Body schema: multipart/form-data
required
files
required
Array of strings <binary> [ items <binary > ]

Responses

Response samples

Content type
application/json
{
  • "uris": [
    ]
}

Ключи активации

Добавить ключи активации{{ /api/v1/keys-api/keys }}

Описание метода

Максимум 50 запросов в секунду

Метод позволяет добавить ключи для предложения по ID.

Предложение должно быть из категории (section):
  • Ключи активации — 3
  • Купоны и развлечения — 12
  • Подарочные сертификаты — 13
Authorizations:
ApiKeyAuth
Request Body schema: application/json
required
keys
required
Array of strings <= 1000 items [ items <= 200 characters ]

Список ключей.

Ограничения:

  • Максимальное количество ключей — 1000
  • Максимальная длина ключа — 200 символов
offer_id
required
integer <int64>

ID предложения

Responses

Request samples

Content type
application/json
{
  • "keys": [
    ],
  • "offer_id": 4251
}

Response samples

Content type
application/json
{
  • "status": 401,
  • "title": "unauthorized",
  • "detail": "authorization required",
  • "code": "string",
  • "requestId": "b709d59bd0791513350332ffe5f813c1",
  • "origin": "gateway-dev"
}

Удалить ключи активации{{ /api/v1/keys-api/keys }}

Описание метода

Максимум 100 запросов в секунду

Метод позволяет удалить ключи активации по их идентификаторам

Доступ к методу предоставляется через заявку в техническую поддержку.
Authorizations:
ApiKeyAuth
query Parameters
ids
required
Array of integers <int64> [ items <int64 > ]

Список идентификаторов ключей

Responses

Response samples

Content type
application/json
{
  • "statuses": [
    ]
}

Получить купленные ключи{{ /api/v1/keys-api/keys/redeemed }}

Описание метода

Максимум 100 запросов в секунду

Метод позволяет получить список купленных ключей с использованием фильтрации.

Описание параметров фильтрации:

  • offer_id — Фильтрация по ID предложения. Позволяет выбрать ключи, связанные с определенным предложением.
  • skip — Смещение. Указывает, сколько записей нужно пропустить в результирующем наборе.
    Например, если skip равно 20, то выборка начнется с 21-й записи.
  • take — Количество записей для получения. Указывает, сколько ключей должно быть возвращено в ответе.
    Например, если take равно 10, то в ответе будет не более 10 записей.
  • date_from — Фильтрация по дате покупки начиная с указанной даты (включительно).
    Формат даты: RFC3339.
  • date_to — Фильтрация по дате покупки до указанной даты (не включительно).
    Формат даты: RFC3339.
Authorizations:
ApiKeyAuth
query Parameters
offer_id
integer <int64>

Фильтрация по ID предложения. Позволяет выбрать ключи, связанные с определенным предложением.

skip
integer <int64>
Default: 0

Смещение. Указывает, сколько записей нужно пропустить в результирующем наборе. Используется для реализации пагинации.

take
integer <int64>
Default: 50

Количество записей для получения. Указывает, сколько ключей должно быть возвращено в ответе.

date_from
string

Фильтрация по дате покупки начиная с указанной даты (включительно).

Формат даты: RFC3339 (2023-06-17T19:20:30Z).

date_to
string

Фильтрация по дате покупки до указанной даты (не включительно).

Формат даты: RFC3339 (2024-10-18T19:20:30Z).

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 10
}

Получить количество ключей для предложения{{ /api/v1/offer/keys/{offer_id} }}

Описание метода

Максимум 100 запросов в секунду

Метод позволяет получить информацию о количестве ключей у конкретного предложения.

Authorizations:
ApiKeyAuth
path Parameters
offer_id
required
integer <int64>

ID предложения

Responses

Response samples

Content type
application/json
{
  • "total": 10,
  • "available": 5,
  • "reserved": 2,
  • "deleted": 2
}

Получить список ключей{{ /api/v1/offer/keys/{offer_id}/list }}

Описание метода

Максимум 100 запросов в секунду

Метод позволяет получить список загруженных вами ключей для конкретного предложения.

Доступ к методу предоставляется через заявку в техническую поддержку.
Authorizations:
ApiKeyAuth
path Parameters
offer_id
required
integer <int64>

ID предложения

query Parameters
take
integer <uint32>
Default: 50

Количество записей для получения. Указывает, сколько ключей должно быть возвращено в ответе

skip
integer <uint32>
Default: 0

Смещение. Указывает, сколько записей нужно пропустить в результирующем наборе. Используется для реализации пагинации

deleted
boolean
Default: true

Указывает, будут ли в ответе присутствовать удалённые ключи

sold
boolean
Default: true

Указывает, будут ли в ответе присутствовать проданные ключи

reserved
boolean
Default: true

Указывает, будут ли в ответе присутствовать зарезервированные ключи

expired
boolean
Default: true

Указывает, будут ли в ответе присутствовать ключи с истекшим сроком действия

Responses

Response samples

Content type
application/json
{
  • "items": [
    ],
  • "total": 10
}