Langsung ke konten
Wbiztool

API Media

API Unggah media

Unggah file gambar, dokumen, audio, atau video ke pustaka media workspace Anda dan dapatkan URL unduhannya. Kirim URL tersebut ke Kirim pesan, atau, khusus gambar, ke Buat pengingat sebagai img_url, jika Anda tidak memiliki hosting file sendiri.

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

Body: multipart/form-data

File langsung disimpan dan respons menyertakan file_url-nya. File yang diunggah juga muncul di halaman Media directory (Direktori media) di dashboard Anda.

Contoh singkat#

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

Ganti 12345 dan YOUR_API_KEY dengan nilai Anda sendiri. Lihat Autentikasi untuk mengetahui di mana menemukannya.

Parameter request#

Kirim request sebagai multipart/form-data. Body JSON dan parameter query string tidak dibaca oleh endpoint ini.

client_idintegerwajib

API Client ID Anda dari Settings → API keys (Pengaturan → Kunci API).

api_keystringwajib

API key Anda dari halaman yang sama.

media_filefilewajib

File yang akan diunggah, hingga 64 MB. Jenisnya ditentukan oleh ekstensi nama file, jadi nama harus diakhiri salah satu ekstensi yang didukung.

Jenis file yang didukung#

KategoriEkstensi
Gambar.jpg, .jpeg, .png, .gif
Dokumen.pdf, .doc, .xls, .ppt, .txt, .csv
Audio.mp3, .wav
Video.mp4, .mov
Arsip.zip

Gambar disimpan dengan file_type bernilai image; semua jenis lainnya bernilai file.

Respons#

Request yang berhasil mengembalikan 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"
  }
}
FieldTipeDeskripsi
statusinteger1 jika file berhasil diunggah, 0 jika request gagal.
messagestringFile uploaded successfully, selain itu berisi error.
data.idintegerID file media. Gunakan dengan Ambil file media.
data.file_namestringNama penyimpanan file, dibuat oleh Wbiztool.
data.original_file_namestringNama file yang Anda unggah.
data.file_urlstringURL unduhan langsung. Gunakan sebagai img_url atau file_url saat mengirim.
data.file_typestringimage atau file.
data.file_sizeintegerUkuran dalam byte.
data.file_size_displaystringUkuran yang mudah dibaca dengan satu desimal, misalnya 242.5 KB.
data.mime_typestringTipe MIME yang ditentukan dari ekstensi, misalnya application/pdf.
data.is_imagebooleantrue jika file_type bernilai image.
data.file_extensionstringEkstensi original_file_name dalam huruf kecil, tanpa titik.
data.created_atstringWaktu unggah, ISO 8601 dalam UTC dengan offset +00:00.

Error#

Error juga mengembalikan HTTP 200, dengan status bernilai 0:

{ "status": 0, "message": "File is too large. Maximum size is 64MB. Your file: 71.3MB" }
PesanCara memperbaikinya
Only POST method is supportedKirim request POST.
client_id is requiredTambahkan client_id sebagai field formulir. Pastikan body berupa multipart/form-data, bukan JSON.
api_key is requiredTambahkan api_key sebagai field formulir.
media_file is requiredKirim file di field bernama media_file.
client_id must be a valid integerKirim client_id sebagai angka.
Invalid API keyPastikan key tersebut ada dan belum dihapus atau dinonaktifkan.
Invalid client_id for this API keyKey tersebut milik client_id lain.
File is too large. Maximum size is 64MB. Your file: …MBUnggah file berukuran 64 MB atau kurang.
File type not supported. Type detected: …Gunakan salah satu ekstensi yang didukung.
Error uploading file: …Unggahan tidak dapat diselesaikan. Coba lagi. Anda juga mendapatkan error ini jika API key tidak terhubung ke workspace; buat key baru di workspace yang ingin Anda gunakan.

Unggah lalu kirim#

Unggah file, lalu kirim file_url ke Kirim pesan: sebagai img_url dengan msg_type 1 untuk gambar, atau sebagai file_url dengan msg_type 2 untuk file lainnya.

Unggah PDF lalu kirim
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)

Kirim pesan memiliki daftar ekstensi file sendiri. Dari jenis yang diterima API ini, file .doc, .ppt, .csv, .zip, .wav, dan .mov yang dikirim dengan msg_type 2 diterima dengan tambahan .pdf di namanya (misalnya brochure.doc.pdf). Konversi dokumen ke PDF sebelum mengirimnya. Lihat Mengirim gambar dan file. Nama juga dikirim dalam huruf kecil (Invoice-4821.PDF diterima sebagai invoice-4821.pdf).

Gambar yang dikirim dengan msg_type 1 harus berukuran 16 MB atau lebih kecil. Gambar yang lebih besar berhasil diunggah di sini, tetapi gagal saat dikirim dengan File exceeds WhatsApp size limit (16MB max). Kompres terlebih dahulu, atau kirim sebagai file dengan msg_type 2.

Tips#

  • Gunakan ulang unggahan. Simpan id atau file_url dan kirim file yang sama berkali-kali, alih-alih mengunggahnya lagi.
  • Gunakan nama asli yang bermakna. original_file_name adalah nama yang Anda lihat di dashboard dan nilai yang baik untuk file_name saat mengirim.
  • Temukan unggahan sebelumnya dengan Daftar media.