Начало работы

Конечная точка API

    https://api.serverchichi.online/
            

Для начала работы с API вам необходимо создать приложение и получить его APP_UUID и APP_SECRET_TOKEN. С их помощью вы сможете посылать запросы на сервер. Создать новое приложение можно в настройках профиля по ссылке: https://serverchichi.online/account/settings?tab=apps

Все запросы разделены на 3 уровня доступа: Низкий, Средний, Высокий.

Низкий уровень - Методы доступны всем даже без регистрации приложения в системе
Средний уровень - Методы доступны только приложениям зарегистрированным в системе
Высокий уровень - Методы доступны только приложениям зарегистрированным в системе, а так же прошедшие дополнительную проверку администрацией

Корректное создание sign запроса:
                
    sha256({"minecraft_nickname":"Ryzzi00"}.APP_SECRET_TOKEN);
            

Многие запросы требуют специального поля - sign, что это такое? Это контрольная строка которая позволяет серверу и вашему приложению понять, что ответ или запрос не подделаны и отправлены первоисточником.

Все sign генерируются по определенном порядке для каждого запроса и ответа. В нем всегда содержится строка JSON запроса или ответа, а так же APP_SECRET_TOKEN разделенные точкой. После чего строка хешируется с помощью sha256. При разработке своих приложений ОБЯЗАТЕЛЬНО выполняйте проверку подписи!

Sign не должен содержать APP_UUID! Все поля должны идти в правильном порядке в соответствии с документацией для используемой версии API!

Колличество запросов с одного приложения ограничено 200 запросами в минуту.

Аккаунт

GET/account/getInfo

Уровень доступа: Высокий


Пример запроса:

{
    minecraft_nickname: "Ryzzi00",
    app_uuid: "02a4ac16-e17f-40a4-abb1-70f99a522219",
    sign: "7325849452b802d8be487a3239feb59602fe95647dd9064241dc32359a03a93d"
}
            

Этот запрос позволяет получить всю информацию об аккаунте игрока. Для этого нужно отправить GET-запрос на следующий адрес:
https://api.serverchichi.online/v1/account/getInfo



Пример ответа:

{
    "status": "success",
    "response": {
        "user_id": 13,
        "minecraft_nickname": "Ryzzi00",
        "sch_plus": 2,
        "social_links": {
            "telegram": "https://t.me/ryzzi00_channel",
            "twitch": "https://www.twitch.tv/ryzzi00",
            "youtube": "https://www.youtube.com/@ryzzi00"
        },
        "server_statistics": {
            "total_playtime": 0,
            "total_advancements": 0,
            "last_online": "2000-01-01T00:00:00.000Z"
        },
        "activity": {
            "register_date": "2000-01-01T00:00:00.000Z",
            "last_login_date": "2999-12-31T23:59:59.000Z"
        }
    },
    "sign": "d00ade7ae3f50fc077545fb65b854955fd72a1d60c56e590b2c564ed35d13ce3"
}
                

Параметры запроса

Поле Тип Описание
minecraft_nickname String Ник игрока
app_uuid String UUID приложения
sign String Хеш-подпись запроса

Параметры ответа

Поле Тип Описание
status String Статус запроса, успешен или нет
user_id Number Уникальный ID игрока на сайте
sch_plus Null|String Информация об уровне СЧ+ на сервере:
null - СЧ+ отсутствует
1 - СЧ+ 1 уровня
2 - СЧ+ 2 уровня
social_links Object Обьект содержащий ссылки на социальные сети
server_statistics Object Обьект содержащий статистику на сервере
total_playtime - Колличество времени проведенного на сервере (значение в игровых тиках)
total_advancements - Колличество полученных достижений
last_online - Дата последнего захода на сервер
activity Object Обьект содержащий активность аккаунта
register_date - Дата регистрации на сайте
last_login_date - Дата последнего захода в аккаунт
sign String Хеш-подпись ответа

GET/account/resetPassword

Уровень доступа: Высокий


Пример запроса:

{
    minecraft_nickname: "Ryzzi00",
    app_uuid: "02a4ac16-e17f-40a4-abb1-70f99a522219",
    sign: "7325849452b802d8be487a3239feb59602fe95647dd9064241dc32359a03a93d"
}
            

Этот запрос позволяет получить ссылку, перейдя по которой игрок сможет установить новый пароль. Для этого нужно отправить GET-запрос на следующий адрес:
https://api.serverchichi.online/v1/account/resetPassword



Пример ответа:

{
    "status": "success",
    "response": {
        "minecraft_nickname": "Ryzzi00",
        "reset_url": "https://serverchichi.online/account/reset?t=ffdf14c79270bb06a5c72fc48db77859"
    },
    "sign": "306026a61a89f1117e5b421782e790491eb97e190c9554361b47a90ed87de297"
}
                

Параметры запроса

Поле Тип Описание
minecraft_nickname String Ник игрока
app_uuid String UUID приложения
sign String Хеш-подпись запроса

Параметры ответа

Поле Тип Описание
status String Статус запроса, успешен или нет
minecraft_nickname String Ник игрока
reset_url String Ссылка, по которой должен перейти игрок для сброса пароля
sign String Хеш-подпись ответа

PUT/account/create

Уровень доступа: Высокий


Пример запроса:

{
    "minecraft_nickname": "newplayer123",
    "password": "securepassword123",
    "app_uuid": "02a4ac16-e17f-40a4-abb1-70f99a522219",
    "sign": "7325849452b802d8be487a3239feb59602fe95647dd9064241dc32359a03a93d"
}
            

Этот запрос позволяет создать новый аккаунт игрока. Для этого нужно отправить PUT-запрос на следующий адрес:
https://api.serverchichi.online/v1/account/create



Пример ответа:

{
    "status": "success",
    "response": {
        "minecraft_nickname": "newplayer123",
        "user_id": 12345
    },
    "sign": "306026a61a89f1117e5b421782e790491eb97e190c9554361b47a90ed87de297"
}
                

Параметры запроса

Поле Тип Описание
minecraft_nickname String Ник игрока (1-16 символов)
password String Пароль аккаунта (минимум 6 символов)
app_uuid String UUID приложения
sign String Хеш-подпись запроса

Параметры ответа

Поле Тип Описание
status String Статус запроса, успешен или нет
minecraft_nickname String Ник игрока
user_id Number Уникальный ID созданного аккаунта
sign String Хеш-подпись ответа

Валидация

  • minecraft_nickname: Должен быть строкой длиной от 1 до 16 символов
  • password: Должен быть строкой длиной от 6 до 128 символов
  • app_uuid: Должен быть валидным UUID
  • sign: Должен быть валидной подписью для полей minecraft_nickname и password

Ошибки

  • 2001: Аккаунт с таким никнеймом уже существует
  • 105: Отсутствуют обязательные поля
  • 106: Неверные типы данных
  • 107: Неверная длина полей
  • 103: Неверная подпись

PUT/player/updateStats

Уровень доступа: Высокий


Пример запроса:

{
    "minecraft_nickname": "Ryzzi00",
    "player_group": 2,
    "total_playtime": 72000,
    "total_advancements": 15,
    "online_status": "yes",
    "app_uuid": "02a4ac16-e17f-40a4-abb1-70f99a522219",
    "sign": "7325849452b802d8be487a3239feb59602fe95647dd9064241dc32359a03a93d"
}
            

Этот запрос позволяет обновить статистику игрока на сервере. Для этого нужно отправить PUT-запрос на следующий адрес:
https://api.serverchichi.online/v1/player/updateStats



Пример ответа:

{
    "status": "success",
    "response": {
        "minecraft_nickname": "Ryzzi00",
        "updated": true
    },
    "sign": "306026a61a89f1117e5b421782e790491eb97e190c9554361b47a90ed87de297"
}
                

Параметры запроса

Поле Тип Описание
minecraft_nickname String Ник игрока
player_group Number Уровень SCH Plus (0, 1, 2)
total_playtime Number Общее время игры в игровых тиках (должно быть >= 0)
total_advancements Number Количество полученных достижений (должно быть >= 0)
online_status String Статус игрока в сети ("yes" или "no")
app_uuid String UUID приложения
sign String Хеш-подпись запроса

Параметры ответа

Поле Тип Описание
status String Статус запроса, успешен или нет
minecraft_nickname String Ник игрока
updated Boolean Подтверждение успешного обновления статистики
sign String Хеш-подпись ответа

Ошибки


Пример ошибки:
                
{
    status: "error",
    error_code: "101",
    error_description: "Invalid request method",
    request_fields_error: [
        minecraft_nickname
    ],
    request_detail: {
        method: "/v1/account/getResetURL",
        type: "POST",
        request: {
            app_uuid: "02a4ac16-e17f-40a4-abb1-70f99a522219",
            sign: "7279e798d8f8cc6c64f38f955f88b9188e6923eb6d75a562dbace92171889086"
        }
    }
}
            

Здесь вы найдете общие ошибки для всех методов, которые могут возникнуть при работе с API:

Код ошибки Описание
100 Метод API не существует
101 Неверный метод запроса
102 Версия API которую вы используете в запросе, устарела или не существует
103 Sign не совпадает, возможно ошибка в генерации
104 Отсутствуют поля запроса
105 Один или несколько обязательных полей запроса пропущены
106 Некорректное значение одного из полей
500 Внутренняя ошибка сервера
1000 Приложения с таким UUID не существует
1001 Ошибка в UUID приложения
2000 Игрок с таким ником не найден
2001 Аккаунт с таким ником уже существует