{"openapi":"3.1.0","info":{"title":"ReKombat Developer API","version":"1.1.0","description":"Публичные данные игрового сервера Mortal Kombat 7.2.1. Метаданные берутся из канонического игрового набора, операции игроков — из действующей MariaDB. Административные записи доступны только в защищённой панели."},"servers":[{"url":"https://api.rekombat.com/developer/v1"}],"tags":[{"name":"Состояние","description":"Версия и фактический онлайн"},{"name":"Мир игры","description":"Режимы, башни, Крипта, события, расписания и магазин"},{"name":"Игроки","description":"Безопасное публичное представление профиля"},{"name":"Рейтинги","description":"Фактические очки текущего сезона"},{"name":"Каталог","description":"Опубликованные исходные игровые определения"}],"components":{"securitySchemes":{"DeveloperApiKey":{"type":"apiKey","in":"header","name":"X-ReKombat-API-Key","description":"Ключ проекта с нужным scope. Создаётся в admin.rekombat.com/developers/."}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"}}},"OnlinePoint":{"type":"object","properties":{"sampledAt":{"type":"integer"},"players":{"type":"integer"},"connections":{"type":"integer"}}}}},"security":[{"DeveloperApiKey":[]}],"paths":{"/health":{"get":{"tags":["Состояние"],"summary":"Проверка доступности","description":"","responses":{"200":{"description":"Данные получены","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[]}},"/versions":{"get":{"tags":["Состояние"],"summary":"Версия API и игры","description":"","responses":{"200":{"description":"Данные получены","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Нет ключа или нужного scope","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Превышен лимит запросов","content":{"application/json":{"schema":{"type":"object"}}}}},"x-required-scope":"status:read"}},"/online":{"get":{"tags":["Состояние"],"summary":"Онлайн с минутным графиком","description":"Уникальные игроки с действующим авторизованным MKXLink-соединением. Клиенты без MKXLink не учитываются.","responses":{"200":{"description":"Данные получены","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Нет ключа или нужного scope","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Превышен лимит запросов","content":{"application/json":{"schema":{"type":"object"}}}}},"parameters":[{"name":"hours","in":"query","required":false,"description":"Часы истории: 1–168","schema":{"type":"integer"}}],"x-required-scope":"status:read"}},"/catalog":{"get":{"tags":["Каталог"],"summary":"Список опубликованных игровых ресурсов","description":"","responses":{"200":{"description":"Данные получены","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Нет ключа или нужного scope","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Превышен лимит запросов","content":{"application/json":{"schema":{"type":"object"}}}}},"parameters":[{"name":"q","in":"query","required":false,"description":"","schema":{"type":"string"}},{"name":"take","in":"query","required":false,"description":"","schema":{"type":"integer"}},{"name":"skip","in":"query","required":false,"description":"","schema":{"type":"integer"}}],"x-required-scope":"catalog:read"}},"/catalog/data/{path}":{"get":{"tags":["Каталог"],"summary":"JSON игрового ресурса","description":"","responses":{"200":{"description":"Данные получены","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Нет ключа или нужного scope","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Превышен лимит запросов","content":{"application/json":{"schema":{"type":"object"}}}}},"parameters":[{"name":"path","in":"path","required":true,"description":"","schema":{"type":"string"}}],"x-required-scope":"catalog:read"}},"/game-modes":{"get":{"tags":["Мир игры"],"summary":"Доступные определения игровых режимов","description":"","responses":{"200":{"description":"Данные получены","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Нет ключа или нужного scope","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Превышен лимит запросов","content":{"application/json":{"schema":{"type":"object"}}}}},"x-required-scope":"world:read"}},"/game-modes/{mode}":{"get":{"tags":["Мир игры"],"summary":"Определение режима: towers, krypt, store, quests, trials, battle, rewards или kombat-pass","description":"","responses":{"200":{"description":"Данные получены","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Нет ключа или нужного scope","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Превышен лимит запросов","content":{"application/json":{"schema":{"type":"object"}}}}},"parameters":[{"name":"mode","in":"path","required":true,"description":"","schema":{"type":"string"}}],"x-required-scope":"world:read"}},"/schedules":{"get":{"tags":["Мир игры"],"summary":"Подтверждённое расписание сбросов","description":"Сейчас включает 14-дневный цикл Realm Wars, вычисляемый по логике сервера.","responses":{"200":{"description":"Данные получены","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Нет ключа или нужного scope","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Превышен лимит запросов","content":{"application/json":{"schema":{"type":"object"}}}}},"x-required-scope":"world:read"}},"/events":{"get":{"tags":["Мир игры"],"summary":"Актуальные испытания и глобальные сообщения","description":"Возвращает активные записи из MariaDB и расписание.","responses":{"200":{"description":"Данные получены","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Нет ключа или нужного scope","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Превышен лимит запросов","content":{"application/json":{"schema":{"type":"object"}}}}},"x-required-scope":"world:read"}},"/store":{"get":{"tags":["Мир игры"],"summary":"Активные товары магазина","description":"","responses":{"200":{"description":"Данные получены","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Нет ключа или нужного scope","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Превышен лимит запросов","content":{"application/json":{"schema":{"type":"object"}}}}},"parameters":[{"name":"take","in":"query","required":false,"description":"","schema":{"type":"integer"}},{"name":"skip","in":"query","required":false,"description":"","schema":{"type":"integer"}}],"x-required-scope":"world:read"}},"/players":{"get":{"tags":["Игроки"],"summary":"Поиск публичных профилей","description":"Поиск требует не менее двух символов. Токены, инвентарь и приватная часть профиля не выдаются.","responses":{"200":{"description":"Данные получены","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Нет ключа или нужного scope","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Превышен лимит запросов","content":{"application/json":{"schema":{"type":"object"}}}}},"parameters":[{"name":"q","in":"query","required":false,"description":"","schema":{"type":"string"}},{"name":"take","in":"query","required":false,"description":"","schema":{"type":"integer"}}],"x-required-scope":"players:read"}},"/players/{publicId}":{"get":{"tags":["Игроки"],"summary":"Публичный профиль игрока","description":"","responses":{"200":{"description":"Данные получены","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Нет ключа или нужного scope","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Превышен лимит запросов","content":{"application/json":{"schema":{"type":"object"}}}}},"parameters":[{"name":"publicId","in":"path","required":true,"description":"","schema":{"type":"string"}}],"x-required-scope":"players:read"}},"/leaderboard":{"get":{"tags":["Рейтинги"],"summary":"Рейтинг Realm Wars текущего цикла","description":"Сортировка по реальным очкам в profiles.server_data; пустой массив означает отсутствие заработанных очков.","responses":{"200":{"description":"Данные получены","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Нет ключа или нужного scope","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Превышен лимит запросов","content":{"application/json":{"schema":{"type":"object"}}}}},"parameters":[{"name":"take","in":"query","required":false,"description":"","schema":{"type":"integer"}}],"x-required-scope":"rankings:read"}},"/docs":{"get":{"tags":["Состояние"],"summary":"Интерактивная документация OpenAPI 3.1","description":"","responses":{"200":{"description":"Данные получены","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[]}},"/openapi.json":{"get":{"tags":["Состояние"],"summary":"Машиночитаемая схема OpenAPI 3.1","description":"","responses":{"200":{"description":"Данные получены","content":{"application/json":{"schema":{"type":"object"}}}}},"security":[]}},"/online/data":{"get":{"tags":["Состояние"],"summary":"Публичные данные графика онлайна","description":"","responses":{"200":{"description":"Данные получены","content":{"application/json":{"schema":{"type":"object"}}}}},"parameters":[{"name":"hours","in":"query","required":false,"description":"","schema":{"type":"integer"}}],"security":[],"servers":[{"url":"https://api.rekombat.com"}]}}}}