Skip to content

Bedrock server status

GET
/bedrock
const url = 'https://api.mcquery.net/bedrock?target=hivebedrock.network&port=19132';
const options = {method: 'GET'};
try {
const response = await fetch(url, options);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}

Resolves the server (CNAME/A/AAAA) and pings it over UDP. The resolved address must be public.

target
required
string

Minecraft Bedrock server hostname or IP.

Example
hivebedrock.network
port
required
integer
>= 1 <= 65535

UDP port (1-65535), default 19132.

Example
19132

Server status

Media typeapplication/json
object
ok
required
boolean
query
required
string
cached
required

Whether this result was served from cache

boolean
connection
required

How the Bedrock server was reached (host and UDP port). Empty object when the ping failed.

object
host
string
port
integer
dns
required

The server’s DNS resolution chain (CNAMEs, then A/AAAA). Empty for IP targets.

Array<object>

Server’s DNS resolution chain

object
hostname
required
string
type
required

Record type (SRV, CNAME, A, AAAA).

string
data
required
string
edition
string
version
object
name
string
protocol
integer
players
object
online
integer
max
integer
motd

The two MOTD lines a Bedrock server advertises.

object
line1
string
line2
string
gamemode
string
nullable
serverId

The server’s advertised unique id.

string
nullable
serverGuid

The server’s RakNet GUID as an unsigned 64-bit decimal string.

string
nullable
Example
{
"ok": true,
"query": "hivebedrock.network",
"connection": {
"host": "hivebedrock.network",
"port": 19132
},
"dns": [
{
"hostname": "hivebedrock.network",
"type": "A",
"data": "5.135.237.238"
},
{
"hostname": "hivebedrock.network",
"type": "A",
"data": "51.178.216.177"
},
{
"hostname": "hivebedrock.network",
"type": "A",
"data": "5.196.205.184"
},
{
"hostname": "hivebedrock.network",
"type": "A",
"data": "46.105.88.67"
},
{
"hostname": "hivebedrock.network",
"type": "A",
"data": "5.135.18.248"
}
],
"edition": "MCPE",
"version": {
"name": "1.0",
"protocol": 121
},
"players": {
"online": 17857,
"max": 100001
},
"motd": {
"line1": "BEDWARS | MURDER MYSTERY",
"line2": "Hive Games"
},
"gamemode": "Survival",
"serverId": "2638805516392942856",
"serverGuid": "1782174733625824"
}
RateLimit
string

IETF-draft combined rate-limit header for the current window: limit, remaining, and reset (seconds until the window resets). Sent on every response from a known endpoint.

Example
limit=120, remaining=119, reset=42
RateLimit-Limit
integer

Maximum requests allowed per client IP per window (120 requests per 60s).

Example
120
RateLimit-Remaining
integer

Requests remaining in the current window before the limit is hit.

Example
119
RateLimit-Reset
integer

Seconds until the current window resets.

Example
42

Missing or invalid parameter

Media typeapplication/json

Error response.

object
ok
required
boolean
msg
required
string
Example
{
"ok": false,
"msg": "query param target is required"
}
RateLimit
string

IETF-draft combined rate-limit header for the current window: limit, remaining, and reset (seconds until the window resets). Sent on every response from a known endpoint.

Example
limit=120, remaining=119, reset=42
RateLimit-Limit
integer

Maximum requests allowed per client IP per window (120 requests per 60s).

Example
120
RateLimit-Remaining
integer

Requests remaining in the current window before the limit is hit.

Example
119
RateLimit-Reset
integer

Seconds until the current window resets.

Example
42

Target resolves to a private/reserved address

Media typeapplication/json

Error response.

object
ok
required
boolean
msg
required
string
Example
{
"ok": false,
"msg": "target doesn't resolve to a public addr"
}
RateLimit
string

IETF-draft combined rate-limit header for the current window: limit, remaining, and reset (seconds until the window resets). Sent on every response from a known endpoint.

Example
limit=120, remaining=119, reset=42
RateLimit-Limit
integer

Maximum requests allowed per client IP per window (120 requests per 60s).

Example
120
RateLimit-Remaining
integer

Requests remaining in the current window before the limit is hit.

Example
119
RateLimit-Reset
integer

Seconds until the current window resets.

Example
42

Rate limit exceeded: more than 120 requests were made from one client IP within a 60-second window.

Media typeapplication/json

Error response.

object
ok
required
boolean
msg
required
string
Example
{
"ok": false,
"msg": "you're being rate limited, try again later."
}
RateLimit
string

IETF-draft combined rate-limit header for the current window: limit, remaining, and reset (seconds until the window resets). Sent on every response from a known endpoint.

Example
limit=120, remaining=119, reset=42
RateLimit-Limit
integer

Maximum requests allowed per client IP per window (120 requests per 60s).

Example
120
RateLimit-Remaining
integer

Requests remaining in the current window before the limit is hit.

Example
119
RateLimit-Reset
integer

Seconds until the current window resets.

Example
42
Retry-After
integer

Seconds to wait before retrying. Sent only on a 429 response.

Example
42

Could not connect to the server

Media typeapplication/json
object
ok
required
boolean
msg
required
string
cached
boolean
dns
Array<object>

Server’s DNS resolution chain

object
hostname
required
string
type
required

Record type (SRV, CNAME, A, AAAA).

string
data
required
string
Example
{
"ok": false,
"cached": false,
"msg": "can't connect to the server"
}