Medya API'si
Medya dosyalarını listeleme API'si
Çalışma alanınızın medya kitaplığındaki dosyaları indirme URL'leriyle birlikte, en yeniden başlayarak alın. Daha önce yüklediğiniz bir dosyayı bulmak ve URL'sini bir mesajda yeniden kullanmak için türe göre filtreleyin veya ada göre arayın.
https://wbiztool.com/api/v1/media/list/Gövde: Sorgu dizesi veya POST ile bir JSON gövdesi
Liste, Medya yükleme API'si ile ve Medya klasörü sayfasında yüklenen dosyaları içerir. Silinen dosyalar dahil değildir.
Hızlı örnek#
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=20import requests
response = requests.get(
"https://wbiztool.com/api/v1/media/list/",
params={
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"file_type": "image",
"page": 1,
"limit": 20,
},
timeout=60,
)
result = response.json()
if result["status"] == 1:
data = result["data"]
print(f"Page {data['page']} of {data['total_pages']} ({data['total_count']} files)")
for media in data["media_files"]:
print(media["id"], media["original_file_name"], media["file_url"])
else:
print("Failed:", result["message"])// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const url = new URL("https://wbiztool.com/api/v1/media/list/");
url.search = new URLSearchParams({
client_id: "12345",
api_key: "YOUR_API_KEY",
file_type: "image",
page: "1",
limit: "20",
});
const response = await fetch(url);
const result = await response.json();
if (result.status === 1) {
const { data } = result;
console.log(`Page ${data.page} of ${data.total_pages} (${data.total_count} files)`);
for (const media of data.media_files) {
console.log(media.id, media.original_file_name, media.file_url);
}
} else {
console.error("Failed:", result.message);
}<?php
$query = http_build_query([
'client_id' => 12345,
'api_key' => 'YOUR_API_KEY',
'file_type' => 'image',
'page' => 1,
'limit' => 20,
]);
$ch = curl_init('https://wbiztool.com/api/v1/media/list/?' . $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) {
foreach ($result['data']['media_files'] as $media) {
echo $media['id'] . ' ' . $media['original_file_name'] . ' ' . $media['file_url'] . "\n";
}
} else {
echo 'Failed: ' . ($result['message'] ?? 'no response');
}12345 ve YOUR_API_KEY değerlerini kendi değerlerinizle değiştirin. Bunları nerede bulacağınız için Kimlik doğrulama bölümüne bakın.
İstek parametreleri#
Parametreleri bir GET isteğinin sorgu dizesinde veya Content-Type: application/json ile bir POST isteğinde JSON gövdesi olarak gönderin. İkisini karıştırmayın: client_id sorgu dizesindeyse JSON gövdesi yok sayılır. Form kodlu bir POST da client_id, api_key, file_type ve search için çalışır, ancak form alanlarında page ve limit yok sayılır; bunları sorgu dizesinde veya JSON'da gönderin.
Kimlik doğrulama
client_idintegerzorunluAyarlar → API anahtarları sayfasındaki API Client ID'niz.
api_keystringzorunluAynı sayfadaki API anahtarınız.
Filtreler ve sayfalama
pageintegeristeğe bağlıSayfa numarası,
1(varsayılan) ile başlar. 1'den küçük değerler1olarak değerlendirilir.limitintegeristeğe bağlıSayfa başına dosya, 1 ile 100 arası. Varsayılan
20. 100'den büyük değerler100, 1'den küçük değerler20olarak değerlendirilir.file_typestringisteğe bağlıYalnızca görseller için
image, diğer her şey içinfile. Diğer her değer yok sayılır.searchstringisteğe bağlıYalnızca orijinal adı veya kayıtlı adı bu metni içeren dosyaları döndürür. Büyük/küçük harfe duyarlı değildir.
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
}'Yanıt#
{
"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]"
}
]
}
}
| Alan | Tür | Açıklama |
|---|---|---|
status | integer | Başarıda 1, istek başarısız olduysa 0. |
message | string | Media files retrieved successfully, aksi halde hata mesajı. |
data.total_count | integer | Tüm sayfalarda filtrelerinizle eşleşen dosyalar. |
data.page | integer | Döndürülen sayfa. |
data.limit | integer | 1–100 ayarlamasından sonra kullanılan sayfa boyutu. |
data.total_pages | integer | Sayfa sayısı. Dosya yoksa 0. |
data.has_next | boolean | Bundan sonra bir sayfa varsa true. |
data.has_previous | boolean | page 1'den büyükse true. |
data.media_files | dizi | Bu sayfadaki dosyalar, en yeniden başlayarak. Sayfa sonun ötesindeyse boştur. |
Medya dosyası alanları#
| Alan | Tür | Açıklama |
|---|---|---|
id | integer | Medya dosyasının ID'si. Medya dosyası getirme ile kullanın. |
file_name | string | Dosyanın kaydedildiği ad. |
original_file_name | string | Dosyanın yüklendiği andaki adı. |
file_url | string | Doğrudan indirme URL'si. Gönderirken img_url veya file_url olarak kullanın. |
file_type | string | image veya file. |
file_size | integer | Bayt cinsinden boyut. |
file_size_display | string | Tek ondalıklı okunabilir boyut, örneğin 512.0 KB. |
mime_type | string | MIME türü, örneğin image/jpeg. |
is_image | boolean | file_type değeri image olduğunda true. |
file_extension | string | original_file_name değerinin noktasız, küçük harfli uzantısı. |
created_at | string | Yükleme zamanı, +00:00 farkıyla UTC'de ISO 8601. |
uploaded_by | string veya null | Dosyayı yükleyen ekip üyesinin giriş kullanıcı adı (genellikle e-posta adresi). |
Hatalar#
Hatalar da status değeri 0 olarak HTTP 200 döndürür:
{ "status": 0, "message": "Invalid API key" }
| Mesaj | Nasıl düzeltilir |
|---|---|
client_id is required | client_id ekleyin. JSON gönderiyorsanız gövdenin geçerli JSON olduğunu kontrol edin (ayrıştırma hatası bu mesajla bildirilir). |
api_key is required | api_key ekleyin. |
client_id must be a valid integer | client_id değerini sayı olarak gönderin. |
Invalid API key | Anahtarın mevcut olduğunu ve silinmediğini veya devre dışı bırakılmadığını kontrol edin. |
Invalid client_id for this API key | Anahtar farklı bir client_id değerine ait. |
Error retrieving media files: … | Genellikle sorgu dizesindeki veya form alanlarındaki page ya da limit bir tam sayı değildir. JSON gövdesinde hata oluşmaz: page tam sayı değilse page, limit, file_type ve search değerlerinin tümü yok sayılır; bu yüzden filtre olmadan 20 dosyalık 1. sayfayı alırsınız. Yalnızca limit tam sayı değilse limit, file_type ve search yok sayılır. |
Her sayfayı okuma#
data.has_next değeri true olduğu sürece sonraki sayfayı istemeye devam edin.
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")// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const files = [];
let page = 1;
while (true) {
const url = new URL("https://wbiztool.com/api/v1/media/list/");
url.search = new URLSearchParams({ client_id: "12345", api_key: "YOUR_API_KEY", page: String(page), limit: "100" });
const result = await (await fetch(url)).json();
if (result.status !== 1) throw new Error(result.message);
files.push(...result.data.media_files);
if (!result.data.has_next) break;
page += 1;
}
console.log(files.length, "files");İpuçları#
- Doğru gönderim parametresini kullanın:
is_imagedeğeritrueolduğunda URL'yimsg_type1 ileimg_urlolarak, aksi haldemsg_type2 ilefile_urlolarak gönderin. Bkz. Mesaj gönderme. - API anahtarınızı günlüklerin dışında tutun: sorgu dizeleri genellikle proxy'ler ve sunucular tarafından günlüğe kaydedilir. Bu sizin için önemliyse bunun yerine JSON gövdesiyle
POSTkullanın.
