Voting check postback

ServerTop100 implements the same incentive contract as Arena-Top100, plus TopG, XtremeTop100, Top100Arena and GTop100 vote URLs so existing game vote buttons keep working.

How postback works

  1. Log into your dashboard and set the callback URL on the server.
  2. Let players vote with one of the URLs below, passing their account id.
  3. We call your script after every vote attempt.

Default callback (Arena-compatible)

https://servertop100.com/index.php?a=in&u=[USERNAME]&id=[PlayerID]

Aliases: id, postback or incentive. Dynamic callback: append callback=[base64].

Variables we send (GET and POST)

  • secret — your API secret from the dashboard. The tester sends TEST.
  • voted1 unique vote, 0 duplicate / failed.
  • reset — unix timestamp of next noon or midnight UTC.
  • userip — voter IP.
  • userid — player id if you passed it.
  • custom — the base64 callback string if you used callback=.

TopG-compatible

https://servertop100.com/wow/in-[USERNAME]-[PlayerID]
https://servertop100.com/wow/server-[USERNAME]-[PlayerID]

On successful votes only we also GET your callback as:

https://YOURGAME/postback.php?p_resp=[PlayerID]&ip=[USERIP]

No callback is sent on duplicate votes in TopG mode — matching monitor.topg.org behaviour.

Other list URLs

XtremeTop100  https://servertop100.com/in.php?site=[USERNAME]&postback=[PlayerID]
Top100Arena   https://servertop100.com/in.asp?id=[USERNAME]&incentive=[PlayerID]
GTop100       https://servertop100.com/wow/sitedetails/[USERNAME]?vote=1&pingUsername=[PlayerID]

Test your callback Open dashboard

PHP example (Arena style)

<?php
$my_secret = 'YOUR_API_SECRET'; // or 'TEST' while developing
$secret = isset($_POST['secret']) ? $_POST['secret'] : (isset($_GET['secret']) ? $_GET['secret'] : '');
if ($secret !== $my_secret) { exit; }

$userid = isset($_POST['userid']) ? $_POST['userid'] : (isset($_GET['userid']) ? $_GET['userid'] : null);
$valid  = (int)(isset($_POST['voted']) ? $_POST['voted'] : (isset($_GET['voted']) ? $_GET['voted'] : 0));
$reset  = (int)(isset($_POST['reset']) ? $_POST['reset'] : (isset($_GET['reset']) ? $_GET['reset'] : 0));

if ($userid && $valid === 1) {
    // reward player, store $reset as next_vote
}