En una red de Minecraft, el lobby puede seguir disponible mientras un modo de juego no responde. Envía las direcciones públicas juntas mediante POST /api/v1/status/bulk. La API mantiene el orden de entrada y devuelve un status_code por destino.
Combina destinos Java y Bedrock
Guarda el ejemplo como status.mjs y ejecuta node status.mjs con Node.js 22. El nombre reservado example.invalid sirve para ver cómo aparece un destino inaccesible junto a los demás resultados.
const servers = [
{ address: 'mc.hypixel.net' },
{ address: 'geo.hivebedrock.network', bedrock: true },
{ address: 'example.invalid' },
];
const response = await fetch('https://mcapi.tr/api/v1/status/bulk', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ servers }),
signal: AbortSignal.timeout(15000),
});
if (response.status === 429) {
throw new Error('Rate limited. Retry-After: ' + (response.headers.get('Retry-After') ?? 'unknown'));
}
if (!response.ok) throw new Error('HTTP ' + response.status);
const { data } = await response.json();
console.table(data.map(({ address, status_code, data: server }) => ({
address,
status: status_code === 200 && server.online
? (server.stale ? 'stale' : 'online')
: (status_code === 404 ? 'unreachable' : 'error'),
players: server.players?.online ?? null,
})));
Interpreta cada resultado por separado
- La petición puede devolver HTTP
200aunque una dirección tengastatus_code: 404. Actualiza cada fila con su propio resultado. - Indica que el dato es el último conocido si
staleestrue. Si falta el recuento de jugadores, el valor es desconocido. - Puedes enviar hasta 50 destinos en una petición y hacer seis peticiones masivas por minuto por IP. Cuando muchos visitantes consulten la misma lista, haz la consulta desde tu backend y reutiliza el resultado durante un intervalo breve. Si recibes
429, respetaRetry-Aftercuando esté presente.
Si usas Velocity o BungeeCord, consulta las direcciones públicas del proxy. Para obtener los recuentos de cada modo de juego en servidores Paper privados, recoge esos datos dentro de tu propia red.