मुख्य सामग्री पर जाएं
Wbiztool

रिमाइंडर API

रिमाइंडर बनाएं API

ऐसा रिकरिंग WhatsApp संदेश बनाएं जो तय शेड्यूल पर अपने आप भेजा जाए। इसका इस्तेमाल पेमेंट रिमाइंडर, साप्ताहिक चेक-इन, रोज़ाना फॉलो-अप और बार-बार भेजे जाने वाले दूसरे संदेशों के लिए करें।

POSThttps://wbiztool.com/api/v1/reminder/create/

बॉडी: JSON या फॉर्म फील्ड

आप शेड्यूल को एक cron एक्सप्रेशन और एक टाइमज़ोन से तय करते हैं। हर बार जब शेड्यूल मैच होता है, Wbiztool फोन नंबर या ग्रुप के लिए एक संदेश कतार में डालता है, ठीक वैसे ही जैसे संदेश भेजें से भेजा गया संदेश। यहां बनाए गए रिमाइंडर आपके डैशबोर्ड के रिमाइंडर पेज पर भी दिखते हैं, जहां आप उन्हें रोक (pause) या एडिट कर सकते हैं।

छोटा उदाहरण#

curl -X POST https://wbiztool.com/api/v1/reminder/create/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "whatsapp_client": 678,
    "reminder_name": "Monthly rent reminder",
    "phone": "919876543210",
    "message": "Hi Aman, a reminder that your rent is due on {current_date_formatted}.",
    "cron_expression": "0 10 1 * *",
    "timezone": "Asia/Kolkata"
  }'

यह रिमाइंडर हर महीने की 1 तारीख को भारतीय समय के अनुसार 10:00 बजे भेजा जाता है। 12345, YOUR_API_KEY और 678 की जगह अपनी वैल्यू डालें। ये कहां मिलेंगी, यह जानने के लिए ऑथेंटिकेशन देखें।

रिक्वेस्ट पैरामीटर#

पैरामीटर JSON बॉडी या फॉर्म फील्ड के रूप में भेजें। JSON में हर टेक्स्ट वैल्यू (api_key, reminder_name, phone, message, cron_expression, timezone, img_url, file_name) को string के रूप में भेजें।

ऑथेंटिकेशन

client_idintegerआवश्यक

सेटिंग्स → API Keys से आपका API क्लाइंट ID।

api_keystringआवश्यक

उसी पेज से आपकी API की।

भेजने वाला

whatsapp_clientintegerवैकल्पिक

WhatsApp सेटिंग्स से उस WhatsApp नंबर का ID जिससे संदेश भेजना है। अगर आप इसे छोड़ देते हैं, या ID आपके वर्कस्पेस में नहीं है, तो हर रिमाइंडर उसके चलने के समय आपके वर्कस्पेस के पहले कनेक्टेड नंबर से भेजा जाता है।

रिमाइंडर

reminder_namestringआवश्यक

रिमाइंडर का नाम, जो रिमाइंडर पेज पर दिखता है और संदेश में {reminder_name} के रूप में उपलब्ध होता है।

phonestringआवश्यक

प्राप्तकर्ता का WhatsApp नंबर, कंट्री कोड के साथ, जैसे 919876543210। अलग से कोई country_code पैरामीटर नहीं है। स्पेस, +, -, . और ब्रैकेट हटा दिए जाते हैं, और शुरुआत का 0 भी हटा दिया जाता है (JSON बॉडी में शुरुआत के ज़्यादा से ज़्यादा दो शून्य)। जो वैल्यू पूरी तरह अंकों की नहीं है, उसे WhatsApp ग्रुप का नाम माना जाता है।

messagestringआवश्यक

संदेश का टेक्स्ट। इसमें टेम्प्लेट वेरिएबल हो सकते हैं, जो हर बार रिमाइंडर चलने पर भरे जाते हैं। WhatsApp फॉर्मेटिंग काम करती है: *bold*, _italic_, ~strikethrough~

cron_expressionstringआवश्यक

संदेश कब भेजना है, पांच फील्ड वाले cron एक्सप्रेशन के रूप में, जैसे 0 9 * * 1-5cron एक्सप्रेशन देखें।

timezonestringवैकल्पिक

वह टाइमज़ोन जिसमें cron एक्सप्रेशन चलता है, IANA टाइमज़ोन नाम के रूप में, जैसे Asia/Kolkata, America/New_York या Europe/LondonUTC इस्तेमाल करने के लिए इसे न भेजें। खाली string भेजने पर Invalid timezone लौटता है। पूरी सूची के लिए टाइमज़ोन रेफरेंस देखें।

इमेज और फाइलें

msg_typeintegerवैकल्पिक

0 टेक्स्ट (डिफ़ॉल्ट), 1 इमेज या 2 फाइल, जिसमें message कैप्शन होता है। कोई भी दूसरी वैल्यू 0 मानी जाती है।

img_urlstringmsg_type 1 या 2 होने पर आवश्यक

इमेज का, या msg_type 2 के लिए फाइल का, पब्लिक http या https URL, अधिकतम 1,000 कैरेक्टर। रिमाइंडर हर बार चलने पर इसे डाउनलोड करता है, इसलिए लिंक चालू रखें। आप मीडिया अपलोड करें API से फाइलें होस्ट कर सकते हैं।

file_namestringmsg_type 2 होने पर आवश्यक

msg_type 2 के लिए, एक्सटेंशन के साथ फाइल का नाम, अधिकतम 100 कैरेक्टर, जैसे invoice.pdf। दूसरे संदेश टाइप के लिए इसे नज़रअंदाज़ किया जाता है।

cron एक्सप्रेशन#

cron एक्सप्रेशन स्पेस से अलग की गई पांच वैल्यू होती है। जब भी timezone में मौजूदा समय पांचों से मैच करता है, रिमाइंडर चलता है:

┌───────── minute        (0-59)
│ ┌─────── hour          (0-23)
│ │ ┌───── day of month  (1-31)
│ │ │ ┌─── month         (1-12)
│ │ │ │ ┌─ day of week   (0-7, where 0 and 7 are Sunday)
│ │ │ │ │
0 9 * * 1-5
चिह्नमतलबउदाहरण
*हर वैल्यूघंटे वाले फील्ड में * का मतलब है हर घंटे।
,वैल्यू की सूचीघंटे वाले फील्ड में 9,18 का मतलब है 9:00 और 18:00।
-रेंजहफ्ते के दिन वाले फील्ड में 1-5 का मतलब है सोमवार से शुक्रवार।
/स्टेपघंटे वाले फील्ड में */6 का मतलब है हर 6 घंटे में।

आम उदाहरण#

एक्सप्रेशनकब चलता है
0 9 * * *हर दिन 9:00 बजे
0 9 * * 1-5सोमवार से शुक्रवार 9:00 बजे
0 9 * * 1हर सोमवार 9:00 बजे
30 18 * * 0हर रविवार 18:30 बजे
0 9,18 * * *हर दिन 9:00 और 18:00 बजे
0 */6 * * *हर 6 घंटे में, घंटे की शुरुआत पर
*/30 9-17 * * 1-5सोमवार से शुक्रवार, 9:00 से 17:30 तक हर 30 मिनट में
0 9 1 * *हर महीने की 1 तारीख को 9:00 बजे
0 10 15 * *हर महीने की 15 तारीख को 10:00 बजे
0 8 1 1 *हर साल 1 जनवरी को 8:00 बजे

समय रिमाइंडर के timezone में होता है। सिर्फ पांच फील्ड इस्तेमाल करें: सेकंड का फील्ड या @daily जैसे शॉर्टकट न जोड़ें।

टेम्प्लेट वेरिएबल#

message में मौजूद ये प्लेसहोल्डर हर बार रिमाइंडर चलने पर बदल दिए जाते हैं। तारीख और समय रिमाइंडर के timezone में होते हैं।

वेरिएबलकिससे बदला जाता हैउदाहरण
{current_date}तारीख2026-10-01
{current_date_formatted}शब्दों में तारीख, दिन शून्य से भरा हुआOctober 01, 2026
{current_time}24-घंटे वाला समय09:00:00
{current_time_12h}12-घंटे वाला समय09:00 AM
{current_datetime}तारीख और समय2026-10-01 09:00:00
{timezone}timezone की वैल्यूAsia/Kolkata
{timezone_short}टाइमज़ोन का संक्षिप्त रूपIST
{reminder_name}reminder_name की वैल्यूMonthly rent reminder
{to_number}सेव की गई phone वैल्यू919876543210
{client_name}वर्कस्पेस के मालिक का नाम
{organisation_name}आपके वर्कस्पेस का नाम

इमेज रिमाइंडर#

साप्ताहिक इमेज रिमाइंडर
curl -X POST https://wbiztool.com/api/v1/reminder/create/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "whatsapp_client": 678,
    "reminder_name": "Weekly class timetable",
    "phone": "919876543210",
    "msg_type": 1,
    "img_url": "https://example.com/timetable.png",
    "message": "Here is this week'\''s timetable.",
    "cron_expression": "0 8 * * 1",
    "timezone": "Asia/Kolkata"
  }'

PHP उदाहरण JSON की जगह फॉर्म फील्ड भेजता है। दोनों तरीके काम करते हैं।

रिस्पॉन्स#

सफल रिक्वेस्ट HTTP 200 लौटाती है:

{
  "reminder_id": 3187,
  "message": "Reminder created successfully",
  "status": 1
}
फील्डटाइपविवरण
statusintegerरिमाइंडर बन जाने पर 1, रिक्वेस्ट फेल होने पर 0
messagestringReminder created successfully, वरना एरर।
reminder_idintegerनए रिमाइंडर का ID। बाद में रिमाइंडर कैंसल करने के लिए इसे सेव करें। केवल सफल होने पर मौजूद होता है।

नए रिमाइंडर तुरंत एक्टिव हो जाते हैं।

एरर#

एरर HTTP 400 के साथ लौटते हैं और status 0 होता है, जब तक अलग से न बताया गया हो:

{ "status": 0, "message": "Invalid timezone" }
संदेशकैसे ठीक करें
Invalid JSON format: …JSON बॉडी सही नहीं है, अक्सर आखिर में छूटे कॉमा (trailing comma) या message में बिना escape किए लाइन ब्रेक की वजह से। नई लाइन के लिए \n इस्तेमाल करें। client_id के बिना भेजी गई फॉर्म रिक्वेस्ट पर, या किसी भी GET रिक्वेस्ट पर भी यही एरर मिलता है।
Invalid client id.client_id को नंबर के रूप में भेजें।
Reminder name cannot be nullreminder_name जोड़ें।
Phone number cannot be nullphone जोड़ें।
Message template cannot be nullmessage जोड़ें।
Cron expression cannot be nullcron_expression जोड़ें।
Auth Error - Please send correct API key and Client idखाली न हो ऐसी api_key भेजें।
Invalid cron expressionजांचें कि एक्सप्रेशन में पांच सही फील्ड हैं। cron एक्सप्रेशन देखें।
Invalid timezoneIST जैसे संक्षिप्त रूप की जगह Asia/Kolkata जैसा IANA नाम इस्तेमाल करें।
Image URL cannot be null for image messagesmsg_type 1 के लिए img_url भेजें।
File URL cannot be null for file messagesmsg_type 2 के लिए file_name भेजें।
Auth Error: invalid api keyकी किसी दूसरे client_id की है।
Auth Error: please check client idकी किसी वर्कस्पेस से जुड़ी नहीं है। जिस वर्कस्पेस का इस्तेमाल करना है, उसमें नई की बनाएं।
Demo Account cannot access APIsसामान्य अकाउंट इस्तेमाल करें।
Not enough creditsआपके प्लान में कोई संदेश नहीं बचा है।
Upgrade your plan to use reminders featureआपके प्लान में रिमाइंडर शामिल नहीं हैं। अपना प्लान अपग्रेड करें।
WhatsApp Logged Out. Please Reconnect!!whatsapp_client वाला नंबर डिसकनेक्ट है। उसे WhatsApp सेटिंग्स में दोबारा कनेक्ट करें।
Invalid WhatsApp client idwhatsapp_client को नंबर के रूप में भेजें।
Error creating reminder: … (HTTP 500)रिमाइंडर सेव नहीं हो सका। भेजी गई वैल्यू जांचें, जैसे कि img_url 1,000 कैरेक्टर या उससे कम है और file_name 100 या उससे कम।

रिमाइंडर कैसे चलते हैं#

  • शेड्यूल रिमाइंडर के timezone में जांचा जाता है, और जब मौजूदा समय cron एक्सप्रेशन से मैच करता है तब संदेश कतार में डाला जाता है।
  • हर बार चलने पर एक सामान्य संदेश बनता है जो आपके WhatsApp नंबर से भेजा जाता है, इसलिए नंबर कनेक्टेड रहना चाहिए।
  • अगर आपके वर्कस्पेस में कोई क्रेडिट नहीं बचा है, या whatsapp_client सेट नहीं है और उस समय आपके वर्कस्पेस का कोई नंबर कनेक्टेड नहीं है, तो उस बार का रन छोड़ दिया जाता है।
  • अगर whatsapp_client सेट है, तो हर रन उसी नंबर की कतार में डाला जाता है, भले ही वह नंबर बाद में डिसकनेक्ट हो गया हो, और वहीं इंतज़ार करता है। किसी दूसरे नंबर पर फॉलबैक नहीं होता।
  • रिमाइंडर समय-समय पर जांचे जाते हैं, सेकंड-दर-सेकंड नहीं, और फिर संदेश किसी भी दूसरे संदेश की तरह भेजने की कतार में इंतज़ार करता है। बिल्कुल सटीक समय पर भरोसा न करें। अगर कोई जांच देर से चलती है, तो रन फिर भी 10 मिनट तक की देरी से भेजा जाता है (रिमाइंडर के पहले रन के लिए 1 मिनट तक); उसके बाद वह छोड़ दिया जाता है। एक ही रन कभी दो बार नहीं भेजा जाता।

सुझाव#

  • सूची देखें और साफ करें: रिमाइंडर की सूची से अपने रिमाइंडर और उनके ID पाएं, और रिमाइंडर कैंसल करें से किसी रिमाइंडर को बंद करें।
  • रोकना (pause) और एडिट करना API से उपलब्ध नहीं है। अपने डैशबोर्ड का रिमाइंडर पेज इस्तेमाल करें।
  • एक साथ कई रिमाइंडर: रिमाइंडर पेज CSV फाइल से भी रिमाइंडर इम्पोर्ट कर सकता है।
  • JSON में नई लाइन: message के अंदर इन्हें \n के रूप में लिखें। सीधा लाइन ब्रेक JSON को अमान्य बना देता है।