投票API
公開APIです。投票の一覧を取得し、プレイヤーが投票したかどうか(Discordまたはニックネームで)を確認できます。Discordボットに適しています。
更新日 2026年10月13日
公開投票APIを使うと、連携機能からサーバーの投票を読み取れます。投票の一覧を取得し、特定のプレイヤーが投票したかを確認し、統計を表示できます。最もよく使われるのは、Discordボットで投票した人にランクや報酬を付与するケースです。
アクセスは読み取り専用です。APIを通じて投票を変更することはできません。
APIキーの取得
- サーバーのページを開き、オーナー確認を完了します。
- サーバー設定で**「APIキー」セクションを開き、「キーを作成」**をクリックします。
rsk_live_…のような形式のキーをコピーします。表示されるのは一度だけです。パスワードと同じように保管してください。
キーは1つのサーバーに限定することも、すべてのサーバー用に発行することもできます。漏えいしたキーは同じセクションで無効化し、新しいキーを作成してください。
重要: キーをオープンソースコード、リポジトリ、公開されたボット設定に記載しないでください。キーが漏えいした場合は無効化してください。
ベースURLと認証
ベースURL: https://api.millida.net/v2/rating/api
キーは X-Api-Key ヘッダー(または Authorization: Bearer …)で渡します。
curl https://api.millida.net/v2/rating/api/stats \
-H "X-Api-Key: rsk_live_YOUR_KEY"
キーがテナントのすべてのサーバー用に発行されている場合は、すべてのリクエストに serverId パラメータを追加します。1つのサーバーに紐づいたキーの場合は、このパラメータを省略できます。
プレイヤーの投票を確認する
Discordボットの主な用途は「この人は投票したか」の確認です。エンドポイントは GET /votes/check です。
パラメータ:
discordIdまたはnickname— 確認する対象(いずれか1つが必須);since— 期間:today(デフォルト、UTCでのその日の開始時から)または時間数・日数 —24h、7d、30d;serverId— キーがすべてのサーバー用に発行されている場合は必須。
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を短い間隔でポーリングしないでください。
- キーは自分のサーバーの投票のみを参照できます。