- Every listed server gets a 24-hour and 7-day chart on its page and a daily average and peak chart for up to 90 days on
/server/your-server/stats, from our own checks every 5 minutes or less. - The free API (no key, 120 requests a minute) returns the live count for a Discord bot or your website.
- For playtime, sessions and who comes back, run Plan on the server. For Grafana, use the Prometheus exporter. bStats is for plugin authors, not you.
- Counts that never move, exceed the maximum or sit exactly full get a visible flag and rank below honest servers.
You do not need to install anything to get a Minecraft server player count tracker for your own server: if it is listed here, we have been checking it at least every 5 minutes and charting the results since the day it was added. Your server page shows the last 24 hours and the last 7 days, and the stats page shows daily averages and peaks for up to 90 days with a trend once there is enough history. The free API returns the live number for a bot or a website.
What a list cannot tell you is who those players are: how long they stay and how many of last week's new joins came back. For that you run a tracker inside the server. This guide covers both, what to look for in the data, why the number on a list can differ from /list in game, and the flags we put on counts that look wrong.
The charts you already have (no setup)
We check every server ourselves, the same way the game client does when it refreshes your server list: at least every 5 minutes, the busiest servers every minute, and any server whose page someone has open every minute. Raw checks are kept for 7 days and then summarized into hourly figures that are kept for good. That history feeds three places.
- Your server page. "Players now" refreshes every minute while the page is open, next to today's peak. Below the listing: average players per hour over the last 24 hours, average players in 4-hour blocks over the last 7 days, and a day-by-day uptime strip for the week.
- The stats page at
/server/your-server/stats, also reachable from is it down. It opens with whether the server is up right now (and how long it has been down if not), then uptime for the last 24 hours, 7, 30 and 90 days as the history builds, a bar chart of average players per day with the daily peak drawn over it for up to 90 days, the outages from the last 30 days, and a trend label once we have a few weeks of data.
The charts use our checks, not the number your server reports about itself. For ranking we take the middle of the last three readings so a single odd ping can't spike the score; the charts show the readings as they were.
The free API for a bot or your website
The status API is free, needs no key, and allows 120 requests a minute per address. Replace your-server with the name in your server's page address:
GET https://9minecraftserver.com/api/v1/servers/your-server
It returns the server's name, address, edition, whether it is online, players and maximum, version, votes this month and all time, when we last checked, and links to the page and the vote page. The response carries a permissive cross-origin header, so a plain fetch() from your own website works without a proxy. There is also a vote check for reward scripts (/voted?username=Steve says whether that player voted today and when they can vote next), and a vote link with the name filled in that your /vote command can print.
The API gives you the current reading, not the history. For your own long-term log, poll it every 5 minutes (a cron job with curl appending to a CSV is enough) or let a Discord bot do it; our Discord status bot guide and status page guide both build on this endpoint.
Self-hosted trackers: Plan, Prometheus and what bStats is not
| Tool | Runs on | What you get | Effort |
|---|---|---|---|
| Plan (Player Analytics) | Spigot, Paper, Folia, Fabric, Sponge, BungeeCord and Velocity, one jar for all of them | A built-in web dashboard: players online over time, sessions and playtime, how your player base changes, per-player pages, network-wide views on a proxy | Drop in the jar, open the dashboard port on your host. The one to install first. |
| Prometheus exporter | Paper, Spigot, Bukkit forks (Folia experimental) | Metrics at localhost:9940/metrics: players online, TPS and tick times, memory, loaded chunks, entities, optional per-player stats; sample Grafana dashboards to import | You also run Prometheus and Grafana somewhere. Worth it if you already have them or run several servers. |
| bStats | Inside most plugins you install | Nothing for you. It reports anonymous usage to plugin authors across every server running their plugin, so they can see server counts and version adoption. | None. It is not a tracker for your server, and the folder it creates is harmless. |
Plan answers the questions a list can't: which players are new this week, how long a typical session lasts, and whether players who joined during your event came back. On a Velocity or BungeeCord network it can sit on the proxy and combine the backends. The Prometheus route is for owners who want alerts (TPS under 18 for five minutes, memory near the limit) and one Grafana screen for several servers.
What to look for once you have the data
- Your peak hour. Read it off the 24-hour chart across a few days. Schedule events, restarts and staff shifts around it, and buy any promotion for the days that cover it. The "busy right now" part of our Server Score compares today with your usual crowd at this hour, so a spike at your real peak counts for more.
- Day of week. The 7-day chart in 4-hour blocks makes weekend versus school-night patterns obvious. Most small servers have one or two days that carry the week.
- Who comes back. Plan's session data is the number that matters. Twenty players online made of five regulars and fifteen one-time joins is a leak, not a community. Our get-players guide is about fixing the first five minutes for exactly that reason.
- The 90-day trend. The stats page calls a trend once it has a few weeks. Flat is fine for a server you run for friends; a slow decline is the earliest warning you will get, and our reviving guide starts from there.
- Where you sit. The median online server on our list has 12 players; the statistics guide has the distribution.
Why the list number differs from in-game
Owners write to us about this more than anything else. Almost every case is one of these.
- You are looking at one backend.
/liston a Paper server counts that server. A Velocity or BungeeCord proxy answers the list ping with the whole network, and Velocity'sshow-max-playersinvelocity.tomlsets the maximum it reports. If your listing points at the proxy, the count is the network total; if it points at a backend, it is that backend only. - Ping passthrough. Velocity's
ping-passthroughcan forward the description or everything from a backend instead of answering itself. Set toALL, the proxy shows one backend's count and maximum, which is usually not what you want on a list. - Bedrock players through Geyser. They are real players on the Java server, so they are in the Java count. A separate Bedrock-only server on port 19132 is a separate listing with its own count.
- Hosts that sleep. Free hosts that shut the server down when nobody is on either fail the ping or answer with a placeholder page. We treat a placeholder answer as offline, so the chart shows a gap, not zero players.
- Timing. We read every 5 minutes at most; you looked in between, and a chart point is an hourly average, not a moment.
- A plugin is lying. Fake-count plugins and "sample players" tricks change what the list ping says without changing who is online. That is the case the flags below exist for.
The count flags we apply
Because the list ping is whatever the server chooses to say, we don't accuse anyone of faking; we point out a count that looks unusual and rank it accordingly. The rules are on how we rank, and these are the exact triggers.
| Flag | Trigger |
|---|---|
| Over maximum | More players online than the server's own maximum. |
| Tiny maximum | A maximum of 1 while claiming many players online. |
| Flat | The count and maximum have not changed at all over the last few hours. Real player counts always move. |
| Always full | Exactly full at every check we have made. |
| Implausible | More than 250,000 players, which is more than any server has ever had online at once. |
A flagged server stays listed and shows "Player count looks unusual" on its row and page. It never gets the Hot flame or a Rising spot, only part of its count goes into the Server Score (a little less for a cosmetic maximum like 15/0, a lot less for a count far above its own maximum, almost nothing for numbers in the millions), and it sorts below believable counts. Right now about 3% of online servers (70 when we last counted) carry a flag, most of them the tiny-maximum kind, which is usually a proxy misconfiguration rather than cheating. Flags are recomputed from recent checks, so a fixed cause clears itself. The fake counts guide shows what players see.
Your next step is to claim your listing from its server page with the one-time MOTD code. A verified owner counts toward the trust part of the score, and the edit page shows the listing meter next to the same charts, so you can watch what a change does to the number.
Quick questions
How do I see my Minecraft server's player count history?
Open your server's page here for the last 24 hours and 7 days, or /server/your-server/stats for daily averages and peaks over up to 90 days plus uptime and outages. It is built from our own checks, so it works for any listed server with no plugin.
What is the best Minecraft server player count graph plugin?
Plan (Player Analytics). It runs on Paper, Spigot, Fabric, Sponge, Folia, BungeeCord and Velocity from one jar and serves a web dashboard with players over time, sessions and playtime. Use the Prometheus exporter instead if you already run Grafana.
Can I show my live player count on Discord or my website?
Yes. Call /api/v1/servers/your-server from a bot or from your page's JavaScript; it is free, keyless, allows 120 requests a minute and returns players, maximum, online status and version. Our Discord bot and status page guides have working examples.
Why does my listing say "Player count looks unusual"?
Our checks saw a count above your maximum, a maximum of 1, a number that had not moved for hours, or a server exactly full every time. Check your proxy's reported maximum and any plugin that touches the list ping. The flag clears by itself once the pattern stops.
