Открываем страницу…
Открываем страницу…
© 2026 Feylost

Неофициальный фанатский проект. Не связан с Wizards of the Coast.

API
Почтаcontact@feylost.ru
Обработка данныхСогласиеУсловия использования
FeylostВы потерялись в царстве фей
Войти

Для приложений и нейросетей

API Feylost

Управляйте своим аккаунтом, персонажами и листами через REST или подключите тот же набор возможностей как MCP-сервер.

OpenAPI JSONСписок методов
REST APIhttps://feylost.ru/api/v1
MCPhttps://feylost.ru/mcp
АвторизацияOAuth 2.1, PKCE S256

На этой странице

Первый запросАвторизацияРазрешенияМетоды APIMCP v2Версии данныхОшибки

Первый запрос

После OAuth-подключения передавайте access token в заголовке Authorization. Токены нельзя помещать в URL или журналы.

curl https://feylost.ru/api/v1/characters \
  -H "Authorization: Bearer <access_token>"

Ответы с пользовательскими данными имеют Cache-Control: no-store. Тело изменяющих запросов передаётся как JSON и ограничено 2 МБ.

Авторизация

API использует Authorization Code с обязательным PKCE S256 и Dynamic Client Registration. Discovery начинается с защищённого ресурса MCP и приводит клиента к OAuth-серверу Feylost.

Protected resource
/.well-known/oauth-protected-resource
Authorization server
/.well-known/oauth-authorization-server/api/auth
Audience
https://feylost.ru/mcp
Срок действия
Access token 1 час, refresh token до 30 дней

Разрешения

Пользователь видит и подтверждает каждый scope при подключении. Токен открывает только собственные данные и никогда не включает административный режим или эмуляцию пользователя.

profile:readУвидеть имя и email профиля
account:readПросматривать свой аккаунт, активные сессии и подключения
account:writeИзменять имя профиля и отзывать свои сессии и подключения
characters:readЧитать персонажей
characters:writeСоздавать, изменять, архивировать и удалять персонажей
sheets:readЧитать шаблоны и игровые листы
sheets:writeСоздавать, переименовывать, копировать, архивировать и удалять листы, изменять их механику
sheets:contentИзменять умения, инвентарь, оружие, броню и наборы заклинаний листов
sheets:runtimeИзменять игровое состояние, применения эффектов и проводить отдых
sheets:shareВключать и отключать публичные ссылки на листы
sheets:exportСоздавать PDF-версии листов
portraits:writeЗагружать, заменять и удалять портреты персонажей
catalog:readИскать заклинания, снаряжение и варианты персонажа в каталогах
catalog:writeУправлять добавленными вручную заклинаниями

Email, пароль, способы входа и удаление аккаунта изменяются только интерактивно на сайте. OAuth-клиент не может захватить учётную запись даже со scope account:write.

Методы API

Аккаунт

Профиль, активные сессии и подключённые приложения.

GET/profileПолучить краткий профиль
GET/auditПолучить журнал действий интеграций
GET/accountПрочитать аккаунт
PATCH/accountИзменить отображаемое имя
GET/account/sessionsПосмотреть активные сессии
DELETE/account/sessions/{id}Завершить сессию
GET/account/integrationsПосмотреть подключения
DELETE/account/integrations/{id}Отозвать подключение

Персонажи

Карточки персонажей и их архивное состояние.

GET/charactersПолучить список
POST/charactersСоздать персонажа
GET/characters/{id}Открыть персонажа
PATCH/characters/{id}Изменить поля персонажа
PATCH/characters/{id}/patchПрименить JSON Patch
DELETE/characters/{id}Удалить персонажа и его листы

Листы

Шаблоны и игровые листы: GUI хранит игровое состояние, а mechanics source задаёт типизированный проект правил.

GET/sheetsПолучить список
POST/sheetsСоздать или скопировать лист
GET/sheets/{id}Получить полный лист
PATCH/sheets/{id}Архивировать или вернуть лист
GET/sheets/{id}/sourceПолучить проект механики
PATCH/sheets/{id}/sourceЗаменить проект механики
PATCH/sheets/{id}/visibilityИзменить публичность
DELETE/sheets/{id}Удалить лист

Папки библиотеки

Вложенные папки для независимого размещения шаблонов и листов. Удаление папки и её подпапок сохраняет все записи в родительской папке. Перемещение не меняет механику и версию листа.

GET/sheet-foldersПолучить папки с parentId, датами и ID шаблонов и листов
POST/sheet-foldersСоздать папку: {name, parentId?}
PATCH/sheet-folders/{id}Переименовать или переместить: {version, name?, parentId?}
DELETE/sheet-folders/{id}Удалить папку: {version}
PATCH/sheets/{id}/folderПереместить: {folderId, previousFolderId}; null - корень библиотеки

Заклинания

Набор TTG и пользовательские дополнения текущего пользователя.

GET/spellsИскать в доступном каталоге
POST/spellsСоздать личное заклинание
GET/spells/{id}Открыть заклинание
PATCH/spells/{id}Изменить личное заклинание
DELETE/spells/{id}Удалить личное заклинание

MCP v2

Один endpoint поддерживает современный протокол MCP 2026-07-28 и stateless-совместимость со старыми клиентами. MCP умеет не только читать лист: отдельные инструменты изменяют умения, инвентарь, броню, оружие, наборы заклинаний, игровое состояние, эффекты и отдых, управляют публичной ссылкой, портретом и PDF.

Перед заполнением клиент может прочитать resources с полной документацией языка, правилами лаконичного текста и контекстом конкретного листа. Инструменты проверки компилируют механику и описания без записи, а сохраняющие операции требуют актуальную версию ресурса.

Механика
feylost://docs/mechanics-language
Описания
feylost://docs/narrative-language
Стиль
feylost://docs/authoring-style
Контекст листа
feylost://sheets/{id}/authoring-context

Версии и конфликты

Персонажи и листы содержат целочисленное поле version. Перед изменением клиент читает ресурс и отправляет полученную версию вместе с PATCH или DELETE. Если ресурс уже изменился, API отвечает HTTP 409.

Для изменения формул листа сначала вызовите GET /sheets/{id}/source, затем передайте оба CAS-маркера - version и baseSourceHash - вместе с новым source. Класс, редакция, владения, категории заклинаний и политика магии входят в атомарный проект механики; карточки сущностей и временные ресурсы игры сайт хранит отдельно.

{
  "version": 4,
  "baseSourceHash": "64 строчных hex-символа из GET",
  "source": "# @fey-project 2\n# @fey-file identity \"персонаж.fey\"\nкласс = \"Воин\"\n..."
}

JSON Patch поддерживает add, replace, remove и test, но применяется только к карточкам персонажей. Проект механики заменяется целиком через source-endpoint.

Ошибки

400Неверные данные или операция
401Токен отсутствует, истёк или отозван
403Не выдан необходимый scope
404Ресурс не найден или принадлежит другому пользователю
409Конфликт version
413JSON больше 2 МБ
{
  "error": {
    "code": "validation_error",
    "message": "Проверьте заполнение полей",
    "issues": [{ "path": "name", "message": "Обязательное поле" }]
  }
}

Нужен диалог вместо HTTP?

Подключите https://feylost.ru/mcp к ChatGPT, Codex, Claude или другому MCP-клиенту. Разрешения и модель доступа останутся теми же.

Открыть подключения
Feylost
Загружаем страницу…