The MineList API lets your server check whether a player has voted, give a reward exactly once and read public statistics. All endpoints return JSON and use plain HTTPS GET requests, so they work from any language.
Getting your API key
Add your server, claim it and open the owner panel. The API key is shown on the server settings page. Keep it private, because it identifies your server. If it leaks, generate a new one in the panel and update your plugin or script.
The base address of all endpoints is https://minelist.eu.
Check a vote
GET /api/v1/vote?key=API_KEY&username=NICK
Tells you whether the player voted today and whether the reward was already claimed.
{"voted":true,"claimed":false,"next_vote_utc":"2026-10-31T00:00:00Z"}
votedis true if the nick has a vote for your server in the current UTC day.claimedis true if you already marked that vote as claimed.next_vote_utcis the time when the player can vote again.
Claim a vote
GET /api/v1/vote/claim?key=API_KEY&username=NICK
Marks today's vote as claimed. Call it right before you hand out the reward, so a player cannot collect twice. Possible answers:
| Response | Meaning |
|---|---|
{"voted":true,"claimed":true} | The vote was valid and is now claimed. Give the reward. |
{"voted":true,"claimed":false,"already_claimed":true} | The vote was already claimed earlier. Give nothing. |
{"voted":false,"claimed":false} | The player has not voted today. |
List this month's votes
GET /api/v1/votes?key=API_KEY
Returns all votes your server received in the current month. It is useful for monthly top voter rewards and leaderboards on your own website.
Public server stats
GET /api/v1/server/<slug>
This endpoint needs no key. The slug is the last part of the server address on MineList. Example response fields:
| Field | Description |
|---|---|
name | Server name |
url | Website of the server |
ip | Connection address |
online | Whether the last check succeeded |
players | Players online at the last check |
max_players | Player slots |
version | Server version |
votes_month | Votes this month |
votes_total | Votes since the server was added |
uptime_30 | Uptime during the last 30 days in percent |
rating | Average rating |
last_check | Time of the last check |
Example with curl
This is the whole logic in shell form. Any language that can send an HTTP request, such as Java, PHP, Python or Node.js, does the same.
curl -s "https://minelist.eu/api/v1/vote/claim?key=API_KEY&username=Steve"
Parse the JSON, and if claimed is true, run your reward command, for example give Steve diamond 3.
NuVotifier support
If you prefer instant rewards without polling, MineList can push votes to your server through NuVotifier. Both protocol versions are supported. Version 1 uses an RSA public key, version 2 uses a token.
- Install NuVotifier on your server and restart it.
- In the owner panel enter the host, the port (8192 by default) and the public key (v1) or token (v2).
- Press Send test vote and check that your server logs the vote.
If the test fails, make sure the Votifier port is open in your firewall and that the key was copied without spaces or line breaks.
Live banner
Every server has a live banner of 468x60 pixels showing the current status and player count:
https://minelist.eu/banner/<slug>.png
HTML embed example:
<a href="https://minelist.eu/server/your-slug">
<img src="https://minelist.eu/banner/your-slug.png" width="468" height="60" alt="Vote for us on MineList">
</a>
Good practice
- Cache public stats for at least a minute instead of calling the API on every page view.
- Never put the API key into client-side code or a public repository.
- Use the claim endpoint only once per reward.