Aller au contenu
WbizTool

API des médias

API de téléversement de médias

Téléversez une image, un document, un fichier audio ou une vidéo dans le Répertoire média de votre espace de travail et obtenez en retour une URL de téléchargement. Transmettez cette URL à Envoyer un message ou à Créer un rappel comme img_url, lorsque vous ne disposez pas de votre propre hébergement de fichiers.

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

Corps: multipart/form-data

Le fichier est stocké immédiatement et la réponse inclut son file_url. Les fichiers téléversés apparaissent aussi sur la page Répertoire média de votre tableau de bord.

Exemple rapide#

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

Remplacez 12345 et YOUR_API_KEY par vos propres valeurs. Consultez Authentification pour savoir où les trouver.

Paramètres de la requête#

Envoyez la requête en multipart/form-data. Cet endpoint ne lit ni les corps JSON ni les paramètres de la chaîne de requête.

client_idintegerobligatoire

Votre ID client API, dans Paramètres → Clés API.

api_keystringobligatoire

Votre clé API, sur cette même page.

media_filefileobligatoire

Le fichier à téléverser, jusqu'à 64 Mo, et il doit tenir dans le stockage des médias de l'espace de travail. Son type est déterminé par l'extension du nom de fichier : le nom doit donc se terminer par l'une des extensions prises en charge.

Types de fichiers pris en charge#

CatégorieExtensions
Images.jpg, .jpeg, .png, .gif, .webp, .bmp
Documents.pdf, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .txt, .csv
Audio.mp3, .m4a, .wav, .ogg, .aac
Vidéo.mp4, .mov, .avi
Archives.zip, .rar

Les images sont stockées avec file_type défini sur image ; tout le reste est défini sur file.

Stockage par espace de travail#

Tous les fichiers du Répertoire média d'un espace de travail partagent une même limite de stockage, fixée par le forfait de l'espace de travail. Les fichiers téléversés avec cette API et ceux importés sur la page Répertoire média comptent tous, et supprimer un fichier libère sa place.

ForfaitStockage des médias
Essai gratuit250 Mo
Lite1 Go
Standard2 Go
Advanced5 Go
Enterprise10 Go
AppSumo Plan 1 et Plan 21 Go
AppSumo Plan 32 Go
AppSumo Plan 43 Go
AppSumo Plan 55 Go

Les anciens forfaits, et un espace de travail sans forfait actif, ont 1 Go. Un téléversement qui ne tient pas est refusé avec Storage full: … (voir Erreurs). Un espace de travail qui dépasse déjà sa limite garde ses fichiers, mais ne peut pas en ajouter de nouveaux tant qu'il n'a pas la place.

Réponse#

Une requête réussie renvoie le code 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"
  }
}
ChampTypeDescription
statusinteger1 si le fichier a été téléversé, 0 si la requête a échoué.
messagestringFile uploaded successfully, sinon l'erreur.
data.idintegerID du fichier multimédia. Utilisez-le avec Obtenir un fichier multimédia.
data.file_namestringNom sous lequel le fichier est stocké, généré par WbizTool : media_, l'ID de votre espace de travail, l'heure du téléversement et une partie aléatoire, avec l'extension du fichier.
data.original_file_namestringLe nom du fichier que vous avez téléversé.
data.file_urlstringURL de téléchargement direct. Utilisez-la comme img_url ou file_url lors de l'envoi. Elle est publique et n'expire pas, mais cesse de fonctionner quand le fichier est supprimé. Elle peut être sur media.wbiztool.com (notre CDN) ou sur wbiztool-static.s3.ap-southeast-1.amazonaws.com ; les deux servent le même fichier : stockez-la telle quelle et ne construisez pas ces URL vous-même.
data.file_typestringimage ou file.
data.file_sizeintegerTaille en octets.
data.file_size_displaystringTaille lisible avec une décimale, par exemple 242.5 KB.
data.mime_typestringType MIME déduit de l'extension, par exemple application/pdf.
data.is_imagebooleantrue lorsque file_type vaut image.
data.file_extensionstringExtension de original_file_name en minuscules, sans le point.
data.created_atstringDate du téléversement, au format ISO 8601 en UTC avec un décalage +00:00.

Erreurs#

Les erreurs renvoient aussi le code HTTP 200, avec status à 0 :

{ "status": 0, "message": "File is too large. Maximum size is 64MB. Your file: 71.3MB" }
MessageComment corriger
Only POST method is supportedEnvoyez une requête POST.
client_id is requiredAjoutez client_id comme champ de formulaire. Vérifiez que le corps est en multipart/form-data et non en JSON.
api_key is requiredAjoutez api_key comme champ de formulaire.
media_file is requiredEnvoyez le fichier dans un champ nommé media_file.
client_id must be a valid integerEnvoyez client_id sous forme de nombre.
Invalid API keyVérifiez que la clé existe et n'a pas été supprimée ni désactivée.
Invalid client_id for this API keyLa clé appartient à un autre client_id.
File is too large. Maximum size is 64MB. Your file: …MBTéléversez un fichier de 64 Mo maximum.
File type not supported. Type detected: …Utilisez l'une des extensions prises en charge.
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.Le fichier ne tient pas dans le stockage des médias de l'espace de travail. Supprimez les fichiers dont vous n'avez plus besoin sur la page Répertoire média, ou contactez-nous pour plus d'espace.
Error uploading file: …Le téléversement n'a pas pu aboutir. Réessayez. Vous obtenez aussi cette erreur si la clé API n'est liée à aucun espace de travail ; créez une nouvelle clé dans l'espace de travail que vous souhaitez utiliser.

Téléverser puis envoyer#

Téléversez le fichier, puis transmettez file_url à Envoyer un message : comme img_url avec msg_type 1 pour les images, ou comme file_url avec msg_type 2 pour les autres fichiers.

Téléverser un PDF et l'envoyer
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)

Tous les types de fichiers acceptés par cette API gardent leur extension quand ils sont envoyés avec msg_type 2, par exemple brochure.doc ou catalogue.zip. Les audios WAV et OGG arrivent comme documents et non comme audio lisible, et échouent avec File type not supported quand ils sont envoyés comme image (msg_type 1). Les MP3, M4A et AAC arrivent comme audio lisible dans la discussion, avec le texte dans un message séparé. Consultez Envoyer des images et des fichiers. Le nom est envoyé en minuscules (Invoice-4821.PDF arrive sous le nom invoice-4821.pdf).

Les images envoyées avec msg_type 1 doivent faire 16 Mo ou moins. Les images plus volumineuses se téléversent sans problème ici, mais leur envoi échoue avec File exceeds WhatsApp size limit (16MB max). Compressez-les d'abord, ou envoyez-les comme fichier avec msg_type 2.

Conseils#

  • Réutilisez vos téléversements. Conservez l'id ou le file_url et envoyez le même fichier autant de fois que nécessaire au lieu de le téléverser à nouveau.
  • Gardez un nom d'origine explicite. original_file_name est le nom affiché dans le tableau de bord et une bonne valeur pour file_name lors de l'envoi.
  • Retrouvez vos anciens téléversements avec Lister les médias.