বাংলা
বাংলা
Appearance
বাংলা
বাংলা
Appearance
সনদ (assertion) তৈরি ও পরিচালনা করুন — নির্দিষ্ট প্রাপকদের ইস্যু করা ব্যাজ।
সব এন্ডপয়েন্টে X-Api-Key হেডারের মাধ্যমে প্রমাণীকরণ প্রয়োজন। প্রমাণীকরণ দেখুন।
একজন প্রাপককে ব্যাজ ইস্যু করুন।
প্রতিজনের জন্য আলাদা API কল না করে একসাথে শত বা হাজার প্রাপককে ইস্যু করতে চান? CSV আপলোড গ্রহণ করে এমন বাল্ক সনদ UI ফিচারটি ব্যবহার করুন।
POST /awards| প্যারামিটার | ধরন | আবশ্যক | বিবরণ |
|---|---|---|---|
badgeId | string | হ্যাঁ | যে ব্যাজ ইস্যু করা হবে তার ID |
recipient | object | হ্যাঁ | প্রাপকের তথ্য (নিচে দেখুন) |
recipient.name | string | হ্যাঁ | প্রাপকের পূর্ণ নাম (সর্বনিম্ন ৫ অক্ষর) |
recipient.email | string | হ্যাঁ | প্রাপকের ইমেইল ঠিকানা |
issuedOn | string | হ্যাঁ | ISO 8601 ফরম্যাটে ইস্যুর তারিখ (যেমন 2025-01-15) |
expires | string | না | ISO 8601 ফরম্যাটে মেয়াদোত্তীর্ণের তারিখ |
curl -X POST https://api.badges.ninja/awards \
-H "X-Api-Key: bws_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"parameters": {
"badgeId": "b1c2d3e4-f5a6-7890-bcde-f12345678901",
"recipient": {
"name": "Jane Smith",
"email": "jane@example.com"
},
"issuedOn": "2025-01-15"
}
}'{
"awardId": "https://api.badges.ninja/certify-badge/award/c1d2e3f4-a5b6-7890-cdef-123456789012"
}ঐচ্ছিক ফিল্টারিং ও পেজিনেশনসহ সনদ আনুন।
GET /awards| প্যারামিটার | ধরন | আবশ্যক | বিবরণ |
|---|---|---|---|
filter | JSON string | না | ফিল্টার অবজেক্ট (নিচে দেখুন) |
lastEvaluatedKey | string | না | আগের রেসপন্স থেকে পাওয়া পেজিনেশন টোকেন |
filter প্যারামিটার এই ফিল্ডগুলোসহ একটি JSON স্ট্রিং গ্রহণ করে:
| ফিল্ড | ধরন | বিবরণ |
|---|---|---|
badgeId | string | ব্যাজ ID দিয়ে ফিল্টার করে। |
search | string | প্রাপকের নাম বা ইমেইলে খোঁজার সাবস্ট্রিং (দেখুন searchField)। |
searchField | string | name (ডিফল্ট) অথবা email — কোন কলামে খোঁজা হবে। |
lastEvaluatedKey-র মাধ্যমে পেজিনেশন ফিল্টারসহ বা ছাড়া কাজ করে। পেজের আকার ৫০।
curl -X GET https://api.badges.ninja/awards \
-H "X-Api-Key: bws_your_api_key_here"curl -X GET "https://api.badges.ninja/awards?filter=%7B%22badgeId%22%3A%22b1c2d3e4%22%7D" \
-H "X-Api-Key: bws_your_api_key_here"{
"count": 1,
"items": [
{
"id": "https://api.badges.ninja/certify-badge/award/c1d2e3f4-...",
"badge": {
"id": "https://api.badges.ninja/certify-badge/badge/b1c2d3e4-...",
"name": "JavaScript Fundamentals",
"image": "https://badges.ninja/images/{sha256}.png"
},
"recipient": {
"name": "Jane Smith",
"email": "jane@example.com"
},
"issuedOn": "2025-01-15T00:00:00.000Z",
"timestamp": "2025-01-15T10:30:00.000Z"
}
],
"lastEvaluatedKey": "eyJ..."
}রেসপন্সে lastEvaluatedKey থাকলে আরও ফলাফল আছে। পরের পেজ পেতে পরের অনুরোধে এটি কোয়েরি প্যারামিটার হিসেবে দিন।
প্রাপককে তাঁর সনদ সম্পর্কে ইমেইল বিজ্ঞপ্তি পাঠান।
POST /awards/{awardId}/send| প্যারামিটার | ধরন | আবশ্যক | বিবরণ |
|---|---|---|---|
awardId | string | হ্যাঁ | সনদের ID (পাথ প্যারামিটার ও বডি) |
email | string | হ্যাঁ | প্রাপকের ইমেইল ঠিকানা |
curl -X POST https://api.badges.ninja/awards/c1d2e3f4-a5b6-7890-cdef-123456789012/send \
-H "X-Api-Key: bws_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"parameters": {
"awardId": "c1d2e3f4-a5b6-7890-cdef-123456789012",
"email": "jane@example.com"
}
}'একটি সাধারণ নিশ্চিতকরণ স্ট্রিং ফেরত দেয়:
"email sent"একটি সনদ ইমেইলের মাধ্যমে একাধিক প্রাপকের সঙ্গে শেয়ার করুন।
POST /awards/{awardId}/share| প্যারামিটার | ধরন | আবশ্যক | বিবরণ |
|---|---|---|---|
awardId | string | হ্যাঁ | সনদের ID (পাথ প্যারামিটার ও বডি) |
recipients | string | হ্যাঁ | কমা দিয়ে আলাদা করা ইমেইল ঠিকানার তালিকা |
subject | string | হ্যাঁ | ইমেইলের বিষয় |
message | string | হ্যাঁ | ইমেইলের বার্তার মূল অংশ |
curl -X POST https://api.badges.ninja/awards/c1d2e3f4-a5b6-7890-cdef-123456789012/share \
-H "X-Api-Key: bws_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"parameters": {
"awardId": "c1d2e3f4-a5b6-7890-cdef-123456789012",
"recipients": "manager@example.com,hr@example.com",
"subject": "Check out my new badge!",
"message": "I just earned the JavaScript Fundamentals badge."
}
}'একটি সাধারণ নিশ্চিতকরণ স্ট্রিং ফেরত দেয়:
"email sent"আপনার ইস্যু করা একটি সনদ বাতিল করুন। হোস্ট করা Open Badges v2.0 assertion-এ revoked: true (ঐচ্ছিক কারণসহ) চিহ্নিত হয়, ফলে যেকোনো ভেরিফায়ার দেখতে পায় যে ব্যাজটি আর বৈধ নয়। অডিটের উদ্দেশ্যে সনদের রেকর্ড রাখা হয় এবং কোনো ক্রেডিট ফেরত দেওয়া হয় না।
বাতিলকরণ সনদের Open Badges 3.0 Verifiable Credential-এও ছড়িয়ে পড়ে: VC-র credentialStatus-এ উল্লিখিত W3C Bitstring Status List-এ সনদের বিট উল্টে দেওয়া হয়, ফলে VC ওয়ালেটগুলোও তা শনাক্ত করে। দেখুন বাতিলকরণ (Bitstring Status List)।
POST /awards/{awardId}/revoke| প্যারামিটার | ধরন | আবশ্যক | বিবরণ |
|---|---|---|---|
awardId | string | হ্যাঁ | সনদের ID (পাথ প্যারামিটার) |
reason | string | না | বাতিলের কারণ। ৫০০ অক্ষরে ছেঁটে দেওয়া হয়। |
notify | boolean | না | true হলে প্রাপককে ইমেইলে জানানো হয় যে তাঁর সনদ বাতিল হয়েছে। ডিফল্ট false। |
curl -X POST https://api.badges.ninja/awards/c1d2e3f4-a5b6-7890-cdef-123456789012/revoke \
-H "X-Api-Key: bws_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"parameters": {
"awardId": "c1d2e3f4-a5b6-7890-cdef-123456789012",
"reason": "Issued to the wrong recipient",
"notify": true
}
}'{
"revoked": true,
"awardId": "c1d2e3f4-a5b6-7890-cdef-123456789012"
}ইতিমধ্যে বাতিল করা সনদ আবার বাতিল করা আইডেমপোটেন্ট — নতুন করে বিজ্ঞপ্তি না পাঠিয়ে একই রেসপন্স ফেরত দেয়।
একসাথে অনেক সনদ বাতিল করতে প্রতিটি সনদের জন্য এই এন্ডপয়েন্ট কল করার বদলে action: "revoke" সহ টেকসই বাল্ক এন্ডপয়েন্ট ব্যবহার করুন:
curl -X POST https://api.badges.ninja/awards/bulk-send \
-H "X-Api-Key: bws_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{ "parameters": { "action": "revoke", "awardIds": ["<id1>", "<id2>"], "reason": "Program cancelled", "notify": false } }'এটি { "jobId", "total" } ফেরত দেয়; জবটি সার্ভার-সাইডে প্রতিটি id বাতিল করে (ইতিমধ্যে বাতিল হওয়াগুলো বাদ দিয়ে) এবং পুনরায় চালু করা যায়। ইতিমধ্যে বাতিল ও অস্তিত্বহীন id-গুলো বাদ দেওয়া (skipped) হিসেবে জানানো হয়।
আপনার ইস্যু করা একটি সনদ স্থায়ীভাবে মুছে ফেলুন। বাতিলের বিপরীতে, এটি রেকর্ডটি সম্পূর্ণ সরিয়ে দেয় এবং পাবলিক সনদ পৃষ্ঠা 404 ফেরত দেবে। প্রকৃত ভুলের ক্ষেত্রে (যেমন ভুল ব্যক্তিকে ইস্যু করা) এটি ব্যবহার করুন; আসল সনদের জন্য বাতিল করাই শ্রেয়, যাতে assertion বাতিল হিসেবে যাচাইযোগ্য থাকে। কোনো ক্রেডিট ফেরত দেওয়া হয় না।
DELETE /awards/{awardId}| প্যারামিটার | ধরন | আবশ্যক | বিবরণ |
|---|---|---|---|
awardId | string | হ্যাঁ | সনদের ID (পাথ প্যারামিটার) |
curl -X DELETE https://api.badges.ninja/awards/c1d2e3f4-a5b6-7890-cdef-123456789012 \
-H "X-Api-Key: bws_your_api_key_here"{
"deleted": true,
"awardId": "c1d2e3f4-a5b6-7890-cdef-123456789012"
}একটি সনদের জন্য প্রিন্টের উপযোগী A4 PDF সার্টিফিকেট তৈরি করুন।
GET /certify-badge/award/{awardGuid}/pdfপ্রমাণীকরণ প্রয়োজন নেই — এই এন্ডপয়েন্ট পাবলিক, যাতে প্রাপকেরা নিজেদের সার্টিফিকেট ডাউনলোড করতে পারেন।
curl -OJ https://api.badges.ninja/certify-badge/award/c1d2e3f4-a5b6-7890-cdef-123456789012/pdfরেসপন্স হলো Content-Type: application/pdf হেডারসহ বাইনারি PDF।
একটি এনগেজমেন্ট ইভেন্ট রেকর্ড করুন। পাবলিক সনদ পৃষ্ঠা এনগেজমেন্ট পরিসংখ্যান গড়তে এটি ব্যবহার করে। প্রমাণীকরণ প্রয়োজন নেই।
POST /certify-badge/award/{awardGuid}/eventএই এন্ডপয়েন্ট সরাসরি বডি পড়ে (কোনো parameters র্যাপার নেই)।
| প্যারামিটার | ধরন | আবশ্যক | বিবরণ |
|---|---|---|---|
event | string | হ্যাঁ | view, share, download, click_linkedin_addtoprofile, click_pdf, click_verify-এর একটি। |
network | string | না | event=share হলে সোশ্যাল নেটওয়ার্ক: linkedin, twitter, facebook, whatsapp, telegram, email, copy। |
প্রতি-IP ডুপ্লিকেট দমন: একই IP থেকে একই ইভেন্ট ২৪ ঘণ্টায় একবার গণনা হয়।
curl -X POST https://api.badges.ninja/certify-badge/award/c1d2e3f4-a5b6-7890-cdef-123456789012/event \
-H "Content-Type: application/json" \
-d '{"event": "share", "network": "linkedin"}'{
"ok": true
}একটি সনদের ক্রমপুঞ্জিত এনগেজমেন্ট কাউন্টার আনুন।
GET /certify-badge/award/{awardGuid}/statsপ্রমাণীকরণ প্রয়োজন নেই।
কাউন্টারগুলো কাঁচা ইভেন্ট টাইপ অনুযায়ী কী সহ ফেরত আসে। totals-এ প্রতিটি ইভেন্টের মোট সংখ্যা থাকে; networks সেই ইভেন্টগুলোর নেটওয়ার্ক-ভিত্তিক বিভাজন দেখায় যেগুলোর network আছে (বর্তমানে share)। যে ইভেন্টে কোনো কার্যকলাপ নথিভুক্ত হয়নি তা বাদ থাকে।
{
"totals": {
"view": 142,
"share": 16,
"download": 3,
"click_linkedin_addtoprofile": 4
},
"networks": {
"share": { "linkedin": 8, "twitter": 2, "email": 1, "copy": 5 }
}
}