POST https://api.pushwoosh.com/messaging/v2/notify/batch
एक कॉल में कई संदेश भेजता है। प्रत्येक आइटम एक स्वतंत्र Notify है: इसे ठीक एक स्टैंडअलोन Notify अनुरोध की तरह मान्य किया जाता है, और इसे अपना परिणाम मिलता है।
परिणाम पढ़ें, स्टेटस कोड नहीं
कॉल स्वयं HTTP 200 लौटाता है जब तक कि बैच एनवेलप मान्य हो — भले ही प्रत्येक आइटम विफल हो गया हो। एक विफल आइटम कभी भी पूरे अनुरोध को विफल नहीं करता है। हमेशा results[] और succeeded / failed काउंटरों की जांच करें; 200 प्रतिक्रिया को इस बात की पुष्टि के रूप में न मानें कि संदेश भेजे गए थे।
यह भेजने का कोई तेज़ तरीका नहीं है
NotifyBatch सीधे Notify को कॉल करने की तुलना में तेजी से संदेश नहीं भेजता है। यदि आपका इंटीग्रेशन पहले से ही समवर्ती रूप से अनुरोध जारी कर सकता है, तो समानांतर थ्रेड्स/वर्कर्स में Notify चलाने से समान थ्रूपुट मिलता है — HTTP/2 इसे डिज़ाइन द्वारा संभालता है। NotifyBatch का उपयोग सुविधा के लिए करें जब आपका इंटीग्रेशन समवर्तीता के लिए नहीं बनाया गया हो, गति के लिए नहीं।
"item_id" : " caller-defined-id " ,
फील्ड प्रकार विवरण itemsNotifyBatchItem का ऐरेआवश्यक, 1 से 500 प्रविष्टियाँ (सर्वर-कॉन्फ़िगर की गई सीमा)। आइटम समवर्ती रूप से संसाधित होते हैं; परिणाम अनुरोध क्रम में वापस आते हैं, भले ही कुछ भी हो।
फील्ड प्रकार विवरण item_idस्ट्रिंग वैकल्पिक कॉलर-आपूर्ति सहसंबंध आईडी, मिलान परिणाम पर वापस प्रतिध्वनित होती है। अन्यथा Pushwoosh द्वारा उपयोग नहीं किया जाता है। requestNotifyRequestएकल Notify कॉल के समान बॉडी — segment या transactional, transaction_id शामिल है। आवश्यक।
प्रत्येक आइटम के लिए schedule अभी भी आवश्यक है
प्रत्येक आइटम के request को अपने स्वयं के schedule की आवश्यकता होती है, ठीक एक स्टैंडअलोन Notify कॉल की तरह। इसे छोड़ने से “अभी भेजें” पर वापस नहीं जाता है — आइटम EmptySchedule त्रुटि के साथ विफल हो जाता है।
बैच को पुनः प्रयास करना सुरक्षित है
प्रत्येक आइटम के request पर transaction_id सेट करें। समान transaction_id के साथ एक दोहराई गई कॉल Notify पृष्ठ पर वर्णित 5-मिनट की डिडुप्लीकेशन विंडो के भीतर उस आइटम के लिए समान message_code लौटाती है — इसलिए नेटवर्क त्रुटि के बाद पूरे बैच को पुनः प्रयास करने से वे संदेश डुप्लिकेट नहीं होते हैं जो पहले ही भेजे जा चुके हैं।
curl -X POST https://api.pushwoosh.com/messaging/v2/notify/batch \
-H " Authorization: Token YOUR_API_TOKEN " \
-H " Content-Type: application/json " \
"application": "XXXXX-XXXXX",
"platforms": ["IOS", "ANDROID"],
"users": { "list": ["user-123"] },
"en": { "ios": { "body": "Your order has shipped." } }
"schedule": { "at": "2026-05-01T12:00:00Z" },
"message_type": "MESSAGE_TYPE_TRANSACTIONAL",
"transaction_id": "order-1001-shipped"
"application": "XXXXX-XXXXX",
"platforms": ["IOS", "ANDROID"],
"users": { "list": ["user-456"] },
"en": { "ios": { "body": "Your order has shipped." } }
"schedule": { "at": "2026-05-01T12:00:00Z" },
"message_type": "MESSAGE_TYPE_TRANSACTIONAL",
"transaction_id": "order-1002-shipped"
"message_code" : " XXXXX-XXXXX-XXXXX " ,
"unknown_identifiers" : []
"message" : " invalid argument " ,
"reason" : " EmptySchedule " ,
"domain" : " api.pushwoosh.com "
फील्ड प्रकार विवरण resultsNotifyBatchResult का ऐरेअनुरोधित प्रत्येक आइटम के लिए एक प्रविष्टि, अनुरोध क्रम में। succeededपूर्णांक उन आइटम्स की संख्या जिन्होंने परिणाम लौटाया। failedपूर्णांक उन आइटम्स की संख्या जिन्होंने त्रुटि लौटाई।
फील्ड प्रकार विवरण item_idस्ट्रिंग अनुरोध आइटम के item_id की प्रतिध्वनि। indexपूर्णांक अनुरोध में आइटम की शून्य-आधारित स्थिति। जब item_id खाली छोड़ दिया गया हो तो परिणामों को सहसंबंधित करने के लिए इसका उपयोग करें। resultऑब्जेक्ट जब आइटम सफल होता है तो सेट करें — एकल Notify प्रतिक्रिया के समान आकार: message_code और unknown_identifiers। errorNotifyBatchErrorजब आइटम विफल हो जाता है तो सेट करें।
फील्ड प्रकार विवरण codeपूर्णांक gRPC स्टेटस कोड (google.rpc.Code), जैसे INVALID_ARGUMENT के लिए 3। messageस्ट्रिंग डेवलपर-फेसिंग त्रुटि संदेश, अंग्रेजी में। reasonस्ट्रिंग संक्षिप्त स्थिति नाम — वही मान जो एक एकल Notify कॉल लौटाएगा, जैसे EmptySchedule। domainस्ट्रिंग त्रुटि डोमेन, api.pushwoosh.com।
त्रुटियाँ मानक gRPC-गेटवे त्रुटि एनवेलप का उपयोग करती हैं: { "code": ..., "message": ..., "details": [...] }। ये एनवेलप-स्तरीय त्रुटियाँ हैं जो पूरे अनुरोध को विफल करती हैं — एक व्यक्तिगत आइटम का विफल होना इसके बजाय results[] में प्रति-आइटम error उत्पन्न करता है (ऊपर NotifyBatchError देखें), इनमें से कोई एक नहीं।
HTTP स्थिति शर्त 400items खाली है।400items में सर्वर-कॉन्फ़िगर की गई सीमा (डिफ़ॉल्ट रूप से 500) से अधिक है।400आइटम में से एक में request गायब है।
उदाहरण
जब सीमा 500 हो तो 501 आइटम भेजने पर HTTP 400 लौटता है:
"message" : " items must not exceed 500 entries, got 501 " ,