Public Minecraft server API

Read-only server status data for Minecraft, free and without a key. Use it in a Discord bot, a status page, a Discord embed, a spreadsheet or a research script. All endpoints are anonymous, CORS-enabled and served over HTTPS.

Before you build

  • Free and keyless. There is no signup, no API key and no attribution requirement — though a link back is appreciated.
  • Read-only. Everything documented here is a GET; writes (votes, claims, boosts) need a signed-in session and are not part of the public API.
  • Please be gentle: the catalogue endpoints are cached for 15 to 30 seconds and rate-limited to 60 requests per minute per IP. Cache on your side and do not poll faster than once a minute.
  • Cross-origin reads are allowed from any origin, so you can call it straight from browser JavaScript.
  • `checked_at` is when we last pinged the server. A server that has not been reachable for a while is returned with `online: false` rather than omitted.

Endpoints

GET /api/servers

The server catalogue, paginated and filterable. This is the endpoint to start from.

page integer, default 1
limit integer 1–500, default 12
tags comma-separated tag slugs, AND logic
exclude_tags comma-separated tag slugs, NOT logic
version version substring, e.g. 1.21
min_players integer
max_players integer
search name, IP or description substring
sort default | players | votes | newest | copies
https://www.mc-monitor.app/api/servers?limit=2&sort=players
GET /api/servers/{slug}

One server, with description, tags, contacts, socials, vote counts and its latest status.

slug the server identifier, e.g. hypixel.net
https://www.mc-monitor.app/api/servers/hypixel.net
GET /api/servers/{slug}/widget

The compact payload behind the embeddable badge: name, players, version and uptime.

slug the server identifier
https://www.mc-monitor.app/api/servers/hypixel.net/widget
GET /api/servers/{slug}/badge

Returns a flat PNG badge (28px tall, README-friendly) instead of JSON. Useful in places an iframe will not render.

slug the server identifier
theme dark (default) | light
https://www.mc-monitor.app/api/servers/hypixel.net/badge?theme=dark
GET /api/servers/{slug}/history

Player-count history for one server over the last 24 hours, 7 days or 30 days.

slug the server identifier
period 24h | 7d | 30d, default 24h
https://www.mc-monitor.app/api/servers/hypixel.net/history?period=24h
GET /api/stats

Catalogue-wide totals: how many servers we track and how many players are online right now.

https://www.mc-monitor.app/api/stats
GET /api/tags

The gameplay tags used by the filters, with their slugs.

https://www.mc-monitor.app/api/tags

Example

curl "https://www.mc-monitor.app/api/servers?limit=2&sort=players"
{ "servers": [ { "id": 20724, "name": "Vanilla Hardcore", "identifier": "mhc.serveminecraft.net", "ip": "mhc.serveminecraft.net", "online": true, "players_online": 38800, "players_max": 50000, "version": "26.3", "vote_count": 0, "checked_at": "2026-10-23T15:47:13.362338+00:00", "tags": ["hardcore"] }, { "id": 2764, "name": "DonutSMP", "identifier": "donutsmp.net", "ip": "donutsmp.com", "online": true, "players_online": 32229, "players_max": 50000, "version": "1.7.2-26.1", "vote_count": 16, "checked_at": "2026-10-23T15:53:52.808772+00:00", "tags": ["smp", "survival", "anarchy", "vanilla", "economy"] } ], "total": 6850, "page": 1, "limit": 2, "pages": 3425 }

Prefer not to build it yourself?

The badge on your server page is the same data, already rendered. Drop one iframe on your site and it keeps itself up to date.