Free & Open API

GameServe.rsAPI Documentation

Access real-time game server data for Plutonium, IW4x, CoD4x, AlterWare, and more. Perfect for Discord bots, dashboards, and community tools.

Base URL

https://gameserve.rs/api/v1

18+

Endpoints

9

Platforms

17

Games

30s

Cache TTL

Quick Start

Get all active Black Ops 2 Zombies servers with a simple request:

bash
curl "https://gameserve.rs/api/v1/servers?game=T6ZM&min_players=1"

Or search for a specific server community:

bash
curl "https://gameserve.rs/api/v1/servers?search=HGM"

API Endpoints

Additional Endpoints

GET
/api/v1/games

List all supported games

GET
/api/v1/platforms

List all platforms with details

GET
/api/v1/maps

Get top maps per game

GET
/api/v1/modes

Get popular game modes

GET
/api/v1/countries

Server stats by country

GET
/api/v1/stats/history

Historical player counts

GET
/api/v1/stats/peaks

Peak player records

GET
/api/v1/milestones

Recent achievements

Game Tags

Zombies Games

T4ZMWorld at War Zombies
T5ZMBlack Ops Zombies
T6ZMBlack Ops 2 Zombies

Multiplayer Games

IW3Call of Duty 4
IW4Modern Warfare 2
IW5Modern Warfare 3
IW6Ghosts
T4World at War
T5Black Ops
T6Black Ops 2
T7Black Ops 3
H2MMW2 Remastered MP

Code Examples

JavaScript / TypeScript
javascript
1// Fetch all [HGM] and NamelessNoobs zombies servers
2async function getZombiesServers() {
3 const response = await fetch(
4 'https://gameserve.rs/api/v1/servers?zombies=true&min_players=1'
5 );
6 const { data } = await response.json();
7
8 // Filter for specific communities
9 const hgmServers = data.servers.filter(s =>
10 s.name.includes('[HGM]')
11 );
12
13 const nnServers = data.servers.filter(s =>
14 s.name.toLowerCase().includes('namelessnoobs')
15 );
16
17 console.log('=== [HGM] Servers ===');
18 hgmServers.forEach(server => {
19 console.log(`${server.name}`);
20 console.log(` Map: ${server.map.display} | Round: ${server.zombiesRound}`);
21 console.log(` Players: ${server.players.current}/${server.players.max}`);
22 });
23
24 console.log('\n=== NamelessNoobs Servers ===');
25 nnServers.forEach(server => {
26 console.log(`${server.name}`);
27 console.log(` Map: ${server.map.display}`);
28 console.log(` Players: ${server.players.current}/${server.players.max}`);
29 });
30}
31
32getZombiesServers();
Python
python
1import requests
2
3def get_trending_servers():
4 """Get the hottest servers right now"""
5 response = requests.get('https://gameserve.rs/api/v1/trending', params={
6 'limit': 5
7 })
8
9 data = response.json()
10
11 print("Trending Servers
12")
13 for server in data['data']['servers']:
14 fill_rate = server['fillRate']
15 status = "[FULL]" if fill_rate > 80 else "[BUSY]" if fill_rate > 50 else "[OPEN]"
16
17 print(f"{status} {server['name']}")
18 print(f" Map: {server['map']['display']}")
19 print(f" Players: {server['players']['current']}/{server['players']['max']} ({fill_rate:.1f}% full)")
20
21 if server.get('zombiesRound'):
22 print(f" Round: {server['zombiesRound']}")
23 print()
24
25get_trending_servers()
Discord.js Bot
javascript
1const { SlashCommandBuilder, EmbedBuilder } = require('discord.js');
2
3module.exports = {
4 data: new SlashCommandBuilder()
5 .setName('zombies')
6 .setDescription('Show active zombies servers'),
7
8 async execute(interaction) {
9 await interaction.deferReply();
10
11 const res = await fetch(
12 'https://gameserve.rs/api/v1/servers?zombies=true&min_players=1&limit=5'
13 );
14 const { data } = await res.json();
15
16 const embed = new EmbedBuilder()
17 .setTitle('Active Zombies Servers')
18 .setColor(0xd946ef)
19 .setTimestamp();
20
21 for (const server of data.servers) {
22 const round = server.zombiesRound ? `Round ${server.zombiesRound}` : '';
23 embed.addFields({
24 name: server.name,
25 value: [
26 `🗺️ ${server.map.display}`,
27 `👥 ${server.players.current}/${server.players.max} players`,
28 round,
29 `\`connect ${server.address}\``
30 ].filter(Boolean).join('\n'),
31 inline: true
32 });
33 }
34
35 embed.setFooter({ text: 'Data from GameServe.rs API' });
36
37 return interaction.editReply({ embeds: [embed] });
38 }
39};

Rate Limits

  • • 100 requests per minute per IP
  • • Responses cached for 30 seconds
  • • Use Cache-Control header for TTL

CORS

Full CORS support from any origin. All endpoints returnAccess-Control-Allow-Origin: *

Real-time Data

Server data is refreshed every 30 seconds from all platforms for accurate, up-to-date information.