Старт
Усі REST-ендпоінти мають префікс /api/v1 і працюють із JSON. Сервер слухає порт 8080 (налаштовується через PORT). Кожен запит (крім /health) потребує API-ключа в заголовку.
curl -s https://api.digital-brain.io/api/v1/notes?limit=5 \ -H "X-API-Key: $DB_API_KEY"
Автентифікація
REST-ендпоінти автентифікуються ключем у заголовку X-API-Key. Для транспорту MCP використовується Bearer-токен.
REST
Секретний API-ключ на всі REST-ендпоінти.
X-API-Key: <key>MCP (Bearer)
Per-vault токен для транспорту /mcp.
Конвенції
Тіла запитів і відповідей — JSON. Списки пагінуються через ?page=&limit=. Часові мітки — у форматі RFC3339. Ідентифікатори — UUID.
{
"error": "note not found",
"code": "NOT_FOUND"
}
| Код | Значення |
|---|---|
| 200 · 201 · 204 | Успіх (отримано / створено / без тіла) |
| 400 | Помилка валідації |
| 401 | Невірний або відсутній ключ |
| 404 | Ресурс не знайдено |
| 409 | Конфлікт стану (напр., титул при відновленні) |
| 503 | Ембедер / Learn недоступні |
Нотатки
Повний CRUD із м'яким видаленням і відновленням, плюс batch-синхронізація з Markdown-файлів.
Створити нотатку. Контент автоматично розбивається на чанки.
{
"title": "ADR-012: міграції в бінарник",
"content": "Вбудовуємо міграції через //go:embed…",
"tags": ["adr", "migrations"],
"priority": 7,
"file_path": "adr/012.md"
}
{
"id": "a3f1c8e2-…",
"title": "ADR-012: міграції в бінарник",
"tags": ["adr", "migrations"],
"priority": 7,
"embedding_current": false,
"created_at": "2026-06-22T10:00:00Z",
"updated_at": "2026-06-22T10:00:00Z"
}
Список нотаток із пагінацією.
| Параметр | Тип | Опис |
|---|---|---|
| page | int | Номер сторінки (з 1). |
| limit | int | Розмір сторінки. |
Отримати нотатку за UUID.
Частково оновити нотатку.
М'яке видалення (зворотне).
Кошик — список видалених нотаток.
Відновити видалену нотатку.
Batch-upsert файлів: парсинг frontmatter і [[wikilinks]].
Пошук
Три режими в одному ендпоінті: text (повнотекстовий), vector (семантичний), hybrid (text×0.3 + vector×0.7). Плюс GraphRAG для розширеного контексту.
Пошук нотаток у вибраному режимі.
| Параметр | Тип | Опис |
|---|---|---|
| q * | string | Запит (обов'язковий для text / hybrid). |
| mode | enum | text · vector · hybrid (типово text). |
| limit | int | 1–50 (типово 10). |
| embedding | base64 | Готовий вектор; інакше сервер ембедить запит сам. |
{
"mode": "hybrid",
"total": 1,
"results": [
{
"id": "a3f1c8e2-…",
"title": "ADR-012: міграції в бінарник",
"excerpt": "Вбудовуємо міграції через //go:embed…",
"tags": ["adr", "migrations"],
"final_score": 0.87
}
]
}
Пошук на рівні чанків — гранулярний RAG.
Top-N семантично схожих нотаток + їхні сусіди в графі.
Семантично схожі нотатки (за векторами).
Граф і зв'язки
Типізовані зв'язки між нотатками: reference, extends, contradicts, inspired_by, example_of.
Увесь граф сховища: вузли + ребра.
Вхідні та вихідні зв'язки нотатки.
Створити явний типізований зв'язок.
{
"source_id": "a3f1…",
"target_id": "b7c2…",
"link_type": "extends",
"weight": 1.0
}
Видалити зв'язок.
Чанки
Контент авточанкується при створенні/оновленні. Ці ендпоінти дають ручний контроль для воркерів і кастомного RAG.
Upsert чанків нотатки.
Оновити вектор окремого чанка.
Нотатки з застарілими/відсутніми векторами (для воркера).
Записати вектор нотатки.
Теги
Усі теги сховища.
Нотатки за конкретним тегом.
LLM-підказки тегів для нотатки.
Learn pipeline
LLM-куратор розбиває сирий текст на факти, шукає схожі й вирішує CREATE / EXTEND / CONTRADICT / LINK. Доступний лише коли заданий LEARN_API_KEY або OPENAI_API_KEY.
Режими: plan (запропонувати дії), execute (виконати план), auto (план + виконання впевнених дій), apply_links, rebuild_links. З ?stream=1 — SSE-потік подій.
{
"text": "сирий markdown або проза…",
"mode": "auto",
"sensitivity": "medium"
}
Аудит-лог операцій Learn.
Деталі конкретного запуску (план + результат).
Перебудувати авто-зв'язки для нотатки.
Темпоральні запити
Історичний стан нотаток через ревізії. Параметр at — мітка RFC3339.
Стан нотатки на момент часу.
Повна історія ревізій.
Стан графа на момент часу.
Текстовий пошук у минулому стані.
Список нотаток, що існували на момент часу.
Vaults, MCP-токени і доступ
Кожне сховище ізольоване й має власний доступ. MCP-токени видаються на конкретне сховище й повертаються лише раз.
Створити сховище.
Список ваших сховищ.
Видалити сховище (каскадно).
Видати MCP Bearer-токен (повертається один раз).
Список токенів (із префіксами, без секрету).
Відкликати токен.
Інфо про MCP-сервер і прив'язку.
Статус сервісу.
MCP-інструменти
Сервер віддає набір інструментів через /mcp (Bearer) для Claude Desktop, Cursor, Claude Code. Частина реєструється лише за наявності ембедера / Learn-ключа.
CLI
Бінарник rdb керує сервером, міграціями і нотатками.
| Команда | Опис |
|---|---|
| rdb serve | Запустити HTTP API-сервер. |
| rdb migrate | Застосувати/відкотити міграції. |
| rdb bootstrap | Ініціалізувати сховище і записати креденшіали. |
| rdb vault | Керування сховищами (list / create / delete). |
| rdb notes | CRUD нотаток, імпорт .md, пошук. |
| rdb mcp-stdio | MCP через stdin/stdout для claude mcp add. |
Коди помилок
Поле code у тілі помилки дозволяє обробляти кейси програмно.
| code | Значення |
|---|---|
| UNAUTHORIZED | Невірний або відсутній ключ. |
| VAULT_NOT_FOUND | Сховище не існує. |
| NOT_FOUND | Ресурс не знайдено. |
| TITLE_CONFLICT | Конфлікт титулу при відновленні. |
| EMBEDDER_UNAVAILABLE | Векторний пошук без налаштованого ембедера. |
| LEARN_UNAVAILABLE | Learn вимкнений (немає ключа). |
| LEARN_FAILED | Помилка Learn pipeline. |