コンテンツへスキップ
Wbiztool

メディアAPI

メディアのアップロードAPI

画像、ドキュメント、音声、動画ファイルをワークスペースのメディアライブラリにアップロードし、ダウンロードURLを取得します。自前のファイルホスティングがない場合に、そのURLをメッセージ送信に渡すか、画像の場合に限りリマインダーの作成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

12345YOUR_API_KEYはご自身の値に置き換えてください。値の確認場所は認証をご覧ください。

リクエストパラメータ#

リクエストはmultipart/form-dataとして送信してください。このエンドポイントは、JSONボディやクエリ文字列のパラメータを読み取りません。

client_idinteger必須

設定 → APIキーに表示されるAPIクライアントIDです。

api_keystring必須

同じページにあるAPIキーです。

media_filefile必須

アップロードするファイルで、最大64 MBです。ファイルの種類はファイル名の拡張子で判定されるため、名前は対応している拡張子のいずれかで終わる必要があります。

対応しているファイル形式#

カテゴリ拡張子
画像.jpg.jpeg.png.gif
ドキュメント.pdf.doc.xls.ppt.txt.csv
音声.mp3.wav
動画.mp4.mov
アーカイブ.zip

画像はfile_typeimageとして保存され、それ以外はすべて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"
  }
}
フィールド説明
statusintegerファイルがアップロードされた場合は1、リクエストが失敗した場合は0
messagestringFile uploaded successfully、それ以外はエラー内容。
data.idintegerメディアファイルのID。メディアファイルの取得で使用します。
data.file_namestringWbiztoolが生成した、ファイルの保存名。
data.original_file_namestringアップロードしたファイルの名前。
data.file_urlstring直接ダウンロードURL。送信時にimg_urlまたはfile_urlとして使用します。
data.file_typestringimageまたはfile
data.file_sizeintegerサイズ(バイト)。
data.file_size_displaystring小数点以下1桁の読みやすいサイズ(例:242.5 KB)。
data.mime_typestring拡張子から判定したMIMEタイプ(例:application/pdf)。
data.is_imagebooleanfile_typeimageの場合はtrue
data.file_extensionstringoriginal_file_nameの小文字の拡張子(ドットなし)。
data.created_atstringアップロード日時。+00:00オフセット付きのUTCのISO 8601形式です。

エラー#

エラーの場合もHTTP 200が返り、status0になります。

{ "status": 0, "message": "File is too large. Maximum size is 64MB. Your file: 71.3MB" }
メッセージ対処方法
Only POST method is supportedPOSTリクエストを送信してください。
client_id is requiredclient_idをフォームフィールドとして追加してください。ボディがJSONではなくmultipart/form-dataになっているか確認してください。
api_key is requiredapi_keyをフォームフィールドとして追加してください。
media_file is requiredmedia_fileという名前のフィールドでファイルを送信してください。
client_id must be a valid integerclient_idを数値で送信してください。
Invalid API keyキーが存在し、削除または無効化されていないことを確認してください。
Invalid client_id for this API keyキーが別のclient_idに属しています。
File is too large. Maximum size is 64MB. Your file: …MB64 MB以下のファイルをアップロードしてください。
File type not supported. Type detected: …対応している拡張子のいずれかを使用してください。
Error uploading file: …アップロードを完了できませんでした。もう一度お試しください。APIキーがワークスペースに紐づいていない場合にも返されます。使用したいワークスペースで新しいキーを作成してください。

アップロードして送信する#

ファイルをアップロードし、file_urlメッセージ送信に渡します。画像の場合はmsg_type 1でimg_urlとして、その他のファイルの場合はmsg_type 2でfile_urlとして指定します。

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.PDFinvoice-4821.pdfとして届きます)。

msg_type 1で送信する画像は16 MB以下である必要があります。それより大きな画像もここではアップロードできますが、送信時にFile exceeds WhatsApp size limit (16MB max)で失敗します。事前に圧縮するか、msg_type 2でファイルとして送信してください。

ヒント#

  • アップロードを再利用するidまたはfile_urlを保存し、再度アップロードする代わりに同じファイルを何度も送信してください。
  • 元のファイル名をわかりやすくするoriginal_file_nameはダッシュボードに表示される名前で、送信時のfile_nameの値としても適しています。
  • 以前のアップロードを探すには、メディア一覧を使用してください。