Media-API
Mediendatei abrufen (API)
Rufen Sie die Details und die Download-URL einer Datei in Ihrer Medienbibliothek anhand ihrer ID ab. Nutzen Sie die API, um vor dem Senden zu prüfen, ob eine Datei noch existiert.
https://wbiztool.com/api/v1/media/{media_id}/Body: Query-String oder JSON-Body mit POST
Ersetzen Sie {media_id} im Pfad durch die id, die Medien hochladen oder Medien auflisten zurückgegeben hat, zum Beispiel /api/v1/media/5122/.
Kurzes Beispiel#
curl -G https://wbiztool.com/api/v1/media/5122/ \
--data-urlencode client_id=12345 \
--data-urlencode api_key=YOUR_API_KEYimport requests
media_id = 5122
response = requests.get(
f"https://wbiztool.com/api/v1/media/{media_id}/",
params={"client_id": 12345, "api_key": "YOUR_API_KEY"},
timeout=60,
)
result = response.json()
if result["status"] == 1:
media = result["data"]
print(media["original_file_name"], media["file_size_display"], media["file_url"])
else:
print("Failed:", result["message"])// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const mediaId = 5122;
const url = new URL(`https://wbiztool.com/api/v1/media/${mediaId}/`);
url.search = new URLSearchParams({ client_id: "12345", api_key: "YOUR_API_KEY" });
const response = await fetch(url);
const result = await response.json();
if (result.status === 1) {
const media = result.data;
console.log(media.original_file_name, media.file_size_display, media.file_url);
} else {
console.error("Failed:", result.message);
}<?php
$mediaId = 5122;
$query = http_build_query(['client_id' => 12345, 'api_key' => 'YOUR_API_KEY']);
$ch = curl_init("https://wbiztool.com/api/v1/media/$mediaId/?" . $query);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);
if (($result['status'] ?? 0) === 1) {
echo $result['data']['original_file_name'] . ': ' . $result['data']['file_url'];
} else {
echo 'Failed: ' . ($result['message'] ?? 'no response');
}Ersetzen Sie 12345 und YOUR_API_KEY durch Ihre eigenen Werte. Wo Sie diese finden, steht unter Authentifizierung.
Request-Parameter#
Senden Sie client_id und api_key im Query-String eines GET-Requests oder als JSON-Body in einem POST-Request. Steht client_id im Query-String, wird der JSON-Body ignoriert.
Pfad
media_idintegererforderlichID der Mediendatei. Sie muss eine ganze Zahl sein; alles andere liefert statt JSON eine HTML-Antwort „page not found“.
Authentifizierung
client_idintegererforderlichIhre API-Client-ID aus Einstellungen → API-Schlüssel.
api_keystringerforderlichIhr API-Schlüssel von derselben Seite.
Antwort#
{
"status": 1,
"message": "Media file retrieved successfully",
"data": {
"id": 5122,
"file_name": "media_12345_17895804001234.pdf",
"original_file_name": "invoice-4821.pdf",
"file_url": "https://wbiztool-static.s3.ap-southeast-1.amazonaws.com/media/org_12345/media_12345_17895804001234.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",
"modified_at": "2026-09-16T10:20:31.512961+00:00",
"uploaded_by": "[email protected]"
}
}
| Feld | Typ | Beschreibung |
|---|---|---|
status | integer | 1 bei Erfolg, 0, wenn der Request fehlgeschlagen ist. |
message | string | Media file retrieved successfully, andernfalls der Fehler. |
data.id | integer | ID der Mediendatei. |
data.file_name | string | Name, unter dem die Datei gespeichert ist. |
data.original_file_name | string | Der Name, den die Datei beim Hochladen hatte. |
data.file_url | string | Direkte Download-URL. Verwenden Sie sie beim Senden als img_url oder file_url. |
data.file_type | string | image oder file. |
data.file_size | integer | Größe in Bytes. |
data.file_size_display | string | Lesbare Größe mit einer Nachkommastelle, zum Beispiel 242.5 KB. |
data.mime_type | string | MIME-Typ, zum Beispiel application/pdf. |
data.is_image | boolean | true, wenn file_type den Wert image hat. |
data.file_extension | string | Endung von original_file_name in Kleinbuchstaben, ohne Punkt. |
data.created_at | string | Upload-Zeitpunkt, ISO 8601 in UTC mit der Abweichung +00:00. |
data.modified_at | string | Wann der Datensatz der Datei zuletzt geändert wurde, im selben Format. |
data.uploaded_by | string or null | Anmeldename (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": "Media file not found" }
Eine Ausnahme: Wenn media_id keine Zahl ist, passt die URL zu keinem Endpoint, und Sie erhalten statt JSON eine HTML-Seite mit 404.
| Meldung | Lösung |
|---|---|
client_id is required | Fügen Sie client_id hinzu. |
api_key is required | Fügen Sie api_key hinzu. |
client_id must be a valid integer | Senden Sie client_id als Zahl. |
Invalid API key | Prüfen Sie, ob der Schlüssel existiert und nicht gelöscht oder deaktiviert wurde. |
Invalid client_id for this API key | Der Schlüssel gehört zu einer anderen client_id. |
Media file not found | Im Arbeitsbereich des API-Schlüssels existiert keine Datei mit dieser ID, oder sie wurde gelöscht. |
Error retrieving media file: … | Auf unserer Seite ist etwas schiefgelaufen. Versuchen Sie es erneut. |
Datei vor dem Senden prüfen#
Rufen Sie die Datei über ihre ID ab, brechen Sie ab, wenn sie nicht mehr existiert, und senden Sie dann ihre file_url: bei Bildern als img_url mit msg_type 1, bei allem anderen als file_url mit msg_type 2.
import requests
BASE = "https://wbiztool.com/api/v1"
AUTH = {"client_id": 12345, "api_key": "YOUR_API_KEY"}
result = requests.get(f"{BASE}/media/5122/", params=AUTH, timeout=60).json()
if result["status"] != 1:
raise SystemExit("Can't use this file: " + result["message"])
media = result["data"]
message = {
**AUTH,
"whatsapp_client": 678,
"country_code": "91",
"phone": "9876543210",
"msg": "Here is the document you asked for.",
}
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"])
print(requests.post(f"{BASE}/send_msg/", json=message, timeout=60).json())// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const BASE = "https://wbiztool.com/api/v1";
const auth = { client_id: 12345, api_key: "YOUR_API_KEY" };
const url = new URL(`${BASE}/media/5122/`);
url.search = new URLSearchParams(auth);
const result = await (await fetch(url)).json();
if (result.status !== 1) throw new Error(`Can't use this file: ${result.message}`);
const media = result.data;
const message = {
...auth,
whatsapp_client: 678,
country_code: "91",
phone: "9876543210",
msg: "Here is the document you asked for.",
...(media.is_image
? { msg_type: 1, img_url: media.file_url }
: { msg_type: 2, file_url: media.file_url, file_name: media.original_file_name }),
};
const sent = await fetch(`${BASE}/send_msg/`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(message),
});
console.log(await sent.json());Dateien, die keine Bilder sind, etwa .doc, .ppt, .csv, .zip, .wav und .mov, werden mit angehängtem .pdf im Namen zugestellt, und Bilder über 16 MB können nicht gesendet werden. Siehe Medien hochladen → Hochladen und senden.
Tipps#
- Gelöschte Dateien liefern
Media file not found, auch wenn ihrefile_urlmöglicherweise noch heruntergeladen werden kann. Prüfen Sie mit diesem Endpoint statt durch Abrufen der URL. URLs hochgeladener Dateien sind öffentlich und dauerhaft; siehe Medien hochladen → Hochladen und senden. - Dateien gehören zu einem Arbeitsbereich. Eine in einem Arbeitsbereich hochgeladene Datei kann nicht mit einem API-Schlüssel aus einem anderen gelesen werden.
- ID unbekannt? Suchen Sie mit Medien auflisten nach dem Namen.
