Langsung ke konten
WbizTool

API v2 (beta)

Media

Direktori media menyimpan file workspace Anda: daftar harga, menu, brosur, foto produk. Unggah file sekali, lalu kirim sesering yang Anda mau dengan "media": {"media_id": …} di pesan atau pengingat. Ini adalah direktori yang sama dengan halaman Direktori media di dashboard, jadi file yang diunggah di sana juga tampil di sini.

OperasiEndpointScope
Mengunggah filePOST /api/v2/mediamedia
Daftar fileGET /api/v2/mediamedia
Mengambil fileGET /api/v2/media/{id}media
Menghapus fileDELETE /api/v2/media/{id}media

Mengunggah file#

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

Body: multipart/form-data

Kirim satu file per request sebagai multipart/form-data, di field file. Ini satu-satunya endpoint v2 yang tidak menerima JSON. Responsnya 201 dengan objek Media.

  • Hingga 64 MB per file.
  • Jenis: jenis file ditentukan oleh ekstensi di akhir nama file, jadi pertahankan ekstensinya.
JenisEkstensi
Gambar.jpg, .jpeg, .jpe, .png, .gif, .webp, .bmp
Dokumen.pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .csv, .txt
Audio.mp3, .m4a, .wav, .ogg, .oga, .aac
Video.mp4, .mov, .avi
Arsip.zip, .rar
  • Penyimpanan: semua file workspace bersama-sama dapat memakai ruang sebesar yang diizinkan paketnya, dari 250 MB hingga 10 GB (lihat Penyimpanan per paket). File yang tidak muat ditolak dengan storage_full.
  • File gambar (type image) dikirim sebagai gambar secara default; selain itu sebagai file.
  • Kirim Idempotency-Key agar percobaan ulang setelah timeout tidak menyimpan file dua kali.
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"

Respons (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"
}

Lalu kirim file itu:

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

Penerima melihat nama yang dipakai saat file diunggah (price list.pdf); atur media.file_name di pesan untuk menampilkan nama lain.

Error saat mengunggah#

HTTPKodeKapan
400validation_failedTidak ada file di field file, atau lebih dari satu
413file_too_largeFile lebih dari 64 MB
415unsupported_file_typeEkstensinya bukan salah satu jenis di atas
415unsupported_content_typeRequest bukan multipart/form-data (misalnya JSON)
422storage_fullFile tidak muat di penyimpanan paket; used dan limit menunjukkan jumlahnya, dalam byte
502upload_failedFile tidak dapat disimpan. Coba lagi (dengan Idempotency-Key yang sama)

Daftar file#

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

File workspace, yang terbaru lebih dulu, dalam halaman (limit 1 hingga 100, default 25, dan cursor).

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

Responsnya {"data": [Media, …], "next_cursor": "…" or null}.

Mengambil file#

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

File yang tidak ada atau sudah dihapus dijawab dengan 404 media_not_found.

Menghapus file#

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

Menghapus file dari Direktori media dan dari penyimpanan, sehingga url-nya berhenti berfungsi. Pesan yang sudah dikirim tetap menyimpan salinannya di ponsel penerima.

Penghapusan ditolak selama masih ada yang akan mengirim file itu: pesan yang menunggu untuk dikirim (termasuk pesan kampanye), pengingat aktif, atau pemicu Google Sheets yang aktif. Responsnya kemudian 409 media_in_use, dan count menunjukkan jumlahnya. Batalkan atau ubah semua itu terlebih dahulu, atau tunggu sampai pesannya terkirim.

curl -X DELETE https://wbiztool.com/api/v2/media/3301 \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"
{ "id": 3301, "deleted": true }
HTTPKodeKapan
404media_not_foundFile tersebut tidak ada
409media_in_usePesan yang menunggu, pengingat aktif, atau pemicu Google Sheets masih menggunakannya

Objek Media#

FieldJenisKeterangan
idintegerID file: media_id yang dipakai untuk mengirimnya.
namestringNama yang dipakai saat file diunggah.
typestringimage untuk file gambar, file untuk yang lainnya.
mime_typestringSeperti application/pdf atau image/jpeg.
sizeintegerUkuran dalam byte.
urlstringTautan publik ke file. Siapa pun yang memiliki tautan dapat membukanya, jadi jangan unggah file yang harus tetap privat.
created_atstringKapan file diunggah.

Terkait#