रिमाइंडर API
रिमाइंडर की सूची API
अपने वर्कस्पेस के रिमाइंडर एक बार में 50 पाएं, सबसे नए पहले। इसका इस्तेमाल रिमाइंडर ID ढूंढने, अपने ऑटोमेशन की जांच करने या उनका बैकअप लेने के लिए करें।
https://wbiztool.com/api/v1/reminder/list/बॉडी: JSON या फॉर्म फील्ड
यह endpoint सिर्फ POST स्वीकार करता है। GET रिक्वेस्ट, query string के साथ भी, HTTP 400 और Invalid JSON format: Expecting value… लौटाती है।
सूची में पूरे वर्कस्पेस के एक्टिव और रोके गए (paused) रिमाइंडर शामिल होते हैं, चाहे वे API से बनाए गए हों या रिमाइंडर पेज पर। कैंसल किए गए रिमाइंडर शामिल नहीं होते।
छोटा उदाहरण#
curl -X POST https://wbiztool.com/api/v1/reminder/list/ \
-H "Content-Type: application/json" \
-d '{
"client_id": 12345,
"api_key": "YOUR_API_KEY",
"page": 1
}'import requests
response = requests.post(
"https://wbiztool.com/api/v1/reminder/list/",
json={"client_id": 12345, "api_key": "YOUR_API_KEY", "page": 1},
timeout=60,
)
try:
result = response.json() # read the body even when the HTTP code is 400
except ValueError:
raise SystemExit(f"HTTP {response.status_code}: not JSON. Check that your api_key exists.")
if result["status"] == 1:
print(f"{result['total']} reminders in total")
for reminder in result["reminders"]:
print(reminder["id"], reminder["name"], reminder["cron_expression"], reminder["is_active"])
else:
print("Failed:", result["message"])// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const response = await fetch("https://wbiztool.com/api/v1/reminder/list/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ client_id: 12345, api_key: "YOUR_API_KEY", page: 1 }),
});
// Read the body even when the HTTP code is 400. A non-JSON reply means the api_key wasn't found.
const text = await response.text();
let result;
try {
result = JSON.parse(text);
} catch {
throw new Error(`HTTP ${response.status}: not JSON. Check that your api_key exists.`);
}
if (result.status === 1) {
console.log(`${result.total} reminders in total`);
for (const reminder of result.reminders) {
console.log(reminder.id, reminder.name, reminder.cron_expression, reminder.is_active);
}
} else {
console.error("Failed:", result.message);
}<?php
$ch = curl_init('https://wbiztool.com/api/v1/reminder/list/');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'client_id' => 12345,
'api_key' => 'YOUR_API_KEY',
'page' => 1,
]),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
]);
$result = json_decode(curl_exec($ch), true);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($result === null) {
echo "HTTP $httpCode: not JSON. Check that your api_key exists.";
} elseif ($result['status'] === 1) {
foreach ($result['reminders'] as $reminder) {
echo $reminder['id'] . ' ' . $reminder['name'] . ' ' . $reminder['cron_expression'] . "\n";
}
} else {
echo 'Failed: ' . $result['message'];
}12345 और YOUR_API_KEY की जगह अपनी वैल्यू डालें। ये कहां मिलेंगी, यह जानने के लिए ऑथेंटिकेशन देखें।
रिक्वेस्ट पैरामीटर#
client_idintegerआवश्यकसेटिंग्स → API Keys से आपका API क्लाइंट ID।
api_keystringआवश्यकउसी पेज से आपकी API की।
pageintegerवैकल्पिकपेज नंबर,
1(डिफ़ॉल्ट) से शुरू। हर पेज में 50 रिमाइंडर होते हैं, और पेज साइज़ बदला नहीं जा सकता। जो वैल्यू 1 या उससे बड़ी पूर्ण संख्या नहीं है, उसे1माना जाता है।
रिस्पॉन्स#
सफल रिक्वेस्ट HTTP 200 लौटाती है:
{
"reminders": [
{
"id": 3187,
"name": "Monthly rent reminder",
"to_number": "919876543210",
"message_template": "Hi Aman, a reminder that your rent is due on {current_date_formatted}.",
"msg_type": 0,
"msg_type_display": "Text",
"img_url": "",
"file_name": "",
"cron_expression": "0 10 1 * *",
"next_run": "2026-10-01 10:00:00 UTC",
"is_active": true,
"whatsapp_client_id": 678,
"created_at": "2026-09-16 04:45:12"
}
],
"total": 1,
"page": 1,
"page_size": 50,
"message": "Success",
"status": 1
}
| फील्ड | टाइप | विवरण |
|---|---|---|
status | integer | सफल होने पर 1, रिक्वेस्ट फेल होने पर 0। |
message | string | Success, वरना एरर। |
reminders | array | इस पेज के रिमाइंडर, सबसे नए पहले। अगर पेज आखिरी पेज से आगे है तो खाली। |
total | integer | सभी पेजों को मिलाकर वर्कस्पेस में कुल रिमाइंडर। |
page | integer | लौटाया गया पेज। |
page_size | integer | हमेशा 50। |
रिमाइंडर फील्ड#
| फील्ड | टाइप | विवरण |
|---|---|---|
id | integer | रिमाइंडर ID। इसे रिमाइंडर कैंसल करें के साथ इस्तेमाल करें। |
name | string | रिमाइंडर का नाम, या नाम न होने पर Unnamed Reminder। |
to_number | string | वह फोन नंबर या ग्रुप का नाम जिसे रिमाइंडर भेजा जाता है। |
message_template | string | संदेश, जिसमें टेम्प्लेट वेरिएबल अभी भरे नहीं गए हैं। |
msg_type | integer | 0 टेक्स्ट, 1 इमेज, 2 फाइल। |
msg_type_display | string | Text, Image या File। |
img_url | string or null | इमेज रिमाइंडर के लिए इमेज URL, या API से बनाए गए फाइल रिमाइंडर के लिए फाइल URL। बाकी मामलों में खाली या null हो सकता है। |
file_name | string or null | फाइल रिमाइंडर के लिए: फाइल URL (डैशबोर्ड में बनाए गए रिमाइंडर) या फाइल का नाम (API से बनाए गए रिमाइंडर, जिनका URL img_url में होता है)। बाकी मामलों में खाली या null हो सकता है। |
cron_expression | string | शेड्यूल। cron एक्सप्रेशन देखें। |
next_run | string | अगली बार शेड्यूल कब मैच होगा, YYYY-MM-DD HH:MM:SS UTC के रूप में, या एक्सप्रेशन पढ़ा न जा सके तो Invalid cron। नीचे दी गई चेतावनी देखें। |
is_active | boolean | रिमाइंडर चल रहा हो तो true, रोका गया हो तो false। |
whatsapp_client_id | integer or null | वह WhatsApp नंबर जिससे यह भेजा जाता है, या पहला कनेक्टेड नंबर इस्तेमाल होने पर null। |
created_at | string | रिमाइंडर कब बना था, UTC में, YYYY-MM-DD HH:MM:SS के रूप में। |
एरर#
एरर HTTP 400 के साथ लौटते हैं और status 0 होता है, जब तक अलग से न बताया गया हो:
{ "status": 0, "message": "Upgrade your plan to use reminders feature" }
| संदेश | कैसे ठीक करें |
|---|---|
Invalid JSON format: … | JSON बॉडी सही नहीं है। GET रिक्वेस्ट पर या client_id के बिना भेजी गई फॉर्म रिक्वेस्ट पर भी यही एरर मिलता है। |
Auth Error - Please send correct API key and Client id | client_id और api_key दोनों भेजें। |
Invalid client id | client_id को नंबर के रूप में भेजें। |
Auth Error: invalid api key | की किसी दूसरे client_id की है। |
Auth Error: please check client id | की किसी वर्कस्पेस से जुड़ी नहीं है। जिस वर्कस्पेस का इस्तेमाल करना है, उसमें नई की बनाएं। |
Demo Account cannot access APIs | सामान्य अकाउंट इस्तेमाल करें। |
Upgrade your plan to use reminders feature | आपके प्लान में रिमाइंडर शामिल नहीं हैं। अपना प्लान अपग्रेड करें। डाउनग्रेड के बाद भी मौजूदा रिमाइंडर चलते रहते हैं और क्रेडिट इस्तेमाल करते रहते हैं, और अपग्रेड करने तक उनकी सूची नहीं देखी जा सकती, न उन्हें कैंसल किया या रोका जा सकता है। |
Error fetching reminders: … (HTTP 500) | हमारी तरफ कुछ गड़बड़ हुई। फिर से कोशिश करें। |
अगर api_key मौजूद नहीं है या डिलीट हो चुकी है, तो रिस्पॉन्स JSON की जगह HTTP 500 के साथ एक HTML एरर पेज होता है। अपनी की को क्रेडेंशियल जांचें से टेस्ट करें।
हर पेज पढ़ना#
तब तक अगला पेज मांगते रहें जब तक किसी पेज में 50 से कम रिमाइंडर न आएं।
import requests
reminders, page = [], 1
while True:
response = requests.post(
"https://wbiztool.com/api/v1/reminder/list/",
json={"client_id": 12345, "api_key": "YOUR_API_KEY", "page": page},
timeout=60,
)
try:
result = response.json()
except ValueError:
raise SystemExit(f"HTTP {response.status_code}: not JSON. Check that your api_key exists.")
if result["status"] != 1:
raise RuntimeError(result["message"])
reminders += result["reminders"]
if len(result["reminders"]) < result["page_size"]:
break
page += 1
print(len(reminders), "reminders")// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const reminders = [];
let page = 1;
while (true) {
const response = await fetch("https://wbiztool.com/api/v1/reminder/list/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ client_id: 12345, api_key: "YOUR_API_KEY", page }),
});
const text = await response.text();
let result;
try {
result = JSON.parse(text);
} catch {
throw new Error(`HTTP ${response.status}: not JSON. Check that your api_key exists.`);
}
if (result.status !== 1) throw new Error(result.message);
reminders.push(...result.reminders);
if (result.reminders.length < result.page_size) break;
page += 1;
}
console.log(reminders.length, "reminders");सुझाव#
- अपनी कॉपी रखें: हर रिमाइंडर बनाते समय उसका
timezoneखुद सेव करें, क्योंकि यह एंडपॉइंट उसे नहीं लौटाता। - रोके गए रिमाइंडर ढूंढें:
is_activeकेfalseहोने पर फिल्टर करें। उन्हें रिमाइंडर पेज पर फिर से चालू करें। - पुराने ऑटोमेशन साफ करें: पहले सभी पेजों से वे ID इकट्ठा करें जिन्हें आप कैंसल करना चाहते हैं, फिर हर एक के लिए रिमाइंडर कैंसल करें कॉल करें। पेज पढ़ते-पढ़ते कैंसल करने से बाद के रिमाइंडर पिछले पेजों पर खिसक जाते हैं, जिससे कुछ छूट जाते हैं।
