मीडिया API
मीडिया फाइलों की सूची API
अपने वर्कस्पेस की मीडिया लाइब्रेरी की फाइलें उनके डाउनलोड URL के साथ पाएं, सबसे नई पहले। पहले अपलोड की गई फाइल ढूंढने और उसका URL किसी संदेश में दोबारा इस्तेमाल करने के लिए टाइप से फिल्टर करें या नाम से खोजें।
https://wbiztool.com/api/v1/media/list/बॉडी: Query string, या POST के साथ JSON बॉडी
सूची में मीडिया अपलोड करें API से और मीडिया डायरेक्टरी पेज पर अपलोड की गई फाइलें शामिल होती हैं। डिलीट की गई फाइलें शामिल नहीं होतीं।
छोटा उदाहरण#
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 और YOUR_API_KEY की जगह अपनी वैल्यू डालें। ये कहां मिलेंगी, यह जानने के लिए ऑथेंटिकेशन देखें।
रिक्वेस्ट पैरामीटर#
पैरामीटर GET रिक्वेस्ट की query string में भेजें, या Content-Type: application/json वाली POST रिक्वेस्ट में JSON बॉडी के रूप में। दोनों को मिलाएं नहीं: अगर client_id query string में है, तो JSON बॉडी को नज़रअंदाज़ कर दिया जाता है। फॉर्म-एन्कोडेड POST भी client_id, api_key, file_type और search के लिए काम करता है, लेकिन फॉर्म फील्ड में page और limit नज़रअंदाज़ हो जाते हैं; इन्हें query string या JSON में भेजें।
ऑथेंटिकेशन
client_idintegerआवश्यकसेटिंग्स → API Keys से आपका API क्लाइंट ID।
api_keystringआवश्यकउसी पेज से आपकी API की।
फिल्टर और पेजिनेशन
pageintegerवैकल्पिकपेज नंबर,
1(डिफ़ॉल्ट) से शुरू। 1 से कम वैल्यू को1माना जाता है।limitintegerवैकल्पिकहर पेज पर फाइलें, 1 से 100 तक। डिफ़ॉल्ट
20। 100 से ज़्यादा वैल्यू को100और 1 से कम वैल्यू को20माना जाता है।file_typestringवैकल्पिकसिर्फ इमेज के लिए
image, या बाकी सब के लिएfile। कोई भी दूसरी वैल्यू नज़रअंदाज़ की जाती है।searchstringवैकल्पिकसिर्फ वे फाइलें लौटाएं जिनके मूल नाम या स्टोर किए गए नाम में यह टेक्स्ट हो। अक्षरों के छोटे-बड़े (case) होने से फर्क नहीं पड़ता।
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
}'रिस्पॉन्स#
{
"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]"
}
]
}
}
| फील्ड | टाइप | विवरण |
|---|---|---|
status | integer | सफल होने पर 1, रिक्वेस्ट फेल होने पर 0। |
message | string | Media files retrieved successfully, वरना एरर। |
data.total_count | integer | सभी पेजों को मिलाकर आपके फिल्टर से मैच करने वाली फाइलें। |
data.page | integer | लौटाया गया पेज। |
data.limit | integer | 1 से 100 के समायोजन के बाद इस्तेमाल हुआ पेज साइज़। |
data.total_pages | integer | पेजों की संख्या। कोई फाइल न होने पर 0। |
data.has_next | boolean | इस पेज के बाद कोई पेज हो तो true। |
data.has_previous | boolean | page 1 से बड़ा हो तो true। |
data.media_files | array | इस पेज की फाइलें, सबसे नई पहले। अगर पेज आखिरी पेज से आगे है तो खाली। |
मीडिया फाइल फील्ड#
| फील्ड | टाइप | विवरण |
|---|---|---|
id | integer | मीडिया फाइल का ID। इसे मीडिया फाइल पाएं के साथ इस्तेमाल करें। |
file_name | string | वह नाम जिससे फाइल स्टोर है। |
original_file_name | string | अपलोड के समय फाइल का नाम। |
file_url | string | डायरेक्ट डाउनलोड URL। भेजते समय इसे img_url या file_url के रूप में इस्तेमाल करें। |
file_type | string | image या file। |
file_size | integer | बाइट में साइज़। |
file_size_display | string | एक दशमलव स्थान के साथ पढ़ने लायक साइज़, जैसे 512.0 KB। |
mime_type | string | MIME टाइप, जैसे image/jpeg। |
is_image | boolean | file_type के image होने पर true। |
file_extension | string | original_file_name का lower-case एक्सटेंशन, बिना डॉट के। |
created_at | string | अपलोड का समय, UTC में ISO 8601, +00:00 ऑफसेट के साथ। |
uploaded_by | string or null | फाइल अपलोड करने वाले टीम सदस्य का लॉगिन यूज़रनेम (आमतौर पर ईमेल पता)। |
एरर#
एरर भी HTTP 200 लौटाते हैं, और status 0 होता है:
{ "status": 0, "message": "Invalid API key" }
| संदेश | कैसे ठीक करें |
|---|---|
client_id is required | client_id जोड़ें। अगर आप JSON भेजते हैं, तो जांचें कि बॉडी सही JSON है (पार्स एरर इसी संदेश के रूप में दिखता है)। |
api_key is required | api_key जोड़ें। |
client_id must be a valid integer | client_id को नंबर के रूप में भेजें। |
Invalid API key | जांचें कि की मौजूद है और डिलीट या डिसेबल नहीं हुई है। |
Invalid client_id for this API key | की किसी दूसरे client_id की है। |
Error retrieving media files: … | आमतौर पर query string या फॉर्म फील्ड में page या limit पूर्ण संख्या नहीं होती। JSON बॉडी में कोई एरर नहीं आता: अगर page पूर्ण संख्या नहीं है, तो page, limit, file_type और search सभी नज़रअंदाज़ हो जाते हैं, इसलिए आपको बिना किसी फिल्टर के 20 फाइलों वाला पेज 1 मिलता है। अगर सिर्फ limit पूर्ण संख्या नहीं है, तो limit, file_type और search नज़रअंदाज़ हो जाते हैं। |
हर पेज पढ़ना#
जब तक data.has_next true है, अगला पेज मांगते रहें।
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");सुझाव#
- भेजने के लिए सही पैरामीटर इस्तेमाल करें: जब
is_imagetrueहो, तो URL कोmsg_type1 के साथimg_urlके रूप में भेजें; वरनाmsg_type2 के साथfile_urlके रूप में। संदेश भेजें देखें। - अपनी API की को लॉग से दूर रखें: query string अक्सर प्रॉक्सी और सर्वर लॉग कर लेते हैं। अगर यह आपके लिए मायने रखता है, तो इसकी जगह JSON बॉडी के साथ
POSTइस्तेमाल करें।
