Overview
The IsHyUp API allows you to check the status of any Hytale server programmatically. It's free to use and perfect for building status bots, monitoring tools, or integrating server status into your website.
Base URL
https://ishyup.com/api/v1
Rate Limits & Caching
To ensure fair usage and prevent abuse, the API has the following limits:
Rate Limit
30 requests
per minute per IP address
Cache Duration
30 seconds
results are cached per server
Rate limit headers are included in all responses: X-RateLimit-Limit,
X-RateLimit-Remaining, and X-RateLimit-Reset
Endpoints
Check the status of a Hytale server.
Parameters
| Name | Type | Description |
|---|---|---|
| address | string | Server address (domain or IP). Port optional, defaults to 40900. |
Example Request
GET https://ishyup.com/api/v1/status/play.example.com
Example Response (Online Hytale Server)
{
"success": true,
"status": "online",
"online": true,
"isHytaleServer": true,
"address": "play.example.com:40900",
"resolvedIP": "192.168.1.100",
"port": 40900,
"latency": 45,
"protocol": {
"verified": true,
"version": "1.0.0",
"latency": 42
},
"ping": {
"reachable": true,
"latency": 38
},
"timestamp": "2026-01-16T12:00:00.000Z"
}
Status Values
"online"
Verified Hytale server
"not_hytale"
Port open, not Hytale
"offline"
Server unreachable
Get API information and available endpoints.
Example Response
{
"name": "IsHyUp Public API",
"version": "1.0.0",
"description": "Check Hytale server status programmatically",
"endpoints": { ... },
"rateLimit": {
"requests": 30,
"window": "1 minute"
}
}
Check if the API is running and healthy.
Example Response
{
"status": "ok",
"timestamp": "2026-01-16T12:00:00.000Z"
}
Code Examples
JavaScript / Node.js
// Using fetch (browser or Node.js 18+)
const response = await fetch('https://ishyup.com/api/v1/status/play.example.com');
const data = await response.json();
if (data.success && data.status === 'online') {
console.log(`Server is online! Latency: ${data.latency}ms`);
} else {
console.log('Server is offline');
}
Python
import requests
response = requests.get('https://ishyup.com/api/v1/status/play.example.com')
data = response.json()
if data['success'] and data['status'] == 'online':
print(f"Server is online! Latency: {data['latency']}ms")
else:
print('Server is offline')
cURL
curl -X GET "https://ishyup.com/api/v1/status/play.example.com"
Discord.js Bot Example
const { SlashCommandBuilder } = require('discord.js');
module.exports = {
data: new SlashCommandBuilder()
.setName('serverstatus')
.setDescription('Check Hytale server status')
.addStringOption(option =>
option.setName('address').setDescription('Server address').setRequired(true)
),
async execute(interaction) {
const address = interaction.options.getString('address');
const response = await fetch(`https://ishyup.com/api/v1/status/${address}`);
const data = await response.json();
const statusEmoji = data.status === 'online' ? '🟢' : '🔴';
await interaction.reply(`${statusEmoji} **${address}**: ${data.status}`);
}
};
Error Responses
Rate Limit Exceeded (429)
{
"error": "Too many requests",
"message": "Rate limit exceeded. Please wait before making more requests.",
"retryAfter": 60
}
Invalid Address (400)
{
"success": false,
"error": "Address is required",
"usage": "GET /api/v1/status/{server_address}"
}
Server Error (500)
{
"success": false,
"error": "Internal server error",
"message": "Error details here"
}
Terms of Use
- The API is free to use for personal and commercial projects
- Please respect the rate limits to ensure fair access for everyone
- Do not attempt to bypass rate limits or abuse the service
- We reserve the right to block IPs that violate these terms
- The API is provided as-is with no guarantees of uptime
- Attribution is appreciated but not required