Aller au contenu
Wbiztool

API des médias

API de liste des fichiers multimédias

Obtenez les fichiers de la bibliothèque de médias de votre espace de travail avec leurs URL de téléchargement, des plus récents aux plus anciens. Filtrez par type ou recherchez par nom pour retrouver un fichier téléversé précédemment et réutiliser son URL dans un message.

GEThttps://wbiztool.com/api/v1/media/list/

Corps: Chaîne de requête, ou corps JSON avec POST

La liste inclut les fichiers téléversés avec l'API de téléversement de médias et sur la page Répertoire Média. Les fichiers supprimés ne sont pas inclus.

Exemple rapide#

curl -G https://wbiztool.com/api/v1/media/list/ \
  --data-urlencode client_id=12345 \
  --data-urlencode api_key=YOUR_API_KEY \
  --data-urlencode file_type=image \
  --data-urlencode page=1 \
  --data-urlencode limit=20

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

Paramètres de la requête#

Envoyez les paramètres dans la chaîne de requête d'une requête GET, ou dans un corps JSON d'une requête POST avec Content-Type: application/json. Ne mélangez pas les deux : si client_id figure dans la chaîne de requête, le corps JSON est ignoré. Un POST encodé comme formulaire fonctionne aussi pour client_id, api_key, file_type et search, mais page et limit sont ignorés dans les champs de formulaire ; envoyez-les dans la chaîne de requête ou en JSON.

Authentification

client_idintegerobligatoire

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

api_keystringobligatoire

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

Filtres et pagination

pageintegerfacultatif

Numéro de page, à partir de 1 (valeur par défaut). Les valeurs inférieures à 1 sont traitées comme 1.

limitintegerfacultatif

Nombre de fichiers par page, de 1 à 100. Valeur par défaut : 20. Les valeurs supérieures à 100 sont traitées comme 100, et les valeurs inférieures à 1 comme 20.

file_typestringfacultatif

image pour les images uniquement, ou file pour tout le reste. Toute autre valeur est ignorée.

searchstringfacultatif

Renvoie uniquement les fichiers dont le nom d'origine ou le nom de stockage contient ce texte. Insensible à la casse.

POST avec un corps JSONcURL
curl -X POST https://wbiztool.com/api/v1/media/list/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "search": "invoice",
    "page": 1,
    "limit": 50
  }'

Réponse#

{
  "status": 1,
  "message": "Media files retrieved successfully",
  "data": {
    "total_count": 1,
    "page": 1,
    "limit": 20,
    "total_pages": 1,
    "has_next": false,
    "has_previous": false,
    "media_files": [
      {
        "id": 5123,
        "file_name": "media_12345_17895806123456.jpg",
        "original_file_name": "diwali-sale.jpg",
        "file_url": "https://wbiztool-static.s3.ap-southeast-1.amazonaws.com/media/org_12345/media_12345_17895806123456.jpg",
        "file_type": "image",
        "file_size": 524288,
        "file_size_display": "512.0 KB",
        "mime_type": "image/jpeg",
        "is_image": true,
        "file_extension": "jpg",
        "created_at": "2026-09-16T10:23:52.106447+00:00",
        "uploaded_by": "[email protected]"
      }
    ]
  }
}
ChampTypeDescription
statusinteger1 en cas de succès, 0 si la requête a échoué.
messagestringMedia files retrieved successfully, sinon l'erreur.
data.total_countintegerNombre de fichiers correspondant à vos filtres, toutes pages confondues.
data.pageintegerLa page renvoyée.
data.limitintegerLa taille de page utilisée, après ajustement entre 1 et 100.
data.total_pagesintegerNombre de pages. 0 lorsqu'il n'y a aucun fichier.
data.has_nextbooleantrue s'il existe une page après celle-ci.
data.has_previousbooleantrue si page est supérieur à 1.
data.media_filesarrayLes fichiers de cette page, des plus récents aux plus anciens. Vide si la page se situe au-delà de la fin.

Champs d'un fichier multimédia#

ChampTypeDescription
idintegerID du fichier multimédia. Utilisez-le avec Obtenir un fichier multimédia.
file_namestringNom sous lequel le fichier est stocké.
original_file_namestringLe nom du fichier au moment de son téléversement.
file_urlstringURL de téléchargement direct. Utilisez-la comme img_url ou file_url lors de l'envoi.
file_typestringimage ou file.
file_sizeintegerTaille en octets.
file_size_displaystringTaille lisible avec une décimale, par exemple 512.0 KB.
mime_typestringType MIME, par exemple image/jpeg.
is_imagebooleantrue lorsque file_type vaut image.
file_extensionstringExtension de original_file_name en minuscules, sans le point.
created_atstringDate du téléversement, au format ISO 8601 en UTC avec un décalage +00:00.
uploaded_bystring or nullNom d'utilisateur de connexion (généralement l'adresse e-mail) du membre de l'équipe qui a téléversé le fichier.

Erreurs#

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

{ "status": 0, "message": "Invalid API key" }
MessageComment corriger
client_id is requiredAjoutez client_id. Si vous envoyez du JSON, vérifiez que le corps est un JSON valide (une erreur d'analyse est signalée avec ce message).
api_key is requiredAjoutez api_key.
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.
Error retrieving media files: …Le plus souvent, page ou limit n'est pas un nombre entier dans la query string ou les champs de formulaire. Dans un corps JSON, il n'y a pas d'erreur : si page n'est pas un nombre entier, page, limit, file_type et search sont tous ignorés, et vous obtenez la page 1 avec 20 fichiers, sans filtre. Si seul limit n'en est pas un, limit, file_type et search sont ignorés.

Lire toutes les pages#

Continuez à demander la page suivante tant que data.has_next vaut true.

Récupérer tous les fichiers multimédias
import requests

files, page = [], 1

while True:
    result = requests.get(
        "https://wbiztool.com/api/v1/media/list/",
        params={"client_id": 12345, "api_key": "YOUR_API_KEY", "page": page, "limit": 100},
        timeout=60,
    ).json()
    if result["status"] != 1:
        raise RuntimeError(result["message"])

    files += result["data"]["media_files"]
    if not result["data"]["has_next"]:
        break
    page += 1

print(len(files), "files")

Conseils#

  • Utilisez le bon paramètre d'envoi : lorsque is_image vaut true, envoyez l'URL comme img_url avec msg_type 1 ; sinon comme file_url avec msg_type 2. Consultez Envoyer un message.
  • Gardez votre clé API hors des journaux : les chaînes de requête sont souvent enregistrées par les proxys et les serveurs. Si c'est important pour vous, utilisez plutôt POST avec un corps JSON.