ERIC REST API
Создаёт кампанию
Request body
Название кампании
Жанр
Краткое содержание
Examples
minimal
{"title": "Shards of Aether"}full
{"title": "Shards of Aether", "genre": "dark fantasy", "pitch": "Star shards corrupt the realm"}Responses
Кампания создана
Body
id кампании
Название кампании
Жанр кампании
Короткое описание
Время создания кампании
Обязательное поле title не заполнено
Создает партию с привязкой к кампании
Request body
id кампании
Название партии
Цели партии
Сцены
Examples
minimal
{
"campaign_id": "64f1c3f4e1a24d3c8a9b1234",
"title": "Party 1 — The Heist"
}full
{
"campaign_id": "64f1c3f4e1a24d3c8a9b1234",
"title": "Party 1 — The Heist",
"goals": ["steal ledger", "escape"],
"scenes": [
{
"title": "Ambush on the bridge",
"order": "1",
"blocks": [
{ "type": "text", "content": { "content": "Timer: 6 ticks" } },
{ "type": "ref", "ref": { "provider": "dnd5eapi", "refType": "monsters", "index": "animated-armor" } }
]
},
{ "title": "Roof chase", "order": "2", "blocks": [] }
]
}
Responses
Партия успешно создана
Body
id партии
id кампании
название партии
цели
сцены внутри партии
дата и время создания партии
Examples
{
"id": "68fcc0590e311a01d7610426",
"campaign_id": "64f1c3f4e1a24d3c8a9b1234",
"title": "Party 1 — The Heist",
"goals": "\"steal ledger\", \"escape\"",
"scenes": "[]",
"created_at": "2025-10-25T15:45:45.586220"
}Обязательное поле title не заполнено
campaign_id не найден
{party_id}/npcsСоздает NPC
Path variables
ID партии
Request body
Имя NPC
Описание роли
Внешность
Черты характера
Заметки мастера
Examples
minimal
{ "name": "Vera the Harper" }full
{
"name": "Vera the Harper",
"role": "ally",
"appearance": "scar across eyebrow, calm voice",
"traits": ["quick wit", "discreet"],
"notes": "hates cultists"
}Responses
NPC создан
Body
id NPC
id партии
id кампании
имя NPC
роль
внешний вид
характеристики
заметки
дата и время создания
Examples
{
"id": "68f7a123c1ff7d44bcc54abc",
"party_id": "68f7a111c1ff7d44bcc54111",
"campaign_id": "68f79999c1ff7d44bcc54999",
"name": "Vera the Harper",
"role": "ally",
"appearance": "scar across eyebrow, calm voice",
"traits": ["quick wit", "discreet"],
"notes": "hates cultists"
"created_at": "2025-10-20T12:34:56.000Z"
}Обязательное поле name не заполнено
Body
Examples
{ "error": "`name` is required" }
party_id не найден
Body
Examples
{ "error": "Party not found" }Подгружает данные из https://www.dnd5eapi.co/api/2014/monsters. Поддерживает фильтр по CR через параметр challenge_rating (одно значение, несколько значений или строка со списком).
Request parameters
Сложность монстра
Responses
Данные о монстрах получены
Body
Количество элементов
Массив монстров
Examples
without filters
{
"count": 325,
"results": [
{ "index": "aboleth", "name": "Aboleth", "url": "/api/2014/monsters/aboleth" }
]
}with challenge rate
{
"count": 42,
"results": [
{ "index": "animated-armor", "name": "Animated Armor", "url": "/api/2014/monsters/animated-armor" }
]
}Неправильный запрос
Body
Examples
{
"error": "Network error calling D&D API",
"detail": "HTTPSConnectionPool(... timeout=10)"
}
Ошибка сети
{index}Подгружает данные из https://www.dnd5eapi.co/api/2014/rule-sections.
Path variables
Индекс раздела правил. Примеры: ability-checks, movement, traps
Responses
Данные о правилах получены
Body
Examples
{
"index": "ability-checks",
"name": "Ability Checks",
"url": "/api/2014/rule-sections/ability-checks",
"desc": [
"An ability check tests a character's or monster's innate talent and training...",
"To make an ability check, roll a d20 and add the relevant modifier..."
]
}
Неправильный запрос
Ошибка сети
Body
Examples
{
"error": "Network error calling D&D API",
"detail": "HTTPSConnectionPool(... timeout=10)"
}
Добавляет элемент в избранное
Request body
Тип элемента
Идентификатор в справочнике
Заметка мастера
Привязка к кампании
Examples
minimal
{ "kind": "spell", "index": "acid-splash" }with describtion
{ "kind": "monster", "index": "animated-armor", "description": "Броня для засады на мосту" }with campaign
{ "campaign_id": "68f798689c1ff7d44bcc54e7", "kind": "item", "index": "alchemy-jug" }
Responses
Body
id записи
Тип элемента
Идентификатор в справочнике
Описание
Id кампании
Дата и время сохранения
Examples
{
"id": "68f7aa11c1ff7d44bcc54fff",
"kind": "monster",
"index": "animated-armor",
"description": "Броня для засады на мосту",
"campaign": "68f798689c1ff7d44bcc54e7",
"created_at": "2025-10-21T12:34:56.000Z"
}
Body
Examples
{ "error": "kind and index are required" }Body
Examples
{
"error": "Campaign not found",
"detail": "If you pass campaignId, it must refer to an existing document."
}Упорядоченный фрагмент: содержит заголовок (title), порядковый номер в партии (order) и список блоков (blocks) из SceneBlock, определяющих содержание сцены (заметки, элементы из справочника, NPC).
Название
Порядковый номер в партии
Список блоков, определяющих содержание сцены
Атомарный элемент сцены: блок одного из типов text / ref / npc. Для text используется поле content, для ref — объект ref, для npc — npcId; остальные поля при этом пусты.
text, ref, npc
Заметки автора
Ссылка на объект из справочника (монстр, заклинание, предмет, правило и т. п.).
id npc