API MonWave
RESTful-сервис для доступа к данным мониторинга игровых серверов в формате JSON
Без регистрации
CORS включён
JSON / REST
Кеш 60 сек
Base URL
https://monwave.ru/api
Эндпоинты
| Метод | Путь | Описание |
|---|---|---|
| GET | /api?endpoint=games | Список всех игр с количеством серверов |
| GET | /api?endpoint=servers | Серверы по игре (пагинация, фильтр) |
| GET | /api?endpoint=servers/{id} | Подробные данные одного сервера |
| GET | /api?endpoint=stats | Общая статистика или по игре |
| GET | /api?endpoint=widget/{id} | SVG/HTML виджет для встраивания |
Примеры интеграции
JavaScript (fetch)
async function getServers(game, page = 1) {
const url = `https://monwave.ru/api?endpoint=servers&game=${game}&page=${page}&limit=25`;
const res = await fetch(url);
const json = await res.json();
return json;
}
const result = await getServers('cs2');
console.log(`Найдено ${result.meta.total} серверов`);
result.data.forEach(s =>
console.log(`${s.name} — ${s.players}/${s.max_players}`)
);
Python (requests)
import requests
def get_servers(game, page=1, limit=25):
r = requests.get('https://monwave.ru/api', params={
'endpoint': 'servers',
'game': game,
'page': page,
'limit': limit
})
return r.json()
result = get_servers('cs2')
print(f"Найдено {result['meta']['total']} серверов")
for s in result['data']:
print(f"{s['name']} — {s['players']}/{s['max_players']}")
PHP (file_get_contents)
$game = 'cs2';
$url = "https://monwave.ru/api?endpoint=servers&game={$game}&limit=25";
$json = file_get_contents($url);
$data = json_decode($json, true);
echo "Найдено {$data['meta']['total']} серверов\n";
foreach ($data['data'] as $s) {
echo "{$s['name']} — {$s['players']}/{$s['max_players']}\n";
}
Ограничения и ошибки
Rate Limits
- 60 запросов в минуту с одного IP
- Ответы кешируются на 60 секунд
- Используйте пагинацию (
page,limit)
Коды ошибок
200 | Успешный ответ |
400 | Отсутствует обязательный параметр |
404 | Не найдено (эндпоинт, игра, сервер) |
405 | Метод не разрешён (только GET) |