VimeWorld.ru Public API logo

Введение

Добро пожаловать в публичный API VimeWorld.ru

API находится по адресу http://api.vime.world/. Чтобы как-то им воспользоваться, в конец адреса нужно добавить имя метода с данными (если есть). Список методов размещен ниже. При вызове методов могут возникать ошибки, с ними можно ознакомиться в разделе Ошибки.

Удобство разработки

Чтобы было удобнее смотреть ответ сервера, можете установить расширение для Chrome - JSON Formatter. Оно будет форматировать JSON в человекочитаемый вид, так что можно будет прямо из браузера тестировать методы и сразу смотреть на результат.

Авторизация

Для получения токена необходимо зайти на сервер MiniGames и написать команду /api. Вам будет выдана ссылка на страницу, где будет написан ваш токен и информация о нем. Чтобы выполнять запросы с токеном, необходимо добавить его в параметры запроса, например:

http://api.vime.world/online?token=MY_TOKEN

Либо добавить в запрос заголовок Access-Token:

Access-Token: MY_TOKEN

Лимит на количество запросов

При использовании API без токена авторизации, вы можете делать не более 60 запросов в минуту с одного IP. С использованием токена лимит запросов в минуту увеличивается до 300. Если вам все равно этого мало, можете написать сюда https://vk.com/xtrafrancyz и договориться о персональном лимите.

Вы можете посмотреть в заголовки(headers) любого запроса, чтобы узнать текущий статус ограничения:

X-RateLimit-Limit: 60 // количество возможных запросов в минуту
X-RateLimit-Remaining: 59 // количество оставшихся запросов
X-RateLimit-Reset-After: 16 // количество секунд, через которое лимит будет сброшен
$curl = curl_init("http://api.vime.world/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 на сервере MiniGames
2 Исчерпано количество запросов в минуту. Подробнее о лимите запросов можете почитать тут
3 Один из переданных параметров не передан или указан неправильно. Чтобы решить ошибку, почитайте описание метода и его параметров
4 Метод в данный момент не работает
10 Игрока с указанным id не существует
11 Игрока с указанным ником не существует
{
  "error": {
    "error_code": 0,
    "error_msg": "Error message"
  }
}

Ранги игроков

Ранг Название Префикс Цвет
PLAYER Игрок    
VIP VIP [V] #00be00
PREMIUM Premium [P] #00dada
HOLY Holy [H] #ffba2d
IMMORTAL Immortal [I] #e800d5
BUILDER Билдер [Билдер] #009c00
MAPLEAD Главный билдер [Гл. билдер] #009c00
YOUTUBE YouTube [YouTube] #fe3f3f
DEV Разработчик [Dev] #00bebe
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,
    "guild": {
      "id": 401,
      "name": "Okssi наш друг",
      "tag": null,
      "color": "&f"
    }
  }
]
[
  {
    "id": 134568,
    "username": "xtrafrancyz",
    "level": 5,
    "levelPercentage": 0.894,
    "rank": "ADMIN",
    "playedSeconds": 3023813,
    "guild": {
      "id": 401,
      "name": "Okssi наш друг",
      "tag": null,
      "color": "&f"
    }
  },
  {
    "id": 91638,
    "username": "nikita",
    "level": 1,
    "levelPercentage": 0,
    "rank": "PLAYER",
    "playedSeconds": 0,
    "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,
    "guild": {
      "id": 401,
      "name": "Okssi наш друг",
      "tag": null,
      "color": "&f"
    }
  }
]
[
  {
    "id": 134568,
    "username": "xtrafrancyz",
    "level": 5,
    "levelPercentage": 0.894,
    "rank": "ADMIN",
    "playedSeconds": 3023813,
    "guild": {
      "id": 401,
      "name": "Okssi наш друг",
      "tag": null,
      "color": "&f"
    }
  },
  {
    "id": 91638,
    "username": "nikita",
    "level": 1,
    "levelPercentage": 0,
    "rank": "PLAYER",
    "playedSeconds": 0,
    "guild": null
  }
]
[]

/user/:id/friends

Получает друзей игрока

Параметры
id
id игрока.

Возвращает список друзей игрока.

{
  "user": {
    "id": 134568,
    "username": "xtrafrancyz",
    "level": 5,
    "levelPercentage": 0.894,
    "rank": "ADMIN",
    "playedSeconds": 3106732,
    "guild": null
  },
  "friends": [
    {
      "id": 105889,
      "username": "rsboe",
      "level": 8,
      "levelPercentage": 0.856,
      "rank": "BUILDER",
      "playedSeconds": 5508358,
      "guild": {
        "id": 1,
        "name": "Fantastic Five",
        "tag": null,
        "color": "&f"
      }
    },
    {
      "id": 94245,
      "username": "Okssi",
      "level": 10,
      "levelPercentage": 0.168,
      "rank": "CHIEF",
      "playedSeconds": 2596550,
      "guild": null
    },
    {
      "id": 113654,
      "username": "SmaIK",
      "level": 3,
      "levelPercentage": 0.278,
      "rank": "ADMIN",
      "playedSeconds": 1300227,
      "guild": null
    }
  ]
}

/user/:id/session

Получает статус онлайн игрока

Параметры
id
id игрока.

Возвращает статус игрока онлайн, человекопонятное сообщение и название игры, где он находится.

{
  "user": {
    "id": 134568,
    "username": "xtrafrancyz",
    "level": 5,
    "levelPercentage": 0.894,
    "rank": "ADMIN",
    "playedSeconds": 3106732,
    "guild": null
  },
  "online": {
    "value": false,
    "message": "Находится в Лобби",
    "game": "LOBBY"
  }
}
{
  "user": {
    "id": 134568,
    "username": "xtrafrancyz",
    "level": 5,
    "levelPercentage": 0.894,
    "rank": "ADMIN",
    "playedSeconds": 3106732,
    "guild": null
  },
  "online": {
    "value": false,
    "message": "Игрок оффлайн"
  }
}

/user/:id/stats

Получает статистику игрока

Параметры
id
id игрока.

Возвращает статистику всех игр, в которые играл запрашиваемый игрок. Список игр и их возможные значения статистики можно узнать с помощью метода misc/games.

{
  "user": {
    "id": 134568,
    "username": "xtrafrancyz",
    "level": 5,
    "levelPercentage": 0.894,
    "rank": "ADMIN",
    "playedSeconds": 3106732,
    "guild": null
  },
  "stats": {
    "SkyWars": {
      "kills": 25,
      "wins": 2,
      "arrowsFired": 0,
      "currentWinStreak": 0,
      "games": 39,
      "winStreak": 0,
      "blocksPlaced": 0,
      "blocksBroken": 0,
      "deaths": 0
    },
    "BedWars": {
      "kills": 63,
      "wins": 2,
      "games": 10,
      "deaths": 97,
      "bedBreaked": 3
    }
  }
}

/user/:id/achievements

Получает достижения игрока

Параметры
id
id игрока.

Возвращает список всех достижений игрока. Список всех возможных достижений можно узнать с помощью метода misc/achievements.

Метод может вернуть id достижений, которых нет в списке всех достижений. Это секретные достижения, их id находится в промежутке от 9000 до 9100.

Ответ
id
id достижения из списка всех достижений.
time
Метка времени Unix Timestamp, когда игрок получил достижение.
{
  "user": {
    "id": 134568,
    "username": "xtrafrancyz",
    "level": 5,
    "levelPercentage": 0.894,
    "rank": "ADMIN",
    "playedSeconds": 3106732,
    "guild": null
  },
  "achievements": [
    {
      "id": 1,
      "time": 1454112020
    },
    {
      "id": 2,
      "time": 1454112020
    },
    {
      "id": 3,
      "time": 1454118435
    },
    {
      "id": 4,
      "time": 1454164310
    },
    {
      "id": 8,
      "time": 1454117329
    }
  ]
}

/guild/get

Получает информацию о гильдии

Искать гильдию можно по её id, названию или тегу. Для этого нужно указать один из следующих параметров.

Параметры
id
получение по id гильдии
name
получение по названию гильдии
tag
получение по тегу гильдии

Если гильдия не найдена, то вернется ошибка 12 (Guild not found).

Информация обновляется раз в 10 минут.

Сомнительные поля в ответе
totalCoins
Сумма вложенных в гильдию коинов за все время её существования.
created
Метка времени Unix Timestamp, когда гильдия была создана.
members > guildCoins
Количество коинов, которые вложил игрок в гильдию.
members > guildExp
Количество опыта, которое ушло в гильдию от этого игрока.
{
  "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
    },
    ...
  ]
}
{
  "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
Краткое описание таблицы рекордов.
sort
Список доступных вариантов таблицы рекордов.
[
  {
    "type": "bb",
    "description": "Top players on BuildBattle",
    "sort": [
      "wins"
    ]
  },
  {
    "type": "sw",
    "description": "Top players on SkyWars",
    "sort": [
      "wins",
      "kills"
    ]
  },
  {
    "type": "user",
    "description": "Top players",
    "sort": [
      "level",
      "online"
    ]
  },
  ...
]

/leaderboard/get/:type[/:sort]

Возвращает таблицу рекордов

Параметры
type
Тип таблицы рекордов. Список таблиц возвращает метод leaderboard/list.
sort
Вариант таблицы рекордов (необязательно).
Дополнительные параметры
size
Количество записей, которые вернет сервер. По умолчанию - 100, максимально - 1000.

Возвращает таблицу рекордов.

Информация обновляется раз в час.

{
  "leaderboard": {
    "type": "level",
    "sort": null,
    "size": 100
  },
  "records": [
    {
      "id": 165070,
      "username": "_SmILeGames_",
      "level": 73,
      "levelPercentage": 0.25811,
      "rank": "IMMORTAL",
      "playedSeconds": 9501091,
      "guild": {
        "id": 87,
        "name": "E.S.C",
        "tag": null,
        "color": "&f"
      }
    },
    {
      "id": 246843,
      "username": "_KorovkaGOD_",
      "level": 72,
      "levelPercentage": 0.33993,
      "rank": "IMMORTAL",
      "playedSeconds": 9199587,
      "guild": null
    },
    ...
  ]
}
{
  "leaderboard": {
    "type": "sw",
    "sort": "wins",
    "size": 100
  },
  "records": [
    {
      "user": {
        "id": 186517,
        "username": "M1halych",
        "level": 40,
        "levelPercentage": 0.71594,
        "rank": "HOLY",
        "playedSeconds": 7897811,
        "guild": {
          "id": 107,
          "name": "Revenge",
          "tag": null,
          "color": "&f"
        }
      },
      "wins": 10186,
      "games": 19068,
      "kills": 51951,
      "deaths": 5004
    },
    {
      "user": {
        "id": 211701,
        "username": "EvilMaster",
        "level": 64,
        "levelPercentage": 0.26511,
        "rank": "WARDEN",
        "playedSeconds": 9308811,
        "guild": {
          "id": 1,
          "name": "Fantastic Five",
          "tag": null,
          "color": "&f"
        }
      },
      "wins": 9758,
      "games": 15889,
      "kills": 44634,
      "deaths": 2924
    },
    ...
  ]
}
{
  "leaderboard": {
    "type": "bw",
    "sort": "kills",
    "size": 100
  },
  "records": [
    {
      "user": {
        "id": 179278,
        "username": "Darksiders_azaza",
        "level": 9,
        "levelPercentage": 0.321,
        "rank": "PLAYER",
        "guild": null
      },
      "wins": 1665,
      "games": 2243,
      "kills": 30682,
      "deaths": 9278,
      "bedBreaked": 2898
    },
    {
      "user": {
        "id": 140324,
        "username": "_Cuuuba_",
        "level": 1,
        "levelPercentage": 0.233,
        "rank": "HOLY",
        "guild": null
      },
      "wins": 1354,
      "games": 1721,
      "kills": 23686,
      "deaths": 5822,
      "bedBreaked": 1974
    },
    ...
  ]
}
{
  "leaderboard": {
    "type": "sw",
    "sort": "kills",
    "size": 10
  },
  "records": [
    {
      "user": {
        "id": 186517,
        "username": "M1halych",
        "level": 8,
        "levelPercentage": 0.342,
        "rank": "PLAYER",
        "guild": null
      },
      "wins": 6045,
      "games": 10302,
      "kills": 30099,
      "deaths": 379
    },
    {
      "user": {
        "id": 211701,
        "username": "EvilMaster",
        "level": 14,
        "levelPercentage": 0.042,
        "rank": "WARDEN",
        "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.ru",
    "owner": "iAmTopStreamer",
    "viewers": 95,
    "url": "https://youtu.be/dQw4w9WgXcQ",
    "duration": 6435,
    "platform": "YouTube"
  },
  {
    "title": "Играю с подписчиками на VimeWorld",
    "owner": "Best_YT",
    "viewers": 500,
    "url": "https://youtu.be/dQw4w9WgXcQ",
    "duration": 4686,
    "platform": "YouTube"
  }
]

/online/staff

Список модераторов онлайн

Возвращает список модераторов, которые в данный момент находятся на сервере.

Информация обновляется раз в 10 сек.

[
  {
    "id": 64165,
    "username": "kuclopoguk",
    "level": 37,
    "levelPercentage": 0.37101,
    "rank": "MODER",
    "playedSeconds": 5950354,
    "guild": {
      "id": 124,
      "name": "TheRebellAlliance",
      "tag": null,
      "color": "&f"
    },
    "online": {
      "value": true,
      "message": "Играет в SkyWars Solo",
      "game": "SW"
    }
  },
  {
    "id": 1249617,
    "username": "LoganFrench",
    "level": 37,
    "levelPercentage": 0.17737,
    "rank": "WARDEN",
    "playedSeconds": 2705011,
    "guild": {
      "id": 104,
      "name": "VimeTop",
      "tag": null,
      "color": "&f"
    },
    "online": {
      "value": true,
      "message": "Находится в Лобби",
      "game": "LOBBY"
    }
  }
]

/misc/games

Список игр, по которым ведется статистика

Возвращает список всех игр, которые поддерживаются API.

Ответ
stats
Все возможные значения статистики по этой игре, которые отдаются методом user/:id/stats.
{
  "SW": {
    "name": "SkyWars",
    "stats": [
      "kills",
      "games",
      "wins"
    ]
  },
  "BW": {
    "name": "BedWars",
    "stats": [
      "kills",
      "games",
      "wins",
      "deaths",
      "bedBreaked"
    ]
  },
  "HG": {
    "name": "HungerGames",
    "stats": [
      "kills",
      "games",
      "wins"
    ]
  },
  ...
}

/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 игроков в бездну"
      ]
    },
    ...
  ],
  ...
}