Reward your players for voting
Find out if a player voted for your server and give an in-game reward — set up in 3 simple steps.
Quick start
Replace {SERVER_ID} with your server ID and {PLAYER} with the player's account name or ID.
Send your players to the vote page
Put this link on your website or in your game (e.g. a "Vote" button). The player name is remembered with the vote.
https://vtop100.com/vote/{SERVER_ID}/{PLAYER}
Ask our API if the player voted
Call this URL from your game server or website (not from the player's browser). ?claim=1 marks the vote as rewarded.
https://vtop100.com/api/v1/vote/{SERVER_ID}/{PLAYER}?claim=1
Give the reward when "reward": true
You get "reward": true only once per vote — calling the URL again returns false, so players can't collect the same reward twice. They can vote again every 12 hours.
{
"voted": true,
"reward": true, // ← give the reward now
"next_vote_at": "2026-11-14T21:12:00+01:00"
}Code examples
Copy & paste — only the reward part is up to you.
// PHP $serverId = 1234; $player = 'PlayerName'; $url = "https://vtop100.com/api/v1/vote/$serverId/" . rawurlencode($player) . "?claim=1"; $data = json_decode(file_get_contents($url), true); if (!empty($data['reward'])) { // give the reward to $player here }
// JavaScript (Node.js 18+) const serverId = 1234; const player = 'PlayerName'; const res = await fetch(`https://vtop100.com/api/v1/vote/${serverId}/${encodeURIComponent(player)}?claim=1`); const data = await res.json(); if (data.reward) { // give the reward to player here }
# Python 3 import json, urllib.parse, urllib.request server_id = 1234 player = "PlayerName" url = f"https://vtop100.com/api/v1/vote/{server_id}/{urllib.parse.quote(player)}?claim=1" data = json.load(urllib.request.urlopen(url)) if data.get("reward"): # give the reward to player here pass
# Terminal curl "https://vtop100.com/api/v1/vote/1234/PlayerName?claim=1"
Try it live
Check a player without claiming — the tester never uses up a reward.
API reference
All answers are JSON. You can use the plain ID (1234) or the ID with name (1234-servername).
Did this player vote for your server in the last 12 hours?
| Parameter | Description |
|---|---|
server | Your server ID |
player | Account name or ID, the same as in the vote link (upper/lower case doesn't matter, max. 100 characters) |
claim=1 | Optional. Marks the vote as rewarded — reward is true only on the first call |
{
"ok": true,
"server": 1234,
"user": "PlayerName",
"voted": true, // voted in the last 12 hours
"voted_at": "2026-11-14T09:12:00+01:00",
"next_vote_at": "2026-11-14T21:12:00+01:00",
"claimed": true, // reward was already taken
"reward": true // true only on the first ?claim=1 call
}Public stats of a server — show your votes and rank on your website.
{
"ok": true,
"id": 1234,
"name": "servername",
"title": "My Server x50 | Season 6",
"category": "Metin2",
"votes_in": 2431,
"votes_out": 987,
"rank": 3,
"premium": false,
"vote_url": "https://vtop100.com/vote/1234-servername",
"detail_url": "https://vtop100.com/details/1234-servername"
}| HTTP status | Meaning |
|---|---|
200 | Everything OK |
404 | server_not_found — wrong server ID |
422 | invalid_user — empty or too long player name |
429 | Too many requests — max. 600 per minute |
Good to know
next_vote_at tells you when the next vote is possible./api/{SERVER_ID}/{PLAYER} keeps answering {"status": true|false} — we recommend switching to v1.Need help with your integration? Contact us — we're happy to help.