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

API медиафайлов

API загрузки медиафайлов

Загрузите изображение, документ, аудио- или видеофайл в медиатеку вашего рабочего пространства и получите ссылку для скачивания. Передайте эту ссылку в API отправки сообщений или — только для изображений — в API создания напоминаний как img_url, если у вас нет собственного хостинга файлов.

POSThttps://wbiztool.com/api/v1/media/upload/

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

Файл сохраняется сразу, а ответ содержит его file_url. Загруженные файлы также появляются на странице Медиакаталог в вашей панели управления.

Быстрый пример#

curl -X POST https://wbiztool.com/api/v1/media/upload/ \
  -F client_id=12345 \
  -F api_key=YOUR_API_KEY \
  -F media_file=@./invoice-4821.pdf

Замените 12345 и YOUR_API_KEY своими значениями. Где их найти, описано в разделе Аутентификация.

Параметры запроса#

Отправляйте запрос как multipart/form-data. Тело JSON и параметры в строке запроса этот endpoint не читает.

client_idintegerобязательно

Ваш API Client ID из раздела Настройки → API ключи.

api_keystringобязательно

Ваш API-ключ с той же страницы.

media_filefileобязательно

Загружаемый файл размером до 64 МБ. Его тип определяется по расширению в имени файла, поэтому имя должно заканчиваться одним из поддерживаемых расширений.

Поддерживаемые типы файлов#

КатегорияРасширения
Изображения.jpg, .jpeg, .png, .gif
Документы.pdf, .doc, .xls, .ppt, .txt, .csv
Аудио.mp3, .wav
Видео.mp4, .mov
Архивы.zip

Изображения сохраняются с file_type, равным image; всё остальное — file.

Ответ#

Успешный запрос возвращает HTTP 200:

{
  "status": 1,
  "message": "File uploaded successfully",
  "data": {
    "id": 5122,
    "file_name": "media_12345_17895804001234.pdf",
    "original_file_name": "invoice-4821.pdf",
    "file_url": "https://wbiztool-static.s3.ap-southeast-1.amazonaws.com/media/org_12345/media_12345_17895804001234.pdf",
    "file_type": "file",
    "file_size": 248312,
    "file_size_display": "242.5 KB",
    "mime_type": "application/pdf",
    "is_image": false,
    "file_extension": "pdf",
    "created_at": "2026-09-16T10:20:31.512934+00:00"
  }
}
ПолеТипОписание
statusinteger1, если файл загружен, 0, если запрос не выполнен.
messagestringFile uploaded successfully, иначе текст ошибки.
data.idintegerID медиафайла. Используйте его в API получения медиафайла.
data.file_namestringИмя, под которым хранится файл; генерируется Wbiztool.
data.original_file_namestringИмя загруженного вами файла.
data.file_urlstringПрямая ссылка для скачивания. Используйте её как img_url или file_url при отправке.
data.file_typestringimage или file.
data.file_sizeintegerРазмер в байтах.
data.file_size_displaystringРазмер в удобном для чтения виде с одним знаком после запятой, например 242.5 KB.
data.mime_typestringMIME-тип, определённый по расширению, например application/pdf.
data.is_imagebooleantrue, если file_type равен image.
data.file_extensionstringРасширение original_file_name в нижнем регистре, без точки.
data.created_atstringВремя загрузки в формате ISO 8601 в UTC со смещением +00:00.

Ошибки#

Ошибки тоже возвращаются с HTTP 200 и status, равным 0:

{ "status": 0, "message": "File is too large. Maximum size is 64MB. Your file: 71.3MB" }
СообщениеКак исправить
Only POST method is supportedОтправьте запрос POST.
client_id is requiredДобавьте client_id как поле формы. Проверьте, что тело запроса — multipart/form-data, а не JSON.
api_key is requiredДобавьте api_key как поле формы.
media_file is requiredПередайте файл в поле с именем media_file.
client_id must be a valid integerПередайте client_id числом.
Invalid API keyПроверьте, что ключ существует, не удалён и не отключён.
Invalid client_id for this API keyКлюч принадлежит другому client_id.
File is too large. Maximum size is 64MB. Your file: …MBЗагрузите файл размером не более 64 МБ.
File type not supported. Type detected: …Используйте одно из поддерживаемых расширений.
Error uploading file: …Не удалось завершить загрузку. Повторите попытку. Эта ошибка также возвращается, если API-ключ не привязан к рабочему пространству; создайте новый ключ в нужном рабочем пространстве.

Загрузка и отправка#

Загрузите файл, затем передайте file_url в API отправки сообщений: для изображений — как img_url с msg_type 1, для остальных файлов — как file_url с msg_type 2.

Загрузка PDF и его отправка
import requests

BASE = "https://wbiztool.com/api/v1"
AUTH = {"client_id": 12345, "api_key": "YOUR_API_KEY"}

with open("invoice-4821.pdf", "rb") as f:
    upload = requests.post(f"{BASE}/media/upload/", data=AUTH, files={"media_file": f}, timeout=120).json()
if upload["status"] != 1:
    raise SystemExit("Upload failed: " + upload["message"])

media = upload["data"]
message = {
    **AUTH,
    "whatsapp_client": 678,
    "country_code": "91",
    "phone": "9876543210",
    "msg": "Your invoice for order #4821 is attached.",
}
if media["is_image"]:
    message.update(msg_type=1, img_url=media["file_url"])
else:
    message.update(msg_type=2, file_url=media["file_url"], file_name=media["original_file_name"])

sent = requests.post(f"{BASE}/send_msg/", json=message, timeout=60).json()
print(sent)

У API отправки сообщений собственный список расширений файлов. Из типов, которые принимает этот API, файлы .doc, .ppt, .csv, .zip, .wav и .mov, отправленные с msg_type 2, доставляются с добавленным к имени .pdf (например, brochure.doc.pdf). Преобразуйте документы в PDF перед отправкой. См. раздел Отправка изображений и файлов. Имя также отправляется в нижнем регистре (Invoice-4821.PDF приходит как invoice-4821.pdf).

Изображения, отправляемые с msg_type 1, должны быть не больше 16 МБ. Более крупные изображения здесь загружаются без проблем, но не отправляются с ошибкой File exceeds WhatsApp size limit (16MB max). Сначала сожмите их или отправьте как файл с msg_type 2.

Советы#

  • Используйте загрузки повторно. Сохраните id или file_url и отправляйте один и тот же файл многократно, не загружая его заново.
  • Давайте файлам понятные исходные имена. original_file_name отображается в панели управления и хорошо подходит в качестве file_name при отправке.
  • Ранее загруженные файлы можно найти через API списка медиафайлов.