דלגו לתוכן
WbizTool

API למדיה

ממשק API להעלאת מדיה

העלו קובץ תמונה, מסמך, אודיו או וידאו לספריית המדיה של סביבת העבודה שלכם, וקבלו בחזרה כתובת 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

החליפו את 12345 ו-YOUR_API_KEY בערכים שלכם. בסעיף אימות מוסבר איפה למצוא אותם.

פרמטרי הבקשה#

שלחו את הבקשה כ-multipart/form-data. ה-endpoint הזה לא קורא גופי JSON ופרמטרים ב-query string.

client_idintegerחובה

מזהה הלקוח שלכם ל-API (API Client ID) מהדף Settings → API keys.

api_keystringחובה

מפתח ה-API שלכם מאותו דף.

media_filefileחובה

הקובץ להעלאה, עד 64 MB, והוא חייב להיכנס באחסון המדיה של סביבת העבודה. הסוג שלו נקבע לפי הסיומת של שם הקובץ, ולכן השם חייב להסתיים באחת מהסיומות הנתמכות.

סוגי קבצים נתמכים#

קטגוריהסיומות
תמונות‎.jpg, ‏‎.jpeg, ‏‎.png, ‏‎.gif, ‏‎.webp, ‏‎.bmp
מסמכים‎.pdf, ‏‎.doc, ‏‎.docx, ‏‎.xls, ‏‎.xlsx, ‏‎.ppt, ‏‎.pptx, ‏‎.txt, ‏‎.csv
אודיו‎.mp3, ‏‎.m4a, ‏‎.wav, ‏‎.ogg, ‏‎.aac
וידאו‎.mp4, ‏‎.mov, ‏‎.avi
ארכיונים‎.zip, ‏‎.rar

תמונות נשמרות עם file_type שמוגדר ל-image; כל השאר נשמר כ-file.

נפח אחסון לכל סביבת עבודה#

כל הקבצים בספריית המדיה של סביבת עבודה חולקים מגבלת אחסון אחת, שנקבעת לפי התוכנית של סביבת העבודה. גם קבצים שהועלו דרך ה-API הזה וגם קבצים שהועלו בדף ספריית המדיה נספרים, ומחיקת קובץ משחררת את המקום שלו.

תוכניתאחסון מדיה
תקופת ניסיון חינם250 MB
Lite1 GB
Standard2 GB
Advanced5 GB
Enterprise10 GB
AppSumo Plan 1 ו-Plan 21 GB
AppSumo Plan 32 GB
AppSumo Plan 43 GB
AppSumo Plan 55 GB

לתוכניות ישנות יותר, ולסביבת עבודה בלי תוכנית פעילה, יש 1 GB. העלאה שלא נכנסת נדחית עם Storage full: … (ראו שגיאות). סביבת עבודה שכבר חרגה מהמגבלה שלה שומרת על הקבצים שלה, אבל לא יכולה להוסיף קבצים חדשים עד שיהיה בה מקום בשבילם.

תגובה#

בקשה מוצלחת מחזירה HTTP 200:

{
  "status": 1,
  "message": "File uploaded successfully",
  "data": {
    "id": 5122,
    "file_name": "media_12345_17895804001234_3f9a1c7e.pdf",
    "original_file_name": "invoice-4821.pdf",
    "file_url": "https://wbiztool-static.s3.ap-southeast-1.amazonaws.com/media/org_12345/media_12345_17895804001234_3f9a1c7e.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.idintegerהמזהה של קובץ המדיה. השתמשו בו עם קבלת קובץ מדיה.
data.file_namestringהשם שתחתיו הקובץ נשמר, שנוצר על ידי WbizTool: media_, המזהה של סביבת העבודה שלכם, זמן ההעלאה וחלק אקראי, עם הסיומת של הקובץ.
data.original_file_namestringהשם של הקובץ שהעליתם.
data.file_urlstringכתובת URL להורדה ישירה. השתמשו בה בתור img_url או file_url בזמן השליחה. היא ציבורית ולא פגה, אבל מפסיקה לעבוד כשהקובץ נמחק. היא יכולה להיות ב-media.wbiztool.com (ה-CDN שלנו) או ב-wbiztool-static.s3.ap-southeast-1.amazonaws.com; שתיהן מגישות את אותו קובץ, לכן שמרו אותה כמו שהיא ואל תרכיבו כתובות כאלה בעצמכם.
data.file_typestringimage או file.
data.file_sizeintegerהגודל בבייטים.
data.file_size_displaystringגודל קריא עם ספרה אחת אחרי הנקודה, למשל 242.5 KB.
data.mime_typestringסוג MIME שנגזר מהסיומת, למשל 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 MB לכל היותר.
File type not supported. Type detected: …השתמשו באחת מהסיומות הנתמכות.
Storage full: this workspace uses … of its … of media storage, and this file is …. Delete files you no longer need in the Media directory, or contact us if you need more space.הקובץ לא נכנס באחסון המדיה של סביבת העבודה. מחקו קבצים שכבר לא נחוצים בדף ספריית מדיה, או צרו איתנו קשר כדי לקבל עוד מקום.
Error uploading file: …לא ניתן היה להשלים את ההעלאה. נסו שוב. ההודעה הזו מופיעה גם אם מפתח ה-API לא מקושר לסביבת עבודה; צרו מפתח חדש בסביבת העבודה שבה אתם רוצים להשתמש.

העלאה ושליחה#

העלו את הקובץ, ואז העבירו את file_url ל-שליחת הודעה: בתור 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 הזה מקבל שומר על הסיומת שלו כשהוא נשלח עם msg_type 2, למשל brochure.doc או catalogue.zip. אודיו WAV ו-OGG מגיע כמסמך ולא כאודיו שמתנגן, ונכשל עם File type not supported כשהוא נשלח כתמונה (msg_type 1). קובצי MP3, ‏M4A ו-AAC מגיעים כאודיו שמתנגן בצ'אט, והטקסט מגיע כהודעה נפרדת. ראו שליחת תמונות וקבצים. השם נשלח באותיות קטנות (Invoice-4821.PDF מגיע כ-invoice-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 בזמן השליחה.
  • מצאו קבצים שהועלו קודם באמצעות רשימת מדיה.