Getting Started with the ServerPulse API
Real-time monitoring for Minecraft, CS2 & Rust. Set up your API key and make your first request in under two minutes.
What You'll Build
By the end of this guide, you'll have a live API key and a working query that returns real-time status data for any public game server. The API supports Minecraft Java & Bedrock, Counter-Strike 2, Rust, and 12 additional game protocols.
Server Lookup
Query servers by IP, query port, or ServerPulse ID. Returns player count, MOTD, version, map, and latency in milliseconds.
Player Tracking
Resolve SteamID64 or Minecraft UUID to current server session. Includes playtime, last seen, and profile snapshot.
History & Uptime
Pull 30-day uptime graphs, player count trends, and version change logs for any monitored server.
Step 1 — Generate Your API Key
Every request to the ServerPulse API requires a valid API key passed in the Authorization header. Keys are free for the Starter tier and persist until you revoke them.
1. Create an Account
Go to app.serverpulse.io/signup and register with your email or GitHub. You'll receive a confirmation link within 30 seconds. No payment method required for the Starter plan.
2. Open the Developer Dashboard
After logging in, navigate to app.serverpulse.io/dashboard/api-keys. You'll see a table of existing keys. New accounts start with zero keys.
3. Create a New Key
Click "Generate Key", give it a descriptive name like "production-monitoring", and select the Read scope. Copy the key immediately — it's shown only once. Keys follow the format sp_live_xxxxxxxxxxxxxxxxxxxxxxxx.
sp_live_7kR2mP9vL4nQ8xWtY6bH3jF5dA1cG0eU
Security note: Never embed your API key in client-side JavaScript or public repositories. Use environment variables on your server. If a key is compromised, revoke it instantly from the dashboard — all active sessions using that key will be terminated within 5 seconds.
Step 2 — Make Your First Request
Let's query a live Minecraft server to verify your key works. We'll use the public server mc.hypixel.net as an example.
Endpoint
GET https://api.serverpulse.io/v1/servers/query
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
host |
string | Yes | Server IP or hostname (e.g., mc.hypixel.net) |
port |
integer | No | Query port. Defaults to protocol-specific standard (25565 for Minecraft Java) |
game |
string | No | Game protocol: minecraft-java, minecraft-bedrock, cs2, rust |
cURL Example
curl -X GET "https://api.serverpulse.io/v1/servers/query?host=mc.hypixel.net" \ -H "Authorization: Bearer sp_live_7kR2mP9vL4nQ8xWtY6bH3jF5dA1cG0eU" \ -H "Accept: application/json"
Response
{
"status": "online",
"server": {
"id": "sp_srv_48291mc",
"host": "mc.hypixel.net",
"port": 25565,
"game": "minecraft-java",
"version": "1.8.9-1.21.4",
"motd": "§aHypixel Network §c[1.8-1.21]\n§7§m §7§l▌ §6§lSUMMER SALE §7§l▌ §7§m ",
"players": {
"online": 42817,
"max": 200000,
"sample": [
{ "name": "TechnoVeil", "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890" },
{ "name": "PixelDrifter", "uuid": "f9e8d7c6-b5a4-3210-fedc-ba0987654321" },
{ "name": "NovaStrike92", "uuid": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d" }
]
},
"latency_ms": 12,
"map": "Lobby",
"last_seen": "2025-01-15T14:32:08Z"
},
"rate_limit": {
"remaining": 997,
"reset_at": "2025-01-15T15:00:00Z"
}
}
Rate limits: Starter tier — 1,000 requests per hour. Pro tier — 50,000 requests per hour with caching. Enterprise — custom limits starting at 500,000 per hour. Exceeding your limit returns HTTP 429 with a Retry-After header.
Next Steps
Explore Endpoints
Browse the full reference for player lookup, server history, batch queries, and WebSocket real-time streams.
View API Reference →Install a Client Library
Official SDKs available for Python (pip install serverpulse), Node.js (npm i @serverpulse/sdk), and Go (go get github.com/serverpulse/go).
Join the Community
Get help on our Discord (14,200+ members) or post questions on the developer forum. Response time is typically under 2 hours.
Join Discord →