Vote API
পাবলিক API: ভোটের তালিকা পান এবং কোনো প্লেয়ার ভোট দিয়েছে কিনা যাচাই করুন (Discord বা নিকনেম দিয়ে)। Discord বটের জন্য উপযুক্ত।
আপডেট: ১৩ অক্টোবর, ২০২৬
পাবলিক ভোট API-এর মাধ্যমে আপনার ইন্টিগ্রেশনগুলো একটি সার্ভারের ভোট পড়তে পারে: ভোটের তালিকা আনা, নির্দিষ্ট কোনো প্লেয়ার ভোট দিয়েছে কি না তা যাচাই করা এবং পরিসংখ্যান দেখা। এটি সবচেয়ে বেশি ব্যবহৃত হয় Discord বট দিয়ে ভোট দেওয়াদের র্যাঙ্ক বা পুরস্কার দেওয়ার জন্য।
অ্যাক্সেস শুধু পড়ার জন্য — API দিয়ে আপনি ভোট পরিবর্তন করতে পারবেন না।
API key পাওয়া
- আপনার সার্ভারের পেজ খুলে owner verification সম্পন্ন করুন।
- সার্ভার সেটিংসে “API keys” সেকশন খুলে “Create key”-তে ক্লিক করুন।
- key-টি কপি করুন, যা দেখতে
rsk_live_…-এর মতো — এটি একবারই দেখানো হয়। এটি পাসওয়ার্ডের মতো সংরক্ষণ করুন।
আপনি একটি key শুধু একটি সার্ভারে সীমাবদ্ধ রাখতে পারেন, অথবা আপনার সব সার্ভারের জন্য ইস্যু করতে পারেন। ফাঁস হয়ে যাওয়া key একই সেকশন থেকে বাতিল করে নতুন একটি তৈরি করুন।
গুরুত্বপূর্ণ: key-টি ওপেন সোর্স কোড, রিপোজিটরি বা প্রকাশ্যে অ্যাক্সেসযোগ্য বট কনফিগে প্রকাশ করবেন না। key ফাঁস হলে তা বাতিল করুন।
Base URL এবং authorization
Base URL: https://api.millida.net/v2/rating/api
key-টি X-Api-Key হেডারে (অথবা Authorization: Bearer …-এ) পাঠানো হয়:
curl https://api.millida.net/v2/rating/api/stats \
-H "X-Api-Key: rsk_live_YOUR_KEY"
key-টি যদি টেন্যান্টের সব সার্ভারের জন্য ইস্যু করা হয়, তবে প্রতিটি রিকোয়েস্টে serverId প্যারামিটার যোগ করুন। একটি সার্ভারে আবদ্ধ key-এর ক্ষেত্রে এই প্যারামিটার বাদ দিতে পারেন।
প্লেয়ারের ভোট যাচাই
Discord বটের মূল দৃশ্যপট: “এই ব্যক্তি ভোট দিয়েছে কি না”। এন্ডপয়েন্টটি হলো GET /votes/check।
প্যারামিটার:
discordIdঅথবাnickname— আপনি কাকে যাচাই করছেন (এর একটি আবশ্যক);since— সময়কাল:today(ডিফল্ট, UTC-তে দিনের শুরু থেকে) অথবা ঘণ্টা বা দিনের সংখ্যা —24h,7d,30d;serverId— key যদি সব সার্ভারের জন্য ইস্যু করা হয় তবে আবশ্যক।
curl "https://api.millida.net/v2/rating/api/votes/check?discordId=123456789012345678&since=today" \
-H "X-Api-Key: rsk_live_YOUR_KEY"
রেসপন্স:
{
"voted": true,
"serverId": "srv…",
"voteId": "clx…",
"votedAt": "2026-06-16T10:12:00.000Z",
"discordId": "123456789012345678",
"nickname": "Steve",
"since": "2026-06-16T00:00:00.000Z"
}
voted যদি true হয়, তবে প্লেয়ার নির্বাচিত সময়কালে একটি গণনাকৃত ভোট দিয়েছে। শুধু বৈধ ভোট গণনা করা হয় (বটিং এবং প্রত্যাখ্যাত ভোট গণনা করা হয় না।)
Discord দিয়ে যাচাই সম্পর্কে: একটি ভোট Discord অ্যাকাউন্টের সাথে শুধু তখনই লিংক হয় যখন প্লেয়ার তার Millida প্রোফাইলে তা উল্লেখ করেছে। কিছু প্লেয়ারের Discord লিংক করা না থাকলে
nicknameদিয়ে যাচাই করুন বা প্লেয়ারদের প্রোফাইলে Discord লিংক করতে বলুন।
ভোটের তালিকা
GET /votes সার্ভারের ভোটগুলো নতুন থেকে পুরোনো ক্রমে ফেরত দেয়।
প্যারামিটার (সবই ঐচ্ছিক):
status—VALID,HELD,REJECTED_FRAUD,REJECTED_RATE_LIMIT,REJECTED_NO_PLAY_HISTORY, অথবাALL(ডিফল্টে সবগুলো ফেরত আসে);discordId,nickname— প্লেয়ার অনুযায়ী ফিল্টার;from,to— ISO ফরম্যাটে তারিখের পরিসর;limit— কতটি ফেরত দেবে (1–200, ডিফল্ট 50);cursor—nextCursorফিল্ড থেকে পরবর্তী পেজের কার্সর।
curl "https://api.millida.net/v2/rating/api/votes?status=VALID&limit=100" \
-H "X-Api-Key: rsk_live_YOUR_KEY"
রেসপন্স:
{
"votes": [
{
"id": "clx…",
"serverId": "srv…",
"discordId": "123456789012345678",
"nickname": "Steve",
"status": "VALID",
"votedAt": "2026-06-16T10:12:00.000Z"
}
],
"nextCursor": "eyJ…"
}
পরবর্তী পেজ পেতে cursor-এ nextCursor সেট করে রিকোয়েস্টটি পুনরাবৃত্তি করুন। nextCursor যখন null, তখন আর কোনো ডেটা নেই। ভোটদাতাদের IP অ্যাড্রেস API-এর মাধ্যমে পাঠানো হয় না।
পরিসংখ্যান
GET /stats সার্ভারের সারসংক্ষেপ কাউন্টার ফেরত দেয়:
{
"serverId": "srv…",
"validToday": 42,
"valid24h": 50,
"valid30d": 1280,
"totalValid": 9001,
"totalAll": 9500
}
উদাহরণ: একটি Discord বট ভোট দেওয়ার জন্য রোল দেয়
async function hasVotedToday(discordId) {
const res = await fetch(
`https://api.millida.net/v2/rating/api/votes/check?discordId=${discordId}&since=today`,
{ headers: { "X-Api-Key": process.env.MILLIDA_RATING_KEY } },
);
const data = await res.json();
return data.voted === true;
}
একটি Discord কমান্ড দিয়ে এই ফাংশনটি কল করুন এবং প্লেয়ার ভোট দিয়ে থাকলে রোলটি দিন।
সীমাবদ্ধতা
- API শুধু পড়ার জন্য।
- রিকোয়েস্টের হার সীমিত — কমান্ডে যাচাইয়ের জন্য এটি যথেষ্টের বেশি। API-কে দ্রুত লুপে বারবার পোল করবেন না।
- একটি key শুধু আপনার সার্ভারগুলোর ভোট দেখতে পায়।