BYTETOOLS

mcsrvstat API

Free Minecraft server status API with no key: ping any Java or Bedrock server for players online, MOTD, version, icon and mods. Tested curl example.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-20

What is the mcsrvstat API?

mcsrvstat is a free, key-free API that pings any Minecraft server — Java or Bedrock — and returns whether it is online, current and maximum player counts, MOTD, server version, icon and installed plugins or mods.

Querying a Minecraft server directly requires implementing its custom TCP handshake protocol. This API does that for you and returns clean JSON, which turns a fiddly networking task into a single HTTP request.

Responses are cached for around a minute, which is deliberate — it protects target servers from being hammered by status widgets. Do not expect second-by-second player counts, and do not try to poll around it.

Quick facts

Base URL
https://api.mcsrvstat.us
Authentication
No API key required.
Rate limit
Responses are cached roughly one minute per server; polling faster returns the cached value.
Pricing
Free.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the mcsrvstat API

Every request below was executed against the live API on 2026-08-20, and the response shown is the real body it returned — not an illustration.

1. Check a Minecraft server's status

GET https://api.mcsrvstat.us/3/hypixel.net

curl
curl 'https://api.mcsrvstat.us/3/hypixel.net'
JavaScript (fetch)
const res = await fetch("https://api.mcsrvstat.us/3/hypixel.net");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://api.mcsrvstat.us/3/hypixel.net", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "ip": "172.65.197.160",
  "port": 25565,
  "debug": {
    "ping": true,
    "query": false,
    "bedrock": false,
    "srv": false,
    "querymismatch": false,
    "ipinsrv": false,
    "cnameinsrv": false,
    "animatedmotd": false,
    "cachehit": true,
    "cachetime": 1787208223,
    "cacheexpire": 1787208523,
    "apiversion": 3,
    "dns": {
      "a": [
        {
          "name": "mc.hypixel.net",
          "type": "A",
          "address": "172.65.197.160"
        }
      ]
    },
    "error": {
      "query": "Failed to read from socket."
    }
  },
  "motd": {
    "raw": [
      "§f                 §aHypixel Network §c[1.8/26.2]",
      "§f   §6§lSB 0.27 TORRHUS & SAFARI §7| §e§lSUMMER EVENT"
    ],
    "clean": [
      "                 Hypixel Network [1.8/26.2]",
      "   SB 0.27 TORRHUS & SAFARI | SUMMER EVENT"
    ],
    "html": [
      "<span style=\"color: #FFFFFF;\">                 </span><span style=\"color: #55FF55;\">Hypixel Network </span><span style=\"color: #FF5555;\">[1.8/26.2]</span>",
      "<span style=\"color: #FFFFFF;\">   </span><span style=\"color: #FFAA00;\"><span style=\"font-weight: bold;\">SB 0.27 TORRHUS &amp; SAFARI </span></span><span style=\"color: #AAAAAA;\">| </span><span style=\"color: #FFFF55;\"><span style=\"font-weight: bold;\">SUMMER EVENT</span></span>"
    ]
  },
  "players": {
    "online": 17852,
    "max": 200000
  },
  "version": "Requires MC 1.8 / 1.21",
  "online": true,
  "protocol": {
    "version": 47,
    "name": "1.8.9"
  },
  "hostname": "mc.hypixel.net",
  "icon": "data:image/png;base64,iVBORw0KGgoAAAA

Parameters

ParameterTypeRequiredDescription
3/<address>pathRequiredAPI version 3 and the server address. 3/hypixel.net
bedrock/3/<address>pathOptionalBedrock edition servers. bedrock/3/example.com
icon/<address>pathOptionalThe server's icon as a PNG. icon/hypixel.net

Response fields

onlineboolean
Whether the server responded — check this first.
ip / portstring|integer
Resolved address and port.
players.online / players.maxinteger
Current and maximum player counts.
motd.cleanarray
Message of the day with colour codes stripped.
versionstring
Server version string.
protocolobject
Protocol version and name.
plugins / modsarray
Installed plugins or mods, when the server reports them.

What you can build with the mcsrvstat API

  • Show live server status and player count on a community site
  • Build a Discord bot that reports whether a server is up
  • Monitor server availability and alert on downtime
  • Display MOTD and server icon in a launcher

Common errors and how to fix them

online: false

The server is down, or the address is wrong.

Fix: Check `online` before reading any other field — the rest will be absent.

MOTD contains colour codes

Minecraft MOTDs use section-sign formatting.

Fix: Use motd.clean, which has the codes stripped, rather than motd.raw.

Player count seems stale

Responses are cached about a minute.

Fix: That is deliberate to protect target servers; polling faster returns the same cached value.

mcsrvstat API — frequently asked questions

Is the Minecraft server status API free?

Yes, free with no API key. Responses are cached roughly a minute per server to protect the servers being queried.

Does it work with Bedrock servers?

Yes, use the /bedrock/3/ path prefix. Java servers use /3/ directly.

Why not query the server directly?

Minecraft uses a custom TCP handshake protocol rather than HTTP. This API implements that for you and returns JSON.

Why is the MOTD full of strange characters?

Minecraft MOTDs embed section-sign colour codes. Use motd.clean, which strips them, rather than motd.raw.

Tools that pair with this API

mcsrvstat is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-20; always check the official documentation before relying on this API in production, as terms and limits can change.