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-এর অ্যারেআবশ্যক, ১ থেকে ৫০০ এন্ট্রি (সার্ভার-কনফিগার করা সীমা)। আইটেমগুলি সমান্তরালভাবে প্রক্রিয়া করা হয়; ফলাফল অনুরোধের ক্রম অনুসারে ফিরে আসে।
ক্ষেত্র টাইপ বিবরণ item_idস্ট্রিং ঐচ্ছিক কলার-সরবরাহকৃত কোরিলেশন আইডি, যা ম্যাচিং ফলাফলে প্রতিধ্বনিত হয়। অন্যথায় Pushwoosh দ্বারা ব্যবহৃত হয় না। requestNotifyRequestএকটি একক Notify কলের মতো একই বডি — segment বা transactional, transaction_id অন্তর্ভুক্ত। আবশ্যক।
প্রতিটি আইটেমের জন্য schedule এখনও আবশ্যক
প্রতিটি আইটেমের request-এর নিজস্ব schedule প্রয়োজন, ঠিক একটি স্বতন্ত্র Notify কলের মতো। এটি বাদ দিলে “এখন পাঠান” এ ফিরে যায় না — আইটেমটি একটি EmptySchedule ত্রুটির সাথে ব্যর্থ হয়।
একটি ব্যাচ পুনরায় চেষ্টা করা নিরাপদ
প্রতিটি আইটেমের request-এ transaction_id সেট করুন। একই transaction_id দিয়ে একটি পুনরাবৃত্তি কল সেই আইটেমের জন্য একই message_code রিটার্ন করে Notify পৃষ্ঠায় বর্ণিত ৫-মিনিটের ডিডুপ্লিকেশন উইন্ডোর মধ্যে — তাই একটি নেটওয়ার্ক ত্রুটির পরে পুরো ব্যাচটি পুনরায় চেষ্টা করলে যে বার্তাগুলি ইতিমধ্যে চলে গেছে সেগুলি ডুপ্লিকেট হয় না।
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-Gateway ত্রুটি এনভেলপ ব্যবহার করে: { "code": ..., "message": ..., "details": [...] }। এগুলি এনভেলপ-স্তরের ত্রুটি যা পুরো অনুরোধটি ব্যর্থ করে — একটি পৃথক আইটেম ব্যর্থ হলে results[]-এ প্রতি-আইটেম error তৈরি করে (উপরে NotifyBatchError দেখুন), এগুলির মধ্যে একটি নয়।
HTTP স্ট্যাটাস শর্ত 400items খালি।400items-এ সার্ভার-কনফিগার করা সীমার (ডিফল্টরূপে ৫০০) চেয়ে বেশি আছে।400আইটেমগুলির মধ্যে একটিতে request অনুপস্থিত।
উদাহরণ
যখন সীমা ৫০০ তখন ৫০১টি আইটেম পাঠালে HTTP 400 রিটার্ন করে:
"message" : " items must not exceed 500 entries, got 501 " ,