Minecraft 服务器状态 API
查询 Minecraft Java 版服务器是否在线、版本、在线人数、玩家样例、MOTD、服务器图标和延迟;支持 SRV 记录,连不上时返回 online: false
数据来源:本服务器直接连接(Server List Ping 协议)
返回统一的 JSON 格式 { code, message, cached, stale, updatedAt, data },支持跨域,免注册每天可免费调用 100 次,注册后每天 10000 次。
查询 Minecraft Java 版服务器状态
GET /api/mc/server
请求参数
host(必填):服务器地址(域名或公网 IP,可写成 host:port);不允许内网和保留地址,示例mc.hypixel.netport:端口,1024~65535。不传且 host 是域名时先查 SRV 记录(_minecraft._tcp.host),没有 SRV 再用 25565;传了就不查 SRV,示例25565
返回字段
host(string):查询的主机(ASCII 形式,中文域名为 punycode)或 IPport(number):实际连接的端口(用了 SRV 记录时为 SRV 指向的端口)ip(string|null):实际连接的 IP;域名解析失败时为 nullsrv(object|null):使用的 SRV 记录;没有 SRV 记录或显式指定了端口时为 nullsrv.target(string):SRV 记录指向的主机srv.port(number):SRV 记录指向的端口online(boolean):是否在线(成功拿到状态信息)error(string|null):离线原因的中文说明(如“连接被拒绝(端口未开放或服务未启动)”“查询超时”);在线时为 nullversion(object|null):服务器版本;离线时为 nullversion.name(string):版本名(已去掉 § 格式代码),如“1.21.4”或代理服务器自定义的名称version.protocol(number|null):协议号,如 769;服务器没给时为 nullplayers(object|null):玩家信息;离线时为 nullplayers.online(number):在线人数players.max(number):人数上限players.sample(array):服务器提供的在线玩家样例(最多 20 个);很多服务器不提供或用它显示自定义文字players.sample[].name(string):玩家名(已去掉 § 格式代码)players.sample[].id(string|null):玩家 UUID;没给时为 nullmotd(object|null):服务器描述(MOTD);离线时为 nullmotd.text(string):纯文本:JSON 聊天组件已展开拼接,§ 颜色 / 格式代码已去掉,每行首尾空白已去掉,多行用 \n 分隔motd.raw(string):原始内容:服务器返回字符串时原样保留(含 § 代码);返回 JSON 聊天组件时为该组件的 JSON 字符串favicon(string|null):服务器图标(64×64 PNG 的 data URI,可直接用作 img 的 src);没有图标时为 nulllatency(number|null):Ping/Pong 往返延迟(毫秒,本服务器到目标服务器);服务器不响应 Ping 或离线时为 null