Опис 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
        }
    },
    /*(object) список модифікацій і опцій на сервері, вибирається адміністратором в адмін панелі*/
    "mods": {
        /*(string) мод : (int) 0 - немає, 1 - є*/
        "license": 0,
        "whitelist": 0,
        "pvp": 1,
        "creative": 0,
        "industrial": 0,
        "buildcraft": 0,
        "forestry": 0,
        "thaumcraft": 0,
        "railcraft": 0,
        "millenaire": 0,
        "terrafirmacraft": 0,
        "gregtech": 0
    },
    /*(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"
        }
    }