Описание API статистики

  • 11.12.2017

С помощью нашего API вы сможете получить данные о сервере или игроке в формате JSON для своих плагинов, приложений или сайта.

Запрос GET, POST

https://minecraft-statistic.net/api/server/add/?ip=SERVER_IP&port=SERVER_PORT
SERVER_IP - ip адрес сервера
SERVER_PORT - порт сервера

Пример:
https://minecraft-statistic.net/api/server/add/?ip=127.0.0.1&port=12365

Ответ JSON

[false,"IP address is entered not correctly or is local network"]
[0] - true - сервер добавлен, false - ошибка при добавлении
[1] - ID сервера или описание ошибки

Запрос GET

https://minecraft-statistic.net/api/server/info/ID
Последний параметр может быть одним из трех типов:
ID - уникальный индетификатор сервера
IP_PORT - ip адрес и порт сервера через нижний пробел
URI - уникальный адрес сервера

Пример запроса к одному серверу с разными параметрами:
https://minecraft-statistic.net/api/server/info/91.200.47.122_25565
https://minecraft-statistic.net/api/server/info/51
https://minecraft-statistic.net/api/server/info/supersky

Ответ JSON

{
    /*(int) id сервера в мониторинге*/
    "_id": 51,
    /*(string) уникальный адрес сервера в мониторинге (если есть, администратор сервера может менять ip адрес сервера и порт)*/
    "uri": "supersky",
    /*(object) график игроков онлайн за 24 часа, с интервалом 10 минут*/
    "chart": {
        /*(string) время в формате HH:ii и количество игроков онлайн (int)*/
        "00:00": 13,
        /* . . . */
        "23:50": 13
    },
    /*(object) счетчики сервера*/
    "counter": {
        /*(int) количество комментариев (отзывов)*/
        "cmts": 4,
        /*(int) лайки, количество человек,которые добавили сервер в избранное*/
        "favorite": 4,
        /*(int) счетчик оффлайна, сколько раз сервер был оффлайн с момента добавления*/
        "offline": 16077,
        /*(int) счетчик онлайна, сколько раз сервер был онлайн с момента добавления*/
        "online": 74564,
        /*(object) общее количество игроков которые играли на сервере с момента добавления*/
        "players": {
            /*(string) дата в формате YYYY-mm-dd , когда делался подсчет игроков (счетчик считается раз в сутки и всегда отображает данные на вчерашний день)*/
            "date": "2015-06-23",
            /*(int) количество игроков, которые играли на сервере*/
            "total": 27482
        },
        /*(int) количество добавленных скриншотов*/
        "screenshot": 6
    },
    /*(int) дата добавления сервера в мониторинг, в формате Unix Timestamp*/
    "date_add": 1379283352,
    /*(string) домен сервера, при добавлении конвертируется в IP адрес*/
    "domain": "mc.supersky.org.ua",
    /*(string) ссылка на загрузку лаунчера, отображается на странице сервера*/
    "download_url": "",
    /*(object) геоданные сервера*/
    "geo": {
        /*(string) город сервера*/
        "city": "Sevastopol",
        /*(string) страна сервера в формате ISO 3166 A2*/
        "country": "UA",
        /*(string) страна сервера*/
        "country_name": "\u0423\u043a\u0440\u0430\u0438\u043d\u0430"
    },
    /*(object) основная информация о сервере*/
    "info": {
        /*(string) название сервера, обновляется при опросе ( в настройках сервера это переменная motd )*/
        "name": "SuperSky Survival 1.7.x-1.8.x",
        /*(string) тип игры*/
        "type": "SMP",
        /*(string) платформа сервера, возможные значения "MINECRAFT" или "MINECRAFTPE"*/
        "platform": "MINECRAFT",
        /*(string) версия сервера*/
        "version": "1.8",
        /*(array) список плагинов, которые установлены на сервере*/
        "plugins": ["WorldEdit 6.0.2-SNAPSHOT,3347-fe6717a0", " HealthBar 1.8.2", " PvPTime 0.1.22", " Essentials TeamCity", " LogBlock 1.81", " ClearLag 2.7.7", " AutoMessage 2.5.2", " FullBright 1.1", " MonsterFix 0.4.3", " ProtocolLib 3.6.3-SNAPSHOT", " WorldGuard 6.0.0-SNAPSHOT.1550-", " NoCheatPlus 3.12.1-SNAPSHOT-sMD5NET-b823", " SkinsRestorer 9.3", " HeadDrops 2.0", " PermissionsEx 1.23.3", " RandomPort 2.0", " ColoredTablist 1.1.0", " Vault 1.5.0-b28", " HideStream 3.7", " ProtocolSupport 4.13", " EssentialsSpawn TeamCity", " SalvageSmelter 0.1.8", " CustomEnchantments 2.2a", " Autorank 3.5.1-Dev-382", " AuthMe 3.4", " ScoreboardStats 0.9.1", " GlobalMarket 1.2.2", " ChatEx 1.2", " ChatGuard 6.3"],
        /*(int) количество игроков онлайн*/
        "players": 16,
        /*(int) максимальное количество игроков (слоты)*/
        "max_players": 30,
        /*(array) список игроков онлайн*/
        "players_list": ["Shamandra", "vlad_3881", "ATmega8", "Koshmarik", "Gohjay", "vipit", "msx9086", "Creeper1903", "__Pig131__", "baklajan", "marines", "uaruk", "dasides", "thelinx", "KORVELION", "saf_alex_100"],
        /*(string) название карты сервера*/
        "map": "world",
        /*(string) программное обеспечение сервера*/
        "software": "CraftBukkit on Bukkit 1.8-R0.1-SNAPSHOT",
        /*(float) среднее количество игроков за 24 часа*/
        "avg_player_day": 14.83,
        /*(float) средняя загрузка сервера за 24 часа*/
        "avg_load_day": 49.42
    },
    /*(string) ip адрес сервера (v4)*/
    "ip": "91.200.47.122",
    /*(object) дата последнего онлайна/оффлайна*/
    "last": {
        /*(int) дата последнего оффлайна в формате Unix Timestamp*/
        "offline": 1434915770,
        /*(int) дата последнего онлайна в формате Unix Timestamp*/
        "online": 1435056332
    },
    /*(int) дата обновления данных в формате Unix Timestamp*/
    "last_update": 1435056332,
    /*(string) ссылка на карту сервера (url на страницу с отрендериной картой), отображается в ссылках сервера*/
    "map_url": "",
    /*(object) рекорды сервера*/
    "max_stat": {
        /*(object) максимальный онлайн*/
        "max_online": {
            /*(int) дата максимального онлайна в формате Unix Timestamp , если рекорд повторяется (совпадает значение) или поставлен новый рекорд, то дата обновляется*/
            "date": 1434882170,
            /*(int) количество игроков онлайн*/
            "players": 30
        }
    },
    /*(int) порт сервера*/
    "port": 25565,
    /*(object) данные рейтинга*/
    "rating": {
        /*(float) Коэффициент контента, сколько процентов от подсчитаного рейтинга получит сервер дополнительно, за то что добавил описание, скриншоты и т.п.*/
        "K": 12.23,
        /*(float) бонус за контент (смотрите формулу подсчета рейтинга)*/
        "content_up": 0.77,
        /*(float) разница рейтинга с предыдущим значением (на сколько изменился рейтинг за 10 минут)*/
        "difference": 0.73,
        /*(float) текущий рейтинг сервера*/
        "main": 7.73
    },
    /*(int) статус опроса 1 - мониторинг включен, 0 - мониторинг отключен (сервер отключается от мониторинга автоматически, если его аптайм ниже 5%)*/
    "scan": 1,
    /*(int) статус сервера 1 - онлайн, 0 - оффлайн*/
    "status": 1,
    /*(string) аптайм сервера в процентах (соотношение количества оффлайна к количеству опросов)*/
    "uptime": "82.26",
    /*(string) or (array) список ссылок сервера, добавляется администратором из панели управления и отображается на странице сервера*/
    "url": [],
    /*(string) ответ API "ok" - сервер существует и все хорошо*/
    "status_query": "ok"
}

Запрос GET

https://minecraft-statistic.net/api/server/top/SERVER_ID/PERIOD/PAGE
SERVER_ID - ID сервера
PERIOD - период за который хотите получить рейтинг игроков, доступно три варианта:
	all - рейтинг игроков за все время
	today - рейтинг игроков за сегодня
	yesterday - рейтинг игроков за вчера
PAGE - страница рейтинга

Пример:
https://minecraft-statistic.net/api/server/top/51/all/1 - топ игроков за все время на сервере с ID=51
https://minecraft-statistic.net/api/server/top/51/today/1 - топ игроков за сегодня на сервере с ID=51
https://minecraft-statistic.net/api/server/top/51/yesterday/1 - топ игроков за вчера на сервере с ID=51

Ответ JSON

https://minecraft-statistic.net/api/server/top/51/all/1
{
            /*(string) статус ответа ok или error*/
            "status_query": "ok",
            /*(int) id сервера*/
            "server_id": 51,
            /*(int) номер страницы*/
            "page": 1,
            /*(array) данные рейтинга*/
            "data": [{
                /*(string) никнейм игрока*/
                "nickname": "Alejandro",
                /*(int) место в рейтинге*/
                "place": 1,
                /*(int) время online, в минутах*/
                "time": 91290,
                /*(int) время последнего посещения сервера*/
                "last_visit": 1511113315
            }, {
                "nickname": "zeikyn",
                "place": 2,
                "time": 78550,
                "last_visit": 1506805303
            }, {
                "nickname": "pokeshmon",
                "place": 3,
                "time": 75950,
                "last_visit": 1478622539
            }, {
                "nickname": "BOYARIN",
                "place": 4,
                "time": 62760,
                "last_visit": 1501956577
            }, {
                "nickname": "NikZ",
                "place": 5,
                "time": 62690,
                "last_visit": 1506886904
            }, {
                "nickname": "thelinx",
                "place": 6,
                "time": 60730,
                "last_visit": 1510314159
            }, {
                "nickname": "Mexoc",
                "place": 7,
                "time": 58180,
                "last_visit": 1512924339
            }, {
                "nickname": "keco185",
                "place": 8,
                "time": 58120,
                "last_visit": 1504279213
            }, {
                "nickname": "Bobillho",
                "place": 9,
                "time": 57280,
                "last_visit": 1502314183
            }, {
                "nickname": "karnaj",
                "place": 10,
                "time": 55700,
                "last_visit": 1506850904
            }, {
                "nickname": "Kosatka",
                "place": 11,
                "time": 54010,
                "last_visit": 1511707572
            }, {
                "nickname": "nikolskiy24",
                "place": 12,
                "time": 52390,
                "last_visit": 1509547946
            }, {
                "nickname": "Faer_Killer",
                "place": 13,
                "time": 49660,
                "last_visit": 1509394343
            }, {
                "nickname": "A_n_t_o_n",
                "place": 14,
                "time": 47340,
                "last_visit": 1512903339
            }, {
                "nickname": "Epik",
                "place": 15,
                "time": 47310,
                "last_visit": 1506763902
            }, {
                "nickname": "pavel555",
                "place": 16,
                "time": 47280,
                "last_visit": 1490586905
            }, {
                "nickname": "ottoblotto",
                "place": 17,
                "time": 45270,
                "last_visit": 1465206230
            }, {
                "nickname": "None",
                "place": 18,
                "time": 44200,
                "last_visit": 1511715973
            }, {
                "nickname": "mix55",
                "place": 19,
                "time": 43560,
                "last_visit": 1499848744
            }, {
                "nickname": "opa225",
                "place": 20,
                "time": 43010,
                "last_visit": 1479235151
            }, {
                "nickname": "Vovanchik",
                "place": 21,
                "time": 41170,
                "last_visit": 1512726935
            }, {
                "nickname": "ender007HD",
                "place": 22,
                "time": 40960,
                "last_visit": 1510997572
            }, {
                "nickname": "akkaunt",
                "place": 23,
                "time": 39780,
                "last_visit": 1502355584
            }, {
                "nickname": "OXOTHIK_UA",
                "place": 24,
                "time": 39190,
                "last_visit": 1512902139
            }, {
                "nickname": "lololowhka21",
                "place": 25,
                "time": 39050,
                "last_visit": 1497876515
            }, {
                "nickname": "Giperfox",
                "place": 26,
                "time": 38010,
                "last_visit": 1506462062
            }, {
                "nickname": "uikk",
                "place": 27,
                "time": 36900,
                "last_visit": 1509709948
            }, {
                "nickname": "mad78",
                "place": 28,
                "time": 36850,
                "last_visit": 1498768128
            }, {
                "nickname": "Right",
                "place": 29,
                "time": 36840,
                "last_visit": 1511638571
            }, {
                "nickname": "lololowhka",
                "place": 30,
                "time": 36390,
                "last_visit": 1478455133
            }]
        }

Запрос GET

https://minecraft-statistic.net/api/player/info/PLAYER_NAME/SERVER_ID
PLAYER_NAME - никнейм игрока (обязательный параметр)
SERVER_ID - ID сервера (не обязательный параметр, указывайте, если хотите получить статистику игрока на этом сервере)

Пример:
https://minecraft-statistic.net/api/player/info/djoice - статистика игрока djoice
https://minecraft-statistic.net/api/player/info/djoice/51 - статистика игрока djoice на сервере с ID=51

Ответ JSON

https://minecraft-statistic.net/api/player/info/djoice/

    {
        /*(string) статус ответа ok или error (если error, то вместо поля data будет поле msg с описанием ошибки)*/
        "status": "ok",
        /*(object) данные*/
        "data": {
            /*(int) время последнего онлайна в формате Unixtime */
            "last_play": 1435936128,
            /*(int) аккаунт лицензионный или нет (пока работает не совсем точно, не рекомендуется использовать для проверке чего либо)*/
            "license": 1,
            /*(int) статус игрока 1 - в онлайне, 0 - оффлайн*/
            "online": 0,
            /*(int) всего времени online, в минутах*/
            "total_time_play": 15625,
            /*(string) никнейм игрока*/
            "name": "djoice",
            /*(string) UUID игрока в системе Mojang*/
            "uuid": "146db9a0bb494f24abed5749be50be29"
        }
    }
https://minecraft-statistic.net/api/player/info/djoice/51

    {
        "status": "ok",
        "data": {
            "last_play": 1435936128,
            "license": 1,
            "online": 0,
            /*(int) общее время online на сервере с ID=51, в минутах*/

            "total_time_play": 3920,
            "name": "djoice",
            "uuid": "146db9a0bb494f24abed5749be50be29"
        }
    }