Zum Inhalt springen
WbizTool

Media-API

Medien hochladen (API)

Laden Sie ein Bild, ein Dokument, eine Audio- oder eine Videodatei in das Medienverzeichnis Ihres Arbeitsbereichs hoch und erhalten Sie eine Download-URL zurück. Übergeben Sie diese URL an Nachricht senden oder als img_url an Erinnerung erstellen, wenn Sie kein eigenes Datei-Hosting haben.

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

Body: multipart/form-data

Die Datei wird sofort gespeichert, und die Antwort enthält ihre file_url. Hochgeladene Dateien erscheinen außerdem auf der Seite Medienverzeichnis in Ihrem Dashboard.

Kurzes Beispiel#

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

Ersetzen Sie 12345 und YOUR_API_KEY durch Ihre eigenen Werte. Wo Sie diese finden, steht unter Authentifizierung.

Request-Parameter#

Senden Sie den Request als multipart/form-data. JSON-Bodys und Query-String-Parameter werden von diesem Endpoint nicht gelesen.

client_idintegererforderlich

Ihre API-Client-ID aus Einstellungen → API-Schlüssel.

api_keystringerforderlich

Ihr API-Schlüssel von derselben Seite.

media_filefileerforderlich

Die hochzuladende Datei, bis zu 64 MB, und sie muss in den Medienspeicher des Arbeitsbereichs passen. Ihr Typ wird anhand der Endung des Dateinamens bestimmt, der Name muss daher auf eine der unterstützten Endungen enden.

Unterstützte Dateitypen#

KategorieEndungen
Bilder.jpg, .jpeg, .png, .gif, .webp, .bmp
Dokumente.pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .txt, .csv
Audio.mp3, .m4a, .wav, .ogg, .aac
Video.mp4, .mov, .avi
Archive.zip, .rar

Bilder werden mit file_type gleich image gespeichert, alles andere als file.

Speicherplatz pro Arbeitsbereich#

Alle Dateien im Medienverzeichnis eines Arbeitsbereichs teilen sich ein Speicherlimit, das vom Plan des Arbeitsbereichs festgelegt wird. Dateien, die mit dieser API und auf der Seite Medienverzeichnis hochgeladen werden, zählen beide, und das Löschen einer Datei gibt ihren Platz frei.

PlanMedienspeicher
Kostenlose Testphase250 MB
Lite1 GB
Standard2 GB
Advanced5 GB
Enterprise10 GB
AppSumo Plan 1 und Plan 21 GB
AppSumo Plan 32 GB
AppSumo Plan 43 GB
AppSumo Plan 55 GB

Ältere Pläne und ein Arbeitsbereich ohne aktiven Plan haben 1 GB. Ein Upload, der nicht passt, wird mit Storage full: … abgelehnt (siehe Fehler). Ein Arbeitsbereich, der sein Limit schon überschreitet, behält seine Dateien, kann aber keine neuen hinzufügen, bis wieder Platz für sie ist.

Antwort#

Ein erfolgreicher Request gibt HTTP 200 zurück:

{
  "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"
  }
}
FeldTypBeschreibung
statusinteger1, wenn die Datei hochgeladen wurde, 0, wenn der Request fehlgeschlagen ist.
messagestringFile uploaded successfully, andernfalls der Fehler.
data.idintegerID der Mediendatei. Verwenden Sie sie mit Mediendatei abrufen.
data.file_namestringName, unter dem die Datei gespeichert ist, von WbizTool generiert: media_, Ihre Arbeitsbereichs-ID, der Upload-Zeitpunkt und ein zufälliger Teil, mit der Endung der Datei.
data.original_file_namestringDer Name der hochgeladenen Datei.
data.file_urlstringDirekte Download-URL. Verwenden Sie sie beim Senden als img_url oder file_url. Sie ist öffentlich und läuft nicht ab, funktioniert aber nicht mehr, wenn die Datei gelöscht wird. Sie kann auf media.wbiztool.com (unserem CDN) oder auf wbiztool-static.s3.ap-southeast-1.amazonaws.com liegen; beide liefern dieselbe Datei. Speichern Sie sie also so, wie sie ist, und bauen Sie diese URLs nicht selbst zusammen.
data.file_typestringimage oder file.
data.file_sizeintegerGröße in Bytes.
data.file_size_displaystringLesbare Größe mit einer Nachkommastelle, zum Beispiel 242.5 KB.
data.mime_typestringAus der Endung ermittelter MIME-Typ, zum Beispiel application/pdf.
data.is_imagebooleantrue, wenn file_type den Wert image hat.
data.file_extensionstringEndung von original_file_name in Kleinbuchstaben, ohne Punkt.
data.created_atstringUpload-Zeitpunkt, ISO 8601 in UTC mit der Abweichung +00:00.

Fehler#

Auch Fehler geben HTTP 200 zurück, mit status gleich 0:

{ "status": 0, "message": "File is too large. Maximum size is 64MB. Your file: 71.3MB" }
MeldungLösung
Only POST method is supportedSenden Sie einen POST-Request.
client_id is requiredFügen Sie client_id als Formularfeld hinzu. Prüfen Sie, ob der Body multipart/form-data ist und nicht JSON.
api_key is requiredFügen Sie api_key als Formularfeld hinzu.
media_file is requiredSenden Sie die Datei in einem Feld namens media_file.
client_id must be a valid integerSenden Sie client_id als Zahl.
Invalid API keyPrüfen Sie, ob der Schlüssel existiert und nicht gelöscht oder deaktiviert wurde.
Invalid client_id for this API keyDer Schlüssel gehört zu einer anderen client_id.
File is too large. Maximum size is 64MB. Your file: …MBLaden Sie eine Datei mit höchstens 64 MB hoch.
File type not supported. Type detected: …Verwenden Sie eine der unterstützten Endungen.
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.Die Datei passt nicht in den Medienspeicher des Arbeitsbereichs. Löschen Sie Dateien, die Sie nicht mehr brauchen, auf der Seite Medienverzeichnis, oder kontaktieren Sie uns für mehr Platz.
Error uploading file: …Der Upload konnte nicht abgeschlossen werden. Versuchen Sie es erneut. Diese Meldung erhalten Sie auch, wenn der API-Schlüssel mit keinem Arbeitsbereich verknüpft ist; erstellen Sie einen neuen Schlüssel in dem Arbeitsbereich, den Sie verwenden möchten.

Hochladen und senden#

Laden Sie die Datei hoch und übergeben Sie dann file_url an Nachricht senden: als img_url mit msg_type 1 für Bilder oder als file_url mit msg_type 2 für andere Dateien.

PDF hochladen und senden
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)

Jeder Dateityp, den diese API akzeptiert, behält seine Endung, wenn er mit msg_type 2 gesendet wird, zum Beispiel brochure.doc oder catalogue.zip. WAV- und OGG-Audio kommen als Dokumente an, nicht als abspielbares Audio, und schlagen mit File type not supported fehl, wenn sie als Bild (msg_type 1) gesendet werden. MP3, M4A und AAC kommen als Audio an, das im Chat abgespielt wird, mit dem Text als separater Nachricht. Siehe Bilder und Dateien senden. Der Name wird in Kleinbuchstaben gesendet (Invoice-4821.PDF kommt als invoice-4821.pdf an).

Mit msg_type 1 gesendete Bilder dürfen höchstens 16 MB groß sein. Größere Bilder lassen sich hier zwar hochladen, schlagen aber beim Senden mit File exceeds WhatsApp size limit (16MB max) fehl. Komprimieren Sie sie vorher oder senden Sie sie als Datei mit msg_type 2.

Tipps#

  • Uploads wiederverwenden. Speichern Sie die id oder file_url und senden Sie dieselbe Datei mehrfach, statt sie erneut hochzuladen.
  • Aussagekräftige Originalnamen verwenden. original_file_name sehen Sie im Dashboard, und der Wert eignet sich gut als file_name beim Senden.
  • Frühere Uploads finden Sie mit Medien auflisten.