Введение
Добро пожаловать в публичный API VimeWorld
Чтобы воспользоваться API, нужно делать запросы по одному из адресов:
- https://api.vimeworld.com/
- https://api.vimeworld.ru/ (старый, рабочий)
- https://api.vime.world/ (старый, рабочий, иногда попадает в бан Роскомнадзора)
В конец адреса нужно добавить имя метода с данными (если есть). Список методов размещен ниже. При вызове методов могут возникать ошибки, с ними можно ознакомиться в разделе Ошибки.
Удобство разработки
Чтобы было удобнее смотреть ответ сервера, можете установить расширение для Chrome - JSON Formatter. Оно будет форматировать JSON в человекочитаемый вид, так что можно будет прямо из браузера тестировать методы и сразу смотреть на результат.
Авторизация
Для получения токена разработчика, необходимо зайти на сервер MiniGames и написать команду /api dev
. Вам будет выдана ссылка на страницу, где будет написан ваш токен и информация о нем.
Чтобы выполнять запросы с токеном, необходимо добавить его в параметры запроса, например:
https://api.vimeworld.com/online?token=MY_TOKEN
Либо добавить в запрос заголовок Access-Token:
Access-Token: MY_TOKEN
Лимит на количество запросов
При использовании API без токена разработчика, вы можете делать не более 60
запросов в минуту с одного IP. С использованием токена разработчика, лимит запросов в минуту увеличивается до 300
. Если вам все равно этого мало, можете написать на почту me@xtrafrancyz.net и договориться о персональном лимите.
Вы можете посмотреть в заголовки(headers) любого запроса, чтобы узнать текущий статус ограничения:
X-RateLimit-Limit: 60 // количество возможных запросов в минуту
X-RateLimit-Remaining: 59 // количество оставшихся запросов
X-RateLimit-Reset-After: 16 // количество секунд, через которое лимит будет сброшен
$curl = curl_init("https://api.vimeworld.com/online");
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 4);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Access-Token: MY_TOKEN'
));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
curl_close($curl);
print $response;
Ошибки
Основные
Код | Описание |
---|---|
-3 | Неизвестная ошибка в работе API, при её возникновении нужно сообщить куда-нибудь. |
-2 | Внутренняя ошибка сервера. О ней тоже нужно куда-нибудь сообщить. |
-1 | По адресу, который вы указали, не нашлось ни одного метода. |
1 | Указан неправильный токен. Вы можете получить его командой /api dev на сервере MiniGames. |
2 | Исчерпано количество запросов в минуту. Подробнее о лимите запросов можете почитать тут. |
3 | Один из заданных параметров не передан или указан неправильно. Чтобы решить ошибку, почитайте описание метода и его параметров. |
4 | Метод отключен или не работает по каким-то причинам. |
Дополнительные
Ошибки с кодом 10+ указывают на то что запрошенный “ресурс” не существует, например: игрок, гильдия, матч.
{
"error": {
"error_code": 0,
"error_msg": "Error message",
"comment": "Optional comment"
}
}
Ранги игроков
Ранг | Название | Префикс | Цвет |
---|---|---|---|
PLAYER | Игрок | ||
VIP | VIP | [V] | #00be00 |
PREMIUM | Premium | [P] | #00dada |
HOLY | Holy | [H] | #ffba2d |
IMMORTAL | Immortal | [I] | #e800d5 |
BUILDER | Билдер | [Билдер] | #009c00 |
SRBUILDER | Проверенный билдер | [Пр. билдер] | #009c00 |
MAPLEAD | Главный билдер | [Гл. билдер] | #009c00 |
YOUTUBE | YouTube | [YouTube] | #fe3f3f |
DEV | Разработчик | [Dev] | #00bebe |
ORGANIZER | Организатор | [Организатор] | #00bebe |
HELPER | Хелпер | [Хелпер] | #1b00ff |
MODER | Модератор | [Модер] | #1b00ff |
WARDEN | Проверенный модератор | [Модер] | #1b00ff |
CHIEF | Главный модератор | [Гл. модер] | #1b00ff |
ADMIN | Главный админ | [Гл. админ] | #00bebe |
/user/name/:names
Получает игрока по нику
Параметры
- names
- Ники игроков через запятую. Они могут содержать только латинские буквы, цифры и знак подчеркивания _.
Возвращает информацию об игроке или нескольких игроках по их нику. Если игрок не найден, то он не будет показываться в ответе.
Максимальное количество ников, которые можно указать в одном запросе - 50. Если их будет больше, то сервер вернет ошибку 3 (Invalid parameters).
[
{
"id": 134568,
"username": "xtrafrancyz",
"level": 5,
"levelPercentage": 0.894,
"rank": "ADMIN",
"playedSeconds": 3023813,
"lastSeen": 1611848249,
"guild": {
"id": 401,
"name": "Кек дела - хорошо",
"tag": null,
"color": "&f",
"level": 1,
"levelPercentage": 0.38236,
"avatar_url": "https://mc.vimeworld.com/launcher/guilds/401.png"
}
}
]
[
{
"id": 134568,
"username": "xtrafrancyz",
"level": 5,
"levelPercentage": 0.894,
"rank": "ADMIN",
"playedSeconds": 3023813,
"lastSeen": 1557004489,
"lastSeen": 1611848249,
"guild": {
"id": 401,
"name": "Кек дела - хорошо",
"tag": null,
"color": "&f",
"level": 1,
"levelPercentage": 0.38236,
"avatar_url": "https://mc.vimeworld.com/launcher/guilds/401.png"
}
},
{
"id": 91638,
"username": "nikita",
"level": 1,
"levelPercentage": 0,
"rank": "PLAYER",
"playedSeconds": 0,
"lastSeen": -1,
"guild": null
}
]
[]
/user/:ids
Получает игрока по id
Параметры
- ids
- id игроков через запятую. Можно указывать как один, так и несколько.
Возвращает информацию об игроке или нескольких игроках по их id. Если игрок с заданым id не найден, то он не будет показан в ответе.
Максимальное количество айдишников, которые можно указать в одном запросе - 50. Если их будет больше, то сервер вернет ошибку 3 (Invalid parameters).
[
{
"id": 134568,
"username": "xtrafrancyz",
"level": 5,
"levelPercentage": 0.894,
"rank": "ADMIN",
"playedSeconds": 3023813,
"lastSeen": 1611848249,
"guild": {
"id": 401,
"name": "Кек дела - хорошо",
"tag": null,
"color": "&f",
"level": 1,
"levelPercentage": 0.38236,
"avatar_url": "https://mc.vimeworld.com/launcher/guilds/401.png"
}
}
]
[
{
"id": 134568,
"username": "xtrafrancyz",
"level": 5,
"levelPercentage": 0.894,
"rank": "ADMIN",
"playedSeconds": 3023813,
"lastSeen": 1611848249,
"guild": {
"id": 401,
"name": "Кек дела - хорошо",
"tag": null,
"color": "&f",
"level": 1,
"levelPercentage": 0.38236,
"avatar_url": "https://mc.vimeworld.com/launcher/guilds/401.png"
}
},
{
"id": 91638,
"username": "nikita",
"level": 1,
"levelPercentage": 0,
"rank": "PLAYER",
"playedSeconds": 0,
"lastSeen": 1595803008,
"guild": null
}
]
[]
/user/:id/friends
Получает друзей игрока
Параметры
- id
- id игрока.
Возвращает список друзей игрока.
Если игрок с заданным id не найден, то вернется ошибка 10 (Invalid user id).
{
"user": {
"id": 134568,
"username": "xtrafrancyz",
"level": 5,
"levelPercentage": 0.894,
"rank": "ADMIN",
"playedSeconds": 3106732,
"lastSeen": 1611848249,
"guild": null
},
"friends": [
{
"id": 105889,
"username": "rsboe",
"level": 8,
"levelPercentage": 0.856,
"rank": "BUILDER",
"playedSeconds": 5508358,
"lastSeen": 1611872822,
"guild": {
"id": 3741,
"name": "Build",
"tag": "Build",
"color": "&2",
"level": 33,
"levelPercentage": 0.588781,
"avatar_url": "https://mc.vimeworld.com/launcher/guilds/3741.png"
}
},
{
"id": 94245,
"username": "Okssi",
"level": 10,
"levelPercentage": 0.168,
"rank": "CHIEF",
"playedSeconds": 2596550,
"lastSeen": 1611997655,
"guild": null
},
{
"id": 113654,
"username": "SmaIK",
"level": 3,
"levelPercentage": 0.278,
"rank": "HOLY",
"playedSeconds": 1300227,
"lastSeen": 1608173172,
"guild": null
}
]
}
/user/:id/session
Получает статус онлайн игрока
Параметры
- id
- id игрока.
Возвращает статус игрока онлайн, человекопонятное сообщение и название игры, где он находится.
Если игрок с заданным id не найден, то вернется ошибка 10 (Invalid user id).
{
"user": {
"id": 134568,
"username": "xtrafrancyz",
"level": 5,
"levelPercentage": 0.894,
"rank": "ADMIN",
"playedSeconds": 3106732,
"lastSeen": 1611848249,
"guild": null
},
"online": {
"value": true,
"message": "Находится в Лобби",
"game": "LOBBY"
}
}
{
"user": {
"id": 64638,
"username": "Kynth",
"level": 56,
"levelPercentage": 0.76395,
"rank": "MODER",
"playedSeconds": 6735290,
"lastSeen": 1612021654,
"guild": null
},
"online": {
"value": true,
"message": "Онлайн"
}
}
{
"user": {
"id": 134568,
"username": "xtrafrancyz",
"level": 5,
"levelPercentage": 0.894,
"rank": "ADMIN",
"playedSeconds": 3106732,
"lastSeen": 1611848249,
"guild": null
},
"online": {
"value": false,
"message": "Игрок оффлайн"
}
}
/user/:id/stats
Получает статистику игрока
Параметры
- id
- id игрока.
Дополнительные параметры
- games
- Выводит только статистику указанных игр. Если вам не нужна полная статистика игрока, пожалуйста, указывайте только нужные вам игры. Игры указываются через запятую, по их id из misc/games.
Возвращает статистику всех игр, в которые играл запрашиваемый игрок. Список игр и их возможные значения статистики можно узнать с помощью метода misc/games.
Если игрок с заданным id не найден, то вернется ошибка 10 (Invalid user id).
Ответ
- stats > global
- Статистика по игре за все время.
- stats > season
- Статистика по игре за определенный сезон.
{
"user": {
"id": 134568,
"username": "xtrafrancyz",
"level": 5,
"levelPercentage": 0.894,
"rank": "ADMIN",
"playedSeconds": 3106732,
"lastSeen": 1611848249,
"guild": null
},
"stats": {
"BW": {
"global": {
"kills": 76,
"deaths": 118,
"games": 17,
"wins": 2,
"bedBreaked": 5
},
"season": {
"monthly": {
"kills": 0,
"deaths": 0,
"games": 0,
"wins": 0,
"bedBreaked": 0
}
}
},
"MW": {
"global": {
"games": 27,
"wins": 18,
"mobsKilled": 1530,
"mobsSended": 3800,
"maxIncome": 571494
},
"season": {
"monthly": {
"games": 0,
"wins": 0,
"mobsKilled": 0,
"mobsSended": 0
}
}
},
...
}
}
{
"user": {
"id": 134568,
"username": "xtrafrancyz",
"level": 5,
"levelPercentage": 0.894,
"rank": "ADMIN",
"playedSeconds": 3106732,
"lastSeen": 1611848249,
"guild": null
},
"stats": {
"BW": {
"global": {
"kills": 76,
"deaths": 118,
"games": 17,
"wins": 2,
"bedBreaked": 5
},
"season": {
"monthly": {
"kills": 0,
"deaths": 0,
"games": 0,
"wins": 0,
"bedBreaked": 0
}
}
}
}
}
/user/:id/achievements
Получает достижения игрока
Параметры
- id
- id игрока.
Возвращает список всех достижений игрока. Список всех возможных достижений можно узнать с помощью метода misc/achievements.
Метод может вернуть id достижений, которых нет в списке всех достижений. Это секретные достижения, их id находится в промежутке от 9000 до 9100.
Если игрок с заданным id не найден, то вернется ошибка 10 (Invalid user id).
Ответ
- id
- id достижения из списка всех достижений.
- time
- Метка времени Unix Timestamp, когда игрок получил достижение.
{
"user": {
"id": 134568,
"username": "xtrafrancyz",
"level": 5,
"levelPercentage": 0.894,
"rank": "ADMIN",
"playedSeconds": 3106732,
"lastSeen": 1611848249,
"guild": null
},
"achievements": [
{
"id": 1,
"time": 1454112020
},
{
"id": 2,
"time": 1454112020
},
{
"id": 3,
"time": 1454118435
},
{
"id": 4,
"time": 1454164310
},
{
"id": 8,
"time": 1454117329
}
]
}
/user/:id/leaderboards
Получает место игрока в топах
Параметры
- id
- id игрока.
Возвращает список таблиц рекордов, куда попал данный игрок, и место в них. Список всех возможных топов можно узнать с помощью метода leaderboard/list.
Если игрок с заданным id не найден, то вернется ошибка 10 (Invalid user id).
Ответ
- leaderboards -> place
- Позиция игрока в топе.
{
"user": {
"id": 943030,
"username": "murzuk",
"level": 122,
"levelPercentage": 0.83744,
"rank": "YOUTUBE",
"playedSeconds": 21058620,
"lastSeen": 1557574378,
"guild": {
"id": 287,
"name": "Desire to Live",
"tag": "Кошак",
"color": "&7",
"level": 54,
"levelPercentage": 0.9503689655172414,
"avatar_url": null
}
},
"leaderboards": [
{
"type": "user",
"sort": "level",
"place": 1
}, {
"type": "user",
"sort": "online",
"place": 19
}, {
"type": "ann",
"sort": "kills",
"place": 413
}
]
}
{
"user": {
"id": 134568,
"username": "xtrafrancyz",
"level": 38,
"levelPercentage": 0.4574,
"rank": "ADMIN",
"playedSeconds": 6265584,
"lastSeen": 1557479038,
"guild": null
},
"leaderboards": []
}
/user/:id/matches
Получает последние матчи игрока
Параметры
- id
- id игрока.
Возвращает список последних матчей игрока. Чуть более подробное описание можете посмотреть в методе match/latest.
Подробную информацию о конкретном матче можно получить с помощью метода match/:id.
Дополнительные параметры
- count
- Количество матчей, которые вернет сервер. По умолчанию - 20, максимально - 50.
- offset
- Количество пропущенных от начала матчей. По умолчанию - 0, максимально - 2000.
- after
- Будут выведены матчи, которые произошли до матча с этим ID.
- before
- Будут выведены матчи, которые произошли после матча с этим ID.
Если игрок с заданным id не найден, то вернется ошибка 10 (Invalid user id).
Параметры offset
, after
и before
нельзя комбинировать в одном запросе, должен быть указан только один из них.
Ответ
- matches > state
- Результат игры. 0 - поражение, 1 - победа, 2 - ничья.
- matches > win
- Результат игры, который остался для совместимости со старыми клиентами.
{
"user": {
"id": 4167839,
"username": "FLASH_Free_STAYk",
"level": 3,
"levelPercentage": 0.73158,
"rank": "PLAYER",
"playedSeconds": 16435,
"lastSeen": 1559036750,
"guild": null
},
"request": {
"count": 20,
"offset": 0,
"size": 1
},
"matches": [
{
"id": "53421537142767616",
"game": "DUELS",
"map": {
"id": "Nevermor",
"name": "Невермор",
"teams": 2,
"playersInTeam": 1
},
"date": 1559037486,
"duration": 70,
"players": 2,
"win": true,
"state": 1
},
...
}
/user/session/:ids
Массовое получение статуса (до 50)
Параметры
- ids
- id игроков через запятую. Можно указывать как один, так и несколько.
Возвращает статус игроков онлайн, человекопонятное сообщение и название игры, где каждый из них находится.
Максимальное количество айдишников, которые можно указать в одном запросе - 50. Если их будет больше, то сервер вернет ошибку 3 (Invalid parameters).
[
{
"id": 134568,
"username": "xtrafrancyz",
"level": 5,
"levelPercentage": 0.894,
"rank": "ADMIN",
"playedSeconds": 3106732,
"lastSeen": 1611848249,
"guild": null,
"online": {
"value": true,
"message": "Находится в Лобби",
"game": "LOBBY"
}
}
]
[
{
"id": 134568,
"username": "xtrafrancyz",
"level": 5,
"levelPercentage": 0.894,
"rank": "ADMIN",
"playedSeconds": 3106732,
"lastSeen": 1611848249,
"guild": null,
"online": {
"value": true,
"message": "Находится в Лобби",
"game": "LOBBY"
}
},
{
"id": 94245,
"username": "Okssi",
"level": 37,
"levelPercentage": 0.44946,
"rank": "CHIEF",
"playedSeconds": 4335897,
"lastSeen": 1611997655,
"online": {
"value": false,
"message": "Игрок оффлайн"
}
}
]
/user/session
Очень массовое получение статуса (до 1000)
Возвращает статус игроков онлайн, человекопонятное сообщение и название игры, где каждый из них находится.
В теле POST запроса должен быть JSON массив с айдишниками игроков. Например, для получения статуса игроков 134568
и 94245
, тело запроса должно быть следующим:
[134568,94245]
Максимальное количество айдишников, которые можно указать в одном запросе - 1000. Если их будет больше, то сервер вернет ошибку 3 (Invalid parameters).
В отличие от остальных методов, цена каждого запроса не 1, а зависит от количества запрашиваемых игроков. Стоимость расчитывается по формуле cost = (size-1)/50 + 1
. Например, для 50 игроков стоимость будет 1, а для 100 уже 2.
/guild/search
Ищет гильдии по названию или тегу
Возвращает список гильдий, название или тег которых содержит заданный запрос. Максимальное количество гильдий в ответе 10. При сортировке гильдий в ответе учитывается полное совпадение по тегу/названию, уровень и еще пару хитрых штук.
Параметры
- query
- запрос для поиска (минимум 2 символа)
Индекс гильдий обновляется раз в 10 минут.
[
{
"id": 1,
"name": "Fantastic Five",
"tag": "F5",
"color": "&6",
"level": 30,
"levelPercentage": 0.66278,
"avatar_url": "https://mc.vimeworld.com/launcher/guilds/1.jpg"
},
{
"id": 2495,
"name": "-F5-",
"tag": null,
"color": "&f",
"level": 2,
"levelPercentage": 0.62691,
"avatar_url": null
}
]
/guild/get
Получает информацию о гильдии
Искать гильдию можно по её id, названию или тегу. Для этого нужно указать один из следующих параметров.
Параметры
- id *
- Получение по id гильдии.
- name *
- Получение по названию гильдии.
- tag *
- Получение по тегу гильдии.
- unsafe
- По умолчанию, все ссылки на картинки в
web_info
проксируются через https://images.weserv.nl/, чтобы защитить пользователей от логгеров и обойти блокировки различных сайтов (например, картинки из ВКонтакте не будут грузиться у пользователей из Украины). Чтобы отключить проксирование и получить исходные ссылки, можно добавить этот параметр в запрос.
Если гильдия не найдена, то вернется ошибка 12 (Guild not found).
Информация обновляется раз в 10 минут.
Сомнительные поля в ответе
- totalCoins
- Сумма вложенных в гильдию коинов за все время её существования.
- created
- Метка времени Unix Timestamp, когда гильдия была создана.
- members > guildCoins
- Количество коинов, которые вложил игрок в гильдию.
- members > guildExp
- Количество опыта, которое ушло в гильдию от этого игрока.
{
"id": 1,
"name": "Fantastic Five",
"tag": "-F5-",
"color": "&6",
"level": 61,
"levelPercentage": 0.841909,
"avatar_url": "https://mc.vimeworld.com/launcher/guilds/1.jpg",
"totalExp": 21247241,
"totalCoins": 93844796,
"created": 1508631234,
"web_info": null,
"perks": {
"MEMBERS": {
"name": "Количество членов гильдии",
"level": 16
},
...
}
"members": [
{
"user": {
"id": 176361,
"username": "eLs",
"level": 55,
"levelPercentage": 0.72247,
"rank": "WARDEN",
"playedSeconds": 8172366,
"lastSeen": 1611768354
},
"status": "LEADER",
"joined": 1508631234,
"guildCoins": 55000,
"guildExp": 1123
},
...
]
}
{
"id": 1,
"name": "Fantastic Five",
"tag": null,
"color": "&f",
"created": 1508631234,
"totalCoins": 55000,
"level": 1,
"levelPercentage": 0.81264,
"members": [
{
"user": {
"id": 176361,
"username": "eLs",
"level": 55,
"levelPercentage": 0.72247,
"rank": "WARDEN",
"playedSeconds": 8172366
},
"status": "LEADER",
"joined": 1508631234,
"guildCoins": 55000,
"guildExp": 1123
},
...
]
}
/leaderboard/list
Список таблиц рекордов
Возвращает список всех доступных таблиц рекордов.
Ответ
- type
- Тип таблицы рекордов, он используется для получения конкретной таблицы рекордов в методе leaderboard/get.
- description
- Краткое описание таблицы рекордов.
- max_size
- Максимальное количество записей, которые вернет сервер.
- sort
- Список доступных вариантов таблицы рекордов.
[
{
"type": "bb",
"description": "Топ игроков на BuildBattle",
"max_size": 1000,
"sort": [
"wins"
]
},
{
"type": "bp_monthly",
"description": "Топ игроков на BlockParty (в этом месяце)",
"max_size": 1000,
"sort": [
"wins"
]
},
{
"type": "user",
"description": "Общий топ игроков",
"max_size": 1000,
"sort": [
"level",
"online"
]
},
...
]
/leaderboard/get/:type[/:sort]
Возвращает таблицу рекордов
Параметры
- type
- Тип таблицы рекордов. Список таблиц возвращает метод leaderboard/list.
- sort
- Вариант таблицы рекордов (необязательно).
Дополнительные параметры
- size
- Количество записей, которые вернет сервер. По умолчанию - 100, максимально - 1000.
- offset
- Количество пропущенных от начала записей. По умолчанию - 0.
Информация обновляется раз в час.
{
"leaderboard": {
"type": "level",
"sort": null,
"offset": 0,
"size": 100,
"max_size": 1000
},
"records": [
{
"id": 165070,
"username": "_SmILeGames_",
"level": 73,
"levelPercentage": 0.25811,
"rank": "IMMORTAL",
"playedSeconds": 9501091,
"lastSeen": 1580449829,
"guild": {
"id": 455,
"name": "IcE",
"tag": "-IcE-",
"color": "&b",
"level": 82,
"levelPercentage": 0.556216,
"avatar_url": "https://mc.vimeworld.com/launcher/guilds/455.jpg"
}
},
{
"id": 246843,
"username": "_KorovkaGOD_",
"level": 72,
"levelPercentage": 0.33993,
"rank": "IMMORTAL",
"playedSeconds": 9199587,
"lastSeen": -1,
"guild": null
},
...
]
}
{
"leaderboard": {
"type": "sw",
"sort": "wins",
"offset": 0,
"size": 100,
"max_size": 1000
},
"records": [
{
"user": {
"id": 186517,
"username": "M1halych",
"level": 40,
"levelPercentage": 0.71594,
"rank": "HOLY",
"playedSeconds": 7897811,
"lastSeen": 1612038489,
"guild": {
"id": 107,
"name": "Revenge",
"tag": null,
"color": "&f",
"level": 99,
"levelPercentage": 0.623283,
"avatar_url": "https://mc.vimeworld.com/launcher/guilds/107.png"
}
},
"wins": 10186,
"games": 19068,
"kills": 51951,
"deaths": 5004
},
{
"user": {
"id": 211701,
"username": "EvilMaster",
"level": 64,
"levelPercentage": 0.26511,
"rank": "WARDEN",
"playedSeconds": 9308811,
"lastSeen": 1611804503,
"guild": {
"id": 1,
"name": "Fantastic Five",
"tag": "-F5-",
"color": "&6",
"level": 55,
"levelPercentage": 0.851215,
"avatar_url": "https://mc.vimeworld.com/launcher/guilds/1.jpg?t=1601541785"
}
},
"wins": 9758,
"games": 15889,
"kills": 44634,
"deaths": 2924
},
...
]
}
{
"leaderboard": {
"type": "sw",
"sort": "kills",
"offset": 990,
"size": 10,
"max_size": 1000
},
"records": [
{
"user": {
"id": 186517,
"username": "M1halych",
"level": 8,
"levelPercentage": 0.342,
"rank": "PLAYER",
"playedSeconds": 15491784,
"lastSeen": 1612038489,
"guild": null
},
"wins": 6045,
"games": 10302,
"kills": 30099,
"deaths": 379
},
{
"user": {
"id": 211701,
"username": "EvilMaster",
"level": 14,
"levelPercentage": 0.042,
"rank": "WARDEN",
"playedSeconds": 14259150,
"lastSeen": 1611804503,
"guild": null
},
"wins": 5853,
"games": 9365,
"kills": 29179,
"deaths": 305
},
...
]
}
/online
Количество игроков онлайн
Возвращает количество игроков онлайн. В сумме и по каждой игре отдельно.
Список всех полных названий игр можно посмотреть с помощью метода misc/games.
Информация обновляется раз в 10 сек.
Ответ
- total
- Общий онлайн на MiniGames.
- separated
- Онлайн отдельно по каждой мини игре.
{
"total": 14444,
"separated": {
"ann": 430,
"bb": 764,
"gg": 365,
"lobby": 3465,
"sw": 3756,
"bw": 3658,
"mw": 543,
"kpvp": 212,
"dr": 178,
"bp": 294,
"hg": 779
}
}
/online/streams
Список стримов, которые в данный момент идут на сервере
Возвращает список активных стримов на сервере. Этот список идентичен тому, что показывается на сервере MiniGames в меню по команде /streams
.
Информация обновляется раз в 10 сек.
Ответ
- title
- Заголовок стрима. Может содержать символы юникода.
- owner
- Ник ютубера, который добавил (ведет) стрим.
- viewers
- Количество зрителей стрима.
- duration
- Длительность стрима в секундах (время с начала стрима).
- platform
- Платформа, на которой идет стрим. Поддерживаются YouTube, ВКонтакте, Twitch, GoodGame.
[
{
"title": "Стрим на VimeWorld",
"owner": "Okssi",
"viewers": 95,
"url": "https://youtu.be/dQw4w9WgXcQ",
"duration": 6435,
"platform": "YouTube",
"user": {
"id": 94245,
"username": "Okssi",
"level": 32,
"levelPercentage": 0.894,
"rank": "CHIEF",
"playedSeconds": 5366612,
"lastSeen": 1557003946,
"guild": null
}
},
{
"title": "Играю с подписчиками на VimeWorld",
"owner": "xtrafrancyz",
"viewers": 500,
"url": "https://youtu.be/dQw4w9WgXcQ",
"duration": 4686,
"platform": "YouTube",
"user": {
"id": 134568,
"username": "xtrafrancyz",
"level": 5,
"levelPercentage": 0.894,
"rank": "ADMIN",
"playedSeconds": 3106732,
"lastSeen": -1,
"guild": null
}
}
]
/online/staff
Список модераторов онлайн
Возвращает список модераторов, которые в данный момент находятся на сервере.
Информация обновляется раз в 10 сек.
[
{
"id": 64165,
"username": "kuclopoguk",
"level": 37,
"levelPercentage": 0.37101,
"rank": "MODER",
"playedSeconds": 5950354,
"lastSeen": 1611737241,
"guild": {
"id": 927,
"name": "TheRebellAlliance",
"tag": "-TRA-",
"color": "&b",
"level": 71,
"levelPercentage": 0.376709,
"avatar_url": "https://mc.vimeworld.com/launcher/guilds/927.png"
},
"online": {
"value": true,
"message": "Онлайн"
}
},
{
"id": 1249617,
"username": "LoganFrench",
"level": 37,
"levelPercentage": 0.17737,
"rank": "WARDEN",
"playedSeconds": 2705011,
"lastSeen": 1610475375,
"guild": {
"id": 104,
"name": "VimeTop",
"tag": "VTop",
"color": "&a",
"level": 24,
"levelPercentage": 0.015529,
"avatar_url": "https://mc.vimeworld.com/launcher/guilds/104.jpg"
},
"online": {
"value": true,
"message": "Онлайн"
}
}
]
/match/:id
Полная информация о матче
В зависимости от игры, в ответе могут содержаться совершенно разные значения, так как в каждой игре считается разная статистика и используются разные дополнительные “характеристики”.
Так, на Дуэлях присутствуют поля ranked
и kit
, а на BedWars у каждого игрока есть количество сломанных им кроватей - brokenBeds
.
Есть и общие для всех игр поля: version
, game
, server
, start
, end
, mapName
(может быть null
), mapId
(может быть null
).
Объект в поле winner
может изменяться в зависимости от вида игры, а может быть null
в случае ничьи:
winner: {
"team": "teamId" // в случае командной игры
"player": 123 // в случае игры без команд и одним победителем
"players": [123, 456] // в случае игры без команд и с несколькими победителями
}
Список игроков players
всегда содержит в себе всех играющих, и каждый из игроков обязательно имеет свой id
, остальные поля могут меняться в зависимости от игры.
Список команд teams
присутствует только в командных играх и обязательно имеет id
и members
(id игроков в команде).
Список событий events
содержит в себе список некоторых внутриигровых событий. Каждое событие обязательно имеет type
и time
(время в секундах относительно начала игры). Типы событий в разных играх могут отличаться, плюс к тому одно и то же событие в разных играх может содержать разные поля, но это больше исключение, чем правило.
Если матча с заданным id не существует, то метод вернет ошибку 13 - Match not found.
{
"version": 1,
"game": "DUELS",
"server": "DUELS_6",
"start": 1559601297,
"mapName": "Невермор",
"mapId": "Nevermor",
"kit": "UHC",
"ranked": false,
"winner": {
"player": 4395550
},
"end": 1559601425,
"players": [
{
"id": 2850885,
"kills": 0,
"winStreak": 0,
"dead": true
},
{
"id": 4395550,
"kills": 1,
"winStreak": 1,
"dead": false
}
],
"events": [
{
"type": "kill",
"time": 128,
"killer": 4395550,
"target": 2850885
}
]
}
/match/latest
Список последних матчей на сервере
Дополнительные параметры
- count
- Количество последних матчей, которые вернет сервер. По умолчанию - 20, максимально - 100.
Ответ
- date
- Время окончания матча.
- map
- Информация о карте, где проходил матч. Может быть
null
.
Список обновляется раз в 10 секунд.
[
{
"id": "53411386641874944",
"game": "DUELS",
"map": {
"id": "EHkron",
"name": "Экрон",
"teams": 2,
"playersInTeam": 1
},
"date": 1559035066,
"duration": 14,
"players": 4
}, {
"id": "53411386293747712",
"game": "BW",
"map": {
"id": "Shosul_4x4",
"name": "Шосул",
"teams": 4,
"playersInTeam": 4
},
"date": 1559035066,
"duration": 871,
"players": 16
}
]
/match/list
Список матчей на сервере
Дополнительные параметры
- before
- Будут выведены все матчи, которые произошли до матча с этим ID.
- after
- Будут выведены все матчи, которые произошли после матча с этим ID.
- count
- Количество матчей, которые вернет сервер. По умолчанию - 20, максимально - 100.
При выполнении запроса обязательно нужно указать before
или after
, иначе сервер вернет ошибку.
ID матча это не случайное число, а Snowflake ID (по мотивам Twitter и Discord, можете загуглить). Используя это знание, можно смотреть матчи, которые происходили в определенное время.
ID матча (64 бита) состоит из:
42 бита
- время в миллисекундах, начиная от 01.01.2019 (1546300800
unix timestamp).10 бит
- внутренний ID генератора, не используется в данный момент.12 бит
- счетчик, сбрасывающийся каждую миллисекунду.
Таким образом, если нужно узнать самый первый матч 29.05.2019, то запрос будет следующим:
var vime_epoch = 1546300800; // 01.01.2019 в unix timestamp
var timestamp = 1559088000; // 29.05.2019 в unix timestamp
var id = ((timestamp - vime_epoch) * 1000) << 22 // 1000 - делаем миллисекунды из секунд
= 53633404108800000;
var url = "https://api.vimeworld.com/match/list?count=1&after=" + id;
[
{
"id": "55786827805622272",
"game": "DUELS",
"map": {
"id": "Rizaro",
"name": "Ризаро",
"teams": 2,
"playersInTeam": 1
},
"date": 1559601416,
"duration": 46,
"players": 4
},
{
"id": "55786827608489984",
"game": "DUELS",
"map": {
"id": "KHarbi",
"name": "Харби",
"teams": 2,
"playersInTeam": 1
},
"date": 1559601416,
"duration": 105,
"players": 2
}
]
/locale/:name
Человекочитаемые названия игр, статистики, рангов
Параметры
- name
- Короткое имя языка, в данный момент доступны
ru
,en
.
Возвращает названия всевозможных вещей, которые могут понадобиться при отображении информации.
Дополнительные параметры
- parts
- Возвращает только указанные части локализации. Указываются через запятую, например
games,ranks
.
{
"games": {
"ann": {
"name": "Annihilation"
},
...
},
"game_stats": {
"ann": {
"kills": "Убийств",
"bowkills": "Убийств из лука",
"wood": "Срублено дерева",
"ores": "Руды выкопано",
"nexus": "Урона по базе",
"digged": "Земли выкопано"
},
...
},
"ranks": {
"player": {
"name": "Игрок",
"prefix": ""
},
...
}
}
{
"game_stats": {
"ann": {
"kills": "Убийств",
"bowkills": "Убийств из лука",
"wood": "Срублено дерева",
"ores": "Руды выкопано",
"nexus": "Урона по базе",
"digged": "Земли выкопано"
},
...
}
}
/misc/games
Список игр, по которым ведется статистика
Возвращает список всех игр, которые поддерживаются API.
Ответ
- global_stats
- Все возможные значения статистики по этой игре за все время.
- season_stats
- Возможные значения статистики по игре за определенный сезон.
monthly
- за текущий месяц.manual
- сбрасывается вручную.
[
{
"id": "ANN",
"name": "Annihilation",
"global_stats": [
"kills",
"bowkills",
"wood",
"ores",
"nexus",
"digged"
],
"season_stats": {
"monthly": [
"kills",
"bowkills",
"wood",
"ores",
"nexus",
"digged"
]
}
},
{
"id": "BB",
"name": "BuildBattle",
"global_stats": [
"games",
"wins"
],
"season_stats": {
"monthly": [
"games",
"wins"
]
}
},
...
]
/misc/maps
Список карт, сгруппированный по играм
Возвращает список всех карт на VimeWorld. Здесь могут быть игры, которых нет в ответе misc/games, например SWT. Технически это одна игра, но список карт для SW и SWT разный.
Ответ
- teams
- Количество команд на этой карте.
- playersInTeam
- Количество игроков в каждой команде.
{
"ANN": {
"Atlas": {
"name": "Атлас",
"teams": 4,
"playersInTeam": 25
},
"Castles": {
"name": "Замки",
"teams": 4,
"playersInTeam": 25
}
},
"BW": {
"Actuon_4x2": {
"name": "Актуон",
"teams": 2,
"playersInTeam": 4
},
"Alezia_2x4": {
"name": "Алезия",
"teams": 4,
"playersInTeam": 2
},
...
},
...
]
/misc/achievements
Список всех возможных достижений
Возвращает список всех возможных достижений с их описанием, кроме секретных.
Все достижения разделены на группы (Глобальные, Лобби, SkyWars и т.д.), в каждой из которых может быть сколько угодно достижений.
Ответ
- reward
- Награда за выполнение достижения в коинах.
{
"Глобальные": [
{
"id": 1,
"title": "Экономист",
"reward": 3000,
"description": [
"Иметь в кармане 20.000 коинов"
]
},
{
"id": 2,
"title": "Богатенький буратино",
"reward": 10000,
"description": [
"Иметь в кармане 100.000 коинов"
]
},
...
],
"SkyWars": [
{
"id": 201,
"title": "Паркурист",
"reward": 1500,
"description": [
"Пройти паркур в лобби SkyWars"
]
},
{
"id": 202,
"title": "Коварство I",
"reward": 10000,
"description": [
"Скинуть 100 игроков в бездну"
]
},
...
],
...
}
/misc/token/:token
Возвращает информацию о токене
Существует 3 вида токенов:
Тип | Описание | Владелец | Лимит |
---|---|---|---|
DEV | Данный токен используется для выполнения запросов к апи с увеличенным лимитом запросов. Можно получить по команде /api dev на сервере MiniGames. |
Нет | Да |
AUTH | Используется для авторизации игрока на вашем сайте или в любом другом месте. Токен действует в течение часа до первого использования. Можно получить по команде /api auth на сервере MiniGames. |
Да | Нет |
LEGACY | Имеет свойства и DEV и AUTH, его можно было получить до 04.04.2018. | Да | Да |
В зависимости от типа токена, в ответе могут содержаться или отсутствовать некоторые поля, например, поле owner
будет доступно только для AUTH
и LEGACY
токенов.
{
"token": "xxx",
"valid": true,
"type": "LEGACY",
"limit": 300,
"owner": {
"id": 2113516,
"username": "ItzRubick",
"level": 31,
"levelPercentage": 0.58894,
"rank": "PLAYER",
"playedSeconds": 3345895,
"guild": {
"id": 5161,
"name": "Neon",
"tag": null,
"color": "&f",
"level": 6,
"levelPercentage": 0.97677
}
}
}
{
"token": "notExists",
"valid": false
}