ГлавнаяAPI документация
Vote API
Open BetaПубличное API для проверки голосов игроков. Подключите его к вашему серверу, чтобы автоматически награждать игроков за голосование на FKDev.
Base URL
https://fkdev.ruАвторизация
API токен (Bearer)
Rate limit
Без токена: 60/мин · С токеном: 10 000/день
Авторизация
Для работы с API нужен токен. Без токена доступен ограниченный режим (60 запросов/мин по IP), но для продакшена рекомендуется получить токен.
Как получить токен
- Зарегистрируйтесь на FKDev (или войдите через Telegram)
- Зайдите в Панель управления
- В блоке «API токены» нажмите «Создать токен»
- Скопируйте токен — он показывается только один раз
Передача токена
Вариант 1 — Заголовок (рекомендуется)
Authorization: Bearer fkdev_ваш_токенВариант 2 — Query-параметр
GET /api/vote/check?server_id=1&nickname=Steve&token=fkdev_ваш_токенЛимиты
| Режим | Лимит | Считается по |
|---|---|---|
| Без токена | 60 запросов/мин | IP адресу |
| С токеном | 10 000 запросов/день | Токену |
GET
Проверить голос игрока
GET /api/vote/check?server_id=1&nickname=SteveПараметры
server_idобяз.ID сервера (число). Можно найти на странице сервера.nicknameобяз.Ник Minecraft игрока (1-16 символов, латиница и цифры)periodПериод: 1d (по умолчанию), 7d, 30dОтвет
voted_todaybooleanГолосовал ли игрок сегодняvoted_atstring|nullДата/время голоса сегодня (ISO)vote_countnumberКоличество голосов за указанный периодlast_votestring|nullДата/время последнего голоса (ISO)periodstringЗапрошенный периодПример ответа
{
"server_id": 1,
"nickname": "Steve",
"voted_today": true,
"voted_at": "2025-04-24T12:30:00.000Z",
"vote_count": 5,
"period": "7d",
"last_vote": "2025-04-24T12:30:00.000Z"
}GET
Топ голосующих
GET /api/vote/check?server_id=1&top=10&period=30dПараметры
server_idобяз.ID сервера (число)topобяз.Количество записей (1-50)periodПериод: 1d, 7d, 30d (по умолчанию 1d)Ответ
top_votersarrayМассив объектов с полями:nicknamestringНик игрокаvote_countnumberКоличество голосов за периодlast_votestringДата/время последнего голосаПример ответа
{
"server_id": 1,
"period": "30d",
"top_voters": [
{ "nickname": "Steve", "vote_count": 12, "last_vote": "2025-04-24T12:30:00Z" },
{ "nickname": "Alex", "vote_count": 8, "last_vote": "2025-04-23T18:15:00Z" }
]
}Коды ответов
| Код | Описание |
|---|---|
| 200 | Успешный запрос |
| 400 | Неверные параметры (отсутствует server_id или nickname) |
| 401 | Невалидный, отключённый или отсутствующий токен |
| 429 | Превышен лимит запросов (60/мин). Заголовок Retry-After: 60 |
| 500 | Внутренняя ошибка сервера |
Примеры использования
Java плагин (Bukkit/Spigot)
// Проверка голоса игрока
String API_TOKEN = "fkdev_ваш_токен_здесь";
URL url = new URL("https://fkdev.ru/api/vote/check?server_id=YOUR_ID&nickname=" + player.getName());
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("Authorization", "Bearer " + API_TOKEN);
con.setConnectTimeout(5000);
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String response = in.lines().collect(Collectors.joining());
in.close();
JSONObject json = new JSONObject(response);
if (json.getBoolean("voted_today")) {
player.sendMessage("§aСпасибо за голос! Получите награду!");
// Выдача награды
}cURL
# Проверить голос (с токеном) curl -H "Authorization: Bearer fkdev_ваш_токен" "https://fkdev.ru/api/vote/check?server_id=1&nickname=Steve" # Топ голосующих за 30 дней (токен через параметр) curl "https://fkdev.ru/api/vote/check?server_id=1&top=10&period=30d&token=fkdev_..."
JavaScript / Fetch
const API_TOKEN = "fkdev_ваш_токен";
const res = await fetch(
"https://fkdev.ru/api/vote/check?server_id=1&nickname=Steve&period=7d",
{ headers: { "Authorization": "Bearer " + API_TOKEN } }
);
const data = await res.json();
if (data.voted_today) {
console.log("Игрок голосовал сегодня!");
}
console.log("Голосов за 7 дней:", data.vote_count);PHP
$token = "fkdev_ваш_токен";
$ctx = stream_context_create([
'http' => ['header' => "Authorization: Bearer $token"]
]);
$response = file_get_contents(
"https://fkdev.ru/api/vote/check?server_id=1&nickname=Steve",
false, $ctx
);
$data = json_decode($response, true);
if ($data['voted_today']) {
echo "Спасибо за голос!";
}
echo "Голосов: " . $data['vote_count'];Важно
●Токен — не передавайте токен в клиентский код (JS на сайте). Используйте его только на бэкенде вашего сервера/плагина.
●CORS — API доступно с любого домена. Заголовок
Access-Control-Allow-Origin: * установлен.●Cloudflare — сайт работает через Cloudflare. Rate limit без токена считается по IP.
●Кеширование — ответы кешируются на 30 секунд. После голосования данные обновятся в течение 30 секунд.
●Обнуление — голоса считаются за скользящее окно (1d/7d/30d), а не за календарный период.
●Таймзона — все даты в ответах даны по московскому времени (UTC+3).
Как узнать server_id?
Откройте страницу вашего сервера на мониторинге. В разделе «API для проверки голосов» указан ваш server_id — он выделен оранжевым цветом.
💡 Если не можете найти ID — напишите нам, поможем.