API Документация

Интеграция с API для получения статистики голосований

Получение API ключа

Для работы с API необходимо получить персональный API ключ:

  1. Войдите в свой аккаунт
  2. Перейдите в раздел API Ключ в личном кабинете
  3. Нажмите "Создать API ключ"
  4. Скопируйте и сохраните ключ в безопасном месте

Важно!

Храните API ключ в безопасности. Не передавайте его третьим лицам и не публикуйте в открытом доступе.

Получение статистики голосований

Эндпоинт

GET /api/v1/votes/public/stats

Параметры запроса

ПараметрТипОбязательныйОписание
api_keystringДаВаш API ключ
server_idUUIDНетID сервера для фильтрации

Пример запроса

curl "https://mmo-world.com/api/v1/votes/public/stats?api_key=YOUR_API_KEY"

Пример ответа

{
  "user_id": "550e8400-e29b-41d4-a716-446655440000",
  "username": "admin",
  "servers": [
    {
      "server_id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
      "server_name": "My Server",
      "votes_count": 150,
      "votes_today": 5,
      "votes_this_month": 45,
      "vote_file_hash": "abc123def456...",
      "vote_file_url": "/api/v1/votes/public/files/abc123def456...",
      "votes": [
        {
          "id": 1,
          "voted_at": "14.01.2026 23:45:30",
          "ip_address": "192.168.1.2",
          "login": "Gamer456",
          "votes_count": 1
        },
        {
          "id": 2,
          "voted_at": "14.01.2026 23:22:12",
          "ip_address": "192.168.1.1",
          "login": "Player123",
          "votes_count": 1
        }
      ]
    }
  ],
  "total_votes": 150
}

Примечание: Массив votes содержит детальную информацию о каждом голосе за текущий месяц (дата, IP, ник игрока).

Получение файла голосований

Эндпоинт

GET /api/v1/votes/public/files/{file_hash}

Описание

Возвращает текстовый файл со списком голосований за текущий месяц. Хеш файла можно получить из ответа эндпоинта статистики или в личном кабинете.

Пример запроса

curl "https://mmo-world.com/api/v1/votes/public/files/abc123def456..."

Формат ответа

Текстовый файл с разделителем табуляция. Каждая строка содержит:

ID    Дата                  IP            Ник         Голосов
1     14.01.2026 23:22:12   192.168.1.1   Player123   1
2     14.01.2026 23:45:30   192.168.1.2   Gamer456    1

Примеры интеграции

PHP

<?php
$apiKey = 'YOUR_API_KEY';
$url = "https://mmo-world.com/api/v1/votes/public/stats?api_key=" . $apiKey;

$response = file_get_contents($url);
$data = json_decode($response, true);

foreach ($data['servers'] as $server) {
    echo "Сервер: " . $server['server_name'] . "\n";
    echo "Голосов сегодня: " . $server['votes_today'] . "\n";
    echo "Голосов за месяц: " . $server['votes_this_month'] . "\n";
}
?>

Python

import requests

api_key = 'YOUR_API_KEY'
url = f'https://mmo-world.com/api/v1/votes/public/stats?api_key={api_key}'

response = requests.get(url)
data = response.json()

for server in data['servers']:
    print(f"Сервер: {server['server_name']}")
    print(f"Голосов сегодня: {server['votes_today']}")
    print(f"Голосов за месяц: {server['votes_this_month']}")

JavaScript (Node.js)

const apiKey = 'YOUR_API_KEY';
const url = `https://mmo-world.com/api/v1/votes/public/stats?api_key=${apiKey}`;

fetch(url)
  .then(res => res.json())
  .then(data => {
    data.servers.forEach(server => {
      console.log(`Сервер: ${server.server_name}`);
      console.log(`Голосов сегодня: ${server.votes_today}`);
      console.log(`Голосов за месяц: ${server.votes_this_month}`);
    });
  });

Коды ошибок

КодОписание
401Неверный API ключ
400Неверный формат server_id
404Сервер не найден или не принадлежит вам
500Внутренняя ошибка сервера