API Documentation

Интегрируйте свой проект с нашей платформой используя простые и мощные API методы.

Голосование

Вы можете настроить Webhook для получения уведомлений в реальном времени о голосах за ваш проект. Мы будем отправлять POST запрос на указанный вами URL.

POST {YOUR_WEBHOOK_URL}
JSON
{
  "type": "vote",
  "project_id": 123,
  "username": "PlayerName",
  "timestamp": 1672531200000,
  "signature": "sha256_hash"
}

Получение информации о проекте

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

GET /api/project/:id
JSON
{
  "id": 123,
  "name": "My Server",
  "rating": 450,
  "servers": [
    {
      "name": "Survival",
      "ip": "play.example.com",
      "port": 25565,
      "online": 150,
      "max_players": 1000
    }
  ]
}

Проверка подписи Webhook

Для безопасности мы подписываем каждый webhook-запрос, используя ваш секретный ключ проекта. Вы можете проверить подпись, чтобы убедиться, что запрос действительно отправлен нашим сервисом.

Алгоритм подписи

  • Подпись передается в заголовке X-Signature
  • Используется алгоритм HMAC SHA256
  • В качестве ключа используется Secret Key вашего проекта (доступен в настройках)
  • Подписывается тело запроса (Raw JSON Body)

Пример проверки (Node.js)

const crypto = require('crypto');

// payload - это сырое тело запроса (string)
// signature - заголовок X-Signature
// secret - ваш Secret Key из настроек проекта
function verifySignature(payload, signature, secret) {
    const hash = crypto
        .createHmac('sha256', secret)
        .update(payload)
        .digest('hex');
        
    return hash === signature;
}