Перейти к содержимому
WbizTool

API v2 (бета)

Медиафайлы

В Медиакаталоге хранятся файлы вашего рабочего пространства: прайс-листы, меню, брошюры, фото товаров. Загрузите файл один раз, а затем отправляйте его сколько угодно с "media": {"media_id": …} в сообщении или напоминании. Это тот же каталог, что на странице Медиакаталога в панели, поэтому загруженные там файлы тоже видны здесь.

ОперацияEndpointОбласть доступа
Загрузка файлаPOST /api/v2/mediamedia
Список файловGET /api/v2/mediamedia
Получение файлаGET /api/v2/media/{id}media
Удаление файлаDELETE /api/v2/media/{id}media

Загрузка файла#

POSThttps://wbiztool.com/api/v2/media

Тело запроса: multipart/form-data

Отправляйте один файл за запрос как multipart/form-data, в поле file. Это единственный endpoint v2, который не принимает JSON. Ответ — 201 с объектом Media.

  • До 64 МБ на файл.
  • Типы: тип определяется по расширению в конце имени файла, поэтому сохраняйте его.
ВидРасширения
Изображения.jpg, .jpeg, .jpe, .png, .gif, .webp, .bmp
Документы.pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .csv, .txt
Аудио.mp3, .m4a, .wav, .ogg, .oga, .aac
Видео.mp4, .mov, .avi
Архивы.zip, .rar
  • Хранилище: все файлы рабочего пространства вместе могут занимать столько, сколько разрешает его тариф, от 250 МБ до 10 ГБ (см. Хранилище по тарифам). Файл, который не помещается, отклоняется с storage_full.
  • Файл изображения (type image) по умолчанию отправляется как изображение, всё остальное — как файл.
  • Передайте Idempotency-Key, чтобы повтор после тайм-аута не сохранил файл дважды.
curl -X POST https://wbiztool.com/api/v2/media \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY" \
  -H "Idempotency-Key: price-list-2026-10" \
  -F "file=@./price list.pdf"

Ответ (201):

{
  "id": 3301,
  "name": "price list.pdf",
  "type": "file",
  "mime_type": "application/pdf",
  "size": 182344,
  "url": "https://media.wbiztool.com/media/org_5012/media_5012_17608123450000_0.pdf",
  "created_at": "2026-10-18T10:31:40.120Z"
}

Затем отправьте его:

{
  "to": { "phone": "+919876543210" },
  "text": "Here is our new price list.",
  "media": { "media_id": 3301 }
}

Получатель видит имя, с которым файл был загружен (price list.pdf); чтобы показать другое, укажите media.file_name в сообщении.

Ошибки при загрузке#

HTTPКодКогда
400validation_failedВ поле file нет файла или их больше одного
413file_too_largeФайл больше 64 МБ
415unsupported_file_typeРасширение не относится к типам выше
415unsupported_content_typeЗапрос отправлен не как multipart/form-data (например, как JSON)
422storage_fullФайл не помещается в хранилище тарифа; used и limit показывают сколько, в байтах
502upload_failedФайл не удалось сохранить. Попробуйте снова (с тем же Idempotency-Key)

Список файлов#

GEThttps://wbiztool.com/api/v2/media

Файлы рабочего пространства, сначала самые новые, страницами (limit от 1 до 100, по умолчанию 25, и cursor).

curl "https://wbiztool.com/api/v2/media?limit=100" \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"

Ответ — {"data": [Media, …], "next_cursor": "…" or null}.

Получение файла#

GEThttps://wbiztool.com/api/v2/media/{id}
curl https://wbiztool.com/api/v2/media/3301 \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"

Файл, которого не существует или который удалён, возвращает 404 media_not_found.

Удаление файла#

DELETEhttps://wbiztool.com/api/v2/media/{id}

Удаляет файл из Медиакаталога и из хранилища, поэтому его url перестаёт работать. У получателей уже отправленных сообщений копия на телефоне сохраняется.

Удаление отклоняется, пока что-то ещё будет отправлять этот файл: сообщение, ожидающее отправки (в том числе из кампании), активное напоминание или активный триггер Google Sheets. В этом случае ответ — 409 media_in_use, а count показывает, сколько таких. Сначала отмените или измените их либо дождитесь, пока сообщения уйдут.

curl -X DELETE https://wbiztool.com/api/v2/media/3301 \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"
{ "id": 3301, "deleted": true }
HTTPКодКогда
404media_not_foundТакого файла нет
409media_in_useЕго всё ещё использует ожидающее сообщение, активное напоминание или триггер Google Sheets

Объект Media#

ПолеТипОписание
idintegerID файла: media_id, с которым его отправляют.
namestringИмя, с которым он был загружен.
typestringimage для файлов изображений, file для всего остального.
mime_typestringНапример, application/pdf или image/jpeg.
sizeintegerРазмер в байтах.
urlstringПубличная ссылка на файл. Открыть его может любой, у кого есть ссылка, поэтому не загружайте файлы, которые должны оставаться закрытыми.
created_atstringКогда он был загружен.

Связанные материалы#