Старт
Усі REST-ендпоінти мають префікс /api/v1 і працюють із JSON. Дані живуть у сховищах (vault): ключ акаунта разом із X-Vault-ID вибирає, у якому працювати. Ключ акаунта й id сховища — у кабінеті: «Інтеграції» → «Доступ до API»; там же — рядки export з вашими значеннями для змінних DB_API_KEY і DB_VAULT_ID з прикладів нижче.
curl -s https://api.digital-brain.io/api/v1/vaults \ -H "X-API-Key: $DB_API_KEY" curl -s https://api.digital-brain.io/api/v1/notes?limit=5 \ -H "X-API-Key: $DB_API_KEY" \ -H "X-Vault-ID: $DB_VAULT_ID"
Автентифікація
REST-ендпоінти автентифікуються ключем у заголовку X-API-Key: ключ акаунта (з X-Vault-ID) або ключ сховища dbk_…, який уже знає своє сховище. Для MCP — той самий ключ сховища або MCP-токен у Authorization: Bearer.
Ключ акаунта
Усі сховища акаунта; сховище для даних — у X-Vault-ID. Тримайте лише на сервері.
Ключ сховища
Одне сховище й обрані права: read, write, learn. Видається в кабінеті («Інтеграції») або POST /vaults/{id}/keys.
MCP (Bearer)
MCP-токен (повний доступ до одного сховища) або ключ сховища — тоді агент бачить лише інструменти його прав.
Authorization: Bearer <token>Конвенції
Тіла запитів і відповідей — 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-інструменти
https://api.digital-brain.io/mcp — MCP-сервер (streamable HTTP) для Claude Code, Claude Desktop, Cursor та інших клієнтів. Кабінет генерує готовий конфіг для кожного клієнта в один клік; вручну — так:
claude mcp add --transport http digital-brain --scope user \ https://api.digital-brain.io/mcp --header "Authorization: Bearer $TOKEN"
{ "mcpServers": { "digital-brain": {
"url": "https://api.digital-brain.io/mcp",
"headers": { "Authorization": "Bearer <TOKEN>" } } } }
Ключ сховища з правом лише read замість токена дає агенту пам'ять, яку він не може змінити. Кожен інструмент позначений для клієнта як «лише читання» чи «змінює дані», тож читання можна дозволяти без підтвердження.
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 | Невірний або відсутній ключ. |
| MISSING_VAULT | Ключ акаунта без X-Vault-ID — візьміть id з GET /vaults. |
| INSUFFICIENT_SCOPE | Ключ сховища не має потрібного права (read / write / learn). |
| RATE_LIMITED | Ліміт запитів; повторіть через Retry-After секунд. |
| STORAGE_LIMIT_REACHED | Сховище заповнене; видалене лежить у кошику й займає місце, доки кошик не очищено. |
| VAULT_NOT_FOUND | Сховище не існує. |
| NOT_FOUND | Ресурс не знайдено. |
| TITLE_CONFLICT | Конфлікт титулу при відновленні. |
| EMBEDDER_UNAVAILABLE | Векторний пошук без налаштованого ембедера. |
| LEARN_UNAVAILABLE | Learn вимкнений (немає ключа). |
| LEARN_FAILED | Помилка Learn pipeline. |