🚀 Grosse promotion sur Pulse ! Ajoute ton serveur dès maintenant sur Pulse et reçois 2 mois de publicité gratuits 🎁
Menu

API Vote — Documentation

Endpoints publics, exemples d’appels et formats de réponses

Version 1.0

Introduction

L’API de vote est publique et appelable depuis l’extérieur. Aucun token ni session n’est requis.

Authentification par Token : Chaque serveur possède un token API unique. Utilisez ce token au lieu de l'ID du serveur pour sécuriser vos requêtes. Vous trouverez votre token dans la section "Token API" de votre espace serveur.

IP requise (IPv4) : le statut de vote est déterminé par l'IP du client (cooldown 90 minutes). Pour éviter toute ambiguïté, l'IP est passée directement dans l'URL : /api/servers/{token}/vote-status/{ipUser}. Aucun header spécial n'est nécessaire.

Endpoints

GET https://server-pulse.net/api/servers/{token}/vote-status/{ipUser}
Vérifie si l'IP {ipUser} peut voter pour le serveur identifié par {token} (cooldown 90 minutes). Aucun header requis.

Réponse (200)

{
                              "success": true,
  "can_vote": true,
  "message": "Vous pouvez voter maintenant",
  "next_vote_at": null,
  "cooldown_minutes": 90
}

Exemples

cURL — Statut de vote (IP dans l’URL)
curl -X GET "https://server-pulse.net/api/servers/VOTRE_TOKEN_API/vote-status/127.0.0.1" \
  -H "Accept: application/json"
PHP — testVoteStatus() (IP dans l’URL)
<?php
function testVoteStatus(string $baseUrl, string $token, string $ip): array {
    $url = rtrim($baseUrl, '/') . "/api/servers/{$token}/vote-status/{$ip}";
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER     => ['Accept: application/json'],
    ]);
    $res = curl_exec($ch);
    if ($res === false) throw new \RuntimeException('cURL error: ' . curl_error($ch));
    curl_close($ch);
    $data = json_decode($res, true);
    return is_array($data) ? $data : ['can_vote' => false, 'message' => 'Réponse invalide', 'success' => false];
}

Codes & retours possibles

CodeStatutExemple
200OK{ "can_vote":true, "success": true, "message": "Vous pouvez voter maintenant" }
200OK{ "can_vote":false, "success": false, "message": "Vous pourrez voter à nouveau dans X minutes", "next_vote_at": "..." }