Zum Inhalt springen
Wbiztool

Media-API

Mediendateien auflisten (API)

Rufen Sie die Dateien in der Medienbibliothek Ihres Arbeitsbereichs mit ihren Download-URLs ab, die neuesten zuerst. Filtern Sie nach Typ oder suchen Sie nach Namen, um eine früher hochgeladene Datei zu finden und ihre URL in einer Nachricht wiederzuverwenden.

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

Body: Query-String oder JSON-Body mit POST

Die Liste enthält Dateien, die mit der Media-Upload-API und auf der Seite Medienverzeichnis hochgeladen wurden. Gelöschte Dateien sind nicht enthalten.

Kurzes Beispiel#

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

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

Request-Parameter#

Senden Sie die Parameter im Query-String eines GET-Requests oder als JSON-Body in einem POST-Request mit Content-Type: application/json. Mischen Sie beides nicht: Steht client_id im Query-String, wird der JSON-Body ignoriert. Ein formularkodierter POST funktioniert ebenfalls für client_id, api_key, file_type und search, aber page und limit werden in Formularfeldern ignoriert; senden Sie diese im Query-String oder als JSON.

Authentifizierung

client_idintegererforderlich

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

api_keystringerforderlich

Ihr API-Schlüssel von derselben Seite.

Filter und Paginierung

pageintegeroptional

Seitennummer, beginnend bei 1 (Standard). Werte unter 1 werden als 1 behandelt.

limitintegeroptional

Dateien pro Seite, von 1 bis 100. Standard 20. Werte über 100 werden als 100 behandelt, Werte unter 1 als 20.

file_typestringoptional

image nur für Bilder oder file für alles andere. Jeder andere Wert wird ignoriert.

searchstringoptional

Gibt nur Dateien zurück, deren Originalname oder gespeicherter Name diesen Text enthält. Groß-/Kleinschreibung wird nicht beachtet.

POST mit JSON-BodycURL
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
  }'

Antwort#

{
  "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]"
      }
    ]
  }
}
FeldTypBeschreibung
statusinteger1 bei Erfolg, 0, wenn der Request fehlgeschlagen ist.
messagestringMedia files retrieved successfully, andernfalls der Fehler.
data.total_countintegerDateien, die Ihren Filtern entsprechen, über alle Seiten.
data.pageintegerDie zurückgegebene Seite.
data.limitintegerDie verwendete Seitengröße nach der Anpassung auf 1 bis 100.
data.total_pagesintegerAnzahl der Seiten. 0, wenn keine Dateien vorhanden sind.
data.has_nextbooleantrue, wenn es nach dieser Seite eine weitere gibt.
data.has_previousbooleantrue, wenn page größer als 1 ist.
data.media_filesarrayDie Dateien auf dieser Seite, die neuesten zuerst. Leer, wenn die Seite hinter dem Ende liegt.

Felder einer Mediendatei#

FeldTypBeschreibung
idintegerID der Mediendatei. Verwenden Sie sie mit Mediendatei abrufen.
file_namestringName, unter dem die Datei gespeichert ist.
original_file_namestringDer Name, den die Datei beim Hochladen hatte.
file_urlstringDirekte Download-URL. Verwenden Sie sie beim Senden als img_url oder file_url.
file_typestringimage oder file.
file_sizeintegerGröße in Bytes.
file_size_displaystringLesbare Größe mit einer Nachkommastelle, zum Beispiel 512.0 KB.
mime_typestringMIME-Typ, zum Beispiel image/jpeg.
is_imagebooleantrue, wenn file_type den Wert image hat.
file_extensionstringEndung von original_file_name in Kleinbuchstaben, ohne Punkt.
created_atstringUpload-Zeitpunkt, ISO 8601 in UTC mit der Abweichung +00:00.
uploaded_bystring or nullAnmeldename (meist die E-Mail-Adresse) des Teammitglieds, das die Datei hochgeladen hat.

Fehler#

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

{ "status": 0, "message": "Invalid API key" }
MeldungLösung
client_id is requiredFügen Sie client_id hinzu. Wenn Sie JSON senden, prüfen Sie, ob der Body gültiges JSON ist (ein Parse-Fehler wird mit dieser Meldung gemeldet).
api_key is requiredFügen Sie api_key hinzu.
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.
Error retrieving media files: …Meist ist page oder limit im Query-String oder in den Formularfeldern keine ganze Zahl. In einem JSON-Body gibt es keinen Fehler: Ist page keine ganze Zahl, werden page, limit, file_type und search alle ignoriert, und Sie erhalten Seite 1 mit 20 Dateien ohne Filter. Ist nur limit keine ganze Zahl, werden limit, file_type und search ignoriert.

Alle Seiten abrufen#

Fragen Sie die nächste Seite ab, solange data.has_next den Wert true hat.

Alle Mediendateien abrufen
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")

Tipps#

  • Den richtigen Sendeparameter verwenden: Wenn is_image den Wert true hat, senden Sie die URL als img_url mit msg_type 1, andernfalls als file_url mit msg_type 2. Siehe Nachricht senden.
  • API-Schlüssel aus Logs heraushalten: Query-Strings werden von Proxys und Servern oft protokolliert. Wenn Ihnen das wichtig ist, verwenden Sie stattdessen POST mit einem JSON-Body.