API-довідник

API Цифрового мозку

Усе, що є у Web UI та через MCP, доступне і через чистий REST: нотатки, три режими пошуку, граф зв'язків, Learn pipeline і темпоральні запити. JSON на вхід і вихід, ключ у заголовку.

Base URLhttps://api.digital-brain.io/api/v1
Версіяv1 · JSON
АвторизаціяX-API-Key · Bearer

Старт

Усі 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.

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-файлів.

POST/notesX-API-Key

Створити нотатку. Контент автоматично розбивається на чанки.

Тіло запиту
{
  "title": "ADR-012: міграції в бінарник",
  "content": "Вбудовуємо міграції через //go:embed…",
  "tags": ["adr", "migrations"],
  "priority": 7,
  "file_path": "adr/012.md"
}
Відповідь · 201
{
  "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"
}
GET/notesX-API-Key

Список нотаток із пагінацією.

ПараметрТипОпис
pageintНомер сторінки (з 1).
limitintРозмір сторінки.
GET/notes/{id}

Отримати нотатку за UUID.

PUT/notes/{id}

Частково оновити нотатку.

DELETE/notes/{id}

М'яке видалення (зворотне).

GET/notes/deleted

Кошик — список видалених нотаток.

POST/notes/{id}/restore

Відновити видалену нотатку.

POST/sync

Batch-upsert файлів: парсинг frontmatter і [[wikilinks]].

Граф і зв'язки

Типізовані зв'язки між нотатками: reference, extends, contradicts, inspired_by, example_of.

GET/graph

Увесь граф сховища: вузли + ребра.

GET/notes/{id}/graph

Вхідні та вихідні зв'язки нотатки.

POST/links

Створити явний типізований зв'язок.

Тіло запиту
{
  "source_id": "a3f1…",
  "target_id": "b7c2…",
  "link_type": "extends",
  "weight": 1.0
}
DELETE/links/{id}

Видалити зв'язок.

Чанки

Контент авточанкується при створенні/оновленні. Ці ендпоінти дають ручний контроль для воркерів і кастомного RAG.

POST/notes/{id}/chunks

Upsert чанків нотатки.

PUT/chunks/{id}/embedding

Оновити вектор окремого чанка.

GET/embeddings/stale

Нотатки з застарілими/відсутніми векторами (для воркера).

PUT/notes/{id}/embedding

Записати вектор нотатки.

Теги

GET/tags

Усі теги сховища.

GET/tags/{name}/notes

Нотатки за конкретним тегом.

POST/notes/{id}/suggest-tags

LLM-підказки тегів для нотатки.

Learn pipeline

LLM-куратор розбиває сирий текст на факти, шукає схожі й вирішує CREATE / EXTEND / CONTRADICT / LINK. Доступний лише коли заданий LEARN_API_KEY або OPENAI_API_KEY.

POST/learn?stream=1

Режими: plan (запропонувати дії), execute (виконати план), auto (план + виконання впевнених дій), apply_links, rebuild_links. З ?stream=1 — SSE-потік подій.

Тіло запиту
{
  "text": "сирий markdown або проза…",
  "mode": "auto",
  "sensitivity": "medium"
}
GET/learn/runs

Аудит-лог операцій Learn.

GET/learn/runs/{id}

Деталі конкретного запуску (план + результат).

POST/notes/{id}/reanalyze

Перебудувати авто-зв'язки для нотатки.

Темпоральні запити

Історичний стан нотаток через ревізії. Параметр at — мітка RFC3339.

GET/notes/{id}/at?at=…

Стан нотатки на момент часу.

GET/notes/{id}/history

Повна історія ревізій.

GET/notes/{id}/graph-at?at=…

Стан графа на момент часу.

GET/search/at?at=…

Текстовий пошук у минулому стані.

GET/vault/snapshot?at=…

Список нотаток, що існували на момент часу.

Vaults, MCP-токени і доступ

Кожне сховище ізольоване й має власний доступ. MCP-токени видаються на конкретне сховище й повертаються лише раз.

POST/vaults

Створити сховище.

GET/vaults

Список ваших сховищ.

DELETE/vaults/{id}

Видалити сховище (каскадно).

POST/mcp/tokens

Видати MCP Bearer-токен (повертається один раз).

GET/mcp/tokens

Список токенів (із префіксами, без секрету).

DELETE/mcp/tokens/{id}

Відкликати токен.

GET/mcp/info

Інфо про MCP-сервер і прив'язку.

GET/healthбез авторизації

Статус сервісу.

MCP-інструменти

Сервер віддає набір інструментів через /mcp (Bearer) для Claude Desktop, Cursor, Claude Code. Частина реєструється лише за наявності ембедера / Learn-ключа.

search_notesпошук нотаток (text/vector/hybrid)
get_noteотримати нотатку за UUID
add_noteстворити нотатку, авточанкінг
update_noteчастково оновити нотатку
delete_note · restore_noteм'яке видалення і відновлення
list_deleted_notesкошик видалених нотаток
similar_notesсемантично схожі нотатки
note_graph · full_graphзв'язки нотатки / увесь граф
graph_ragtop-N + сусіди графа
create_linkтипізований зв'язок між нотатками
list_tags · notes_by_tagтеги і нотатки за тегом
chunk_searchпошук на рівні чанків
sync_notesbatch-upsert нотаток
get_note_at · note_historyтемпоральні запити
reanalyze_note · suggest_tagsавто-зв'язки і підказки тегів
learn_textкуратор: декомпозиція, дедуп, авто-лінк
record_interactionauto-capture: лог діалогу як знання

CLI

Бінарник rdb керує сервером, міграціями і нотатками.

КомандаОпис
rdb serveЗапустити HTTP API-сервер.
rdb migrateЗастосувати/відкотити міграції.
rdb bootstrapІніціалізувати сховище і записати креденшіали.
rdb vaultКерування сховищами (list / create / delete).
rdb notesCRUD нотаток, імпорт .md, пошук.
rdb mcp-stdioMCP через stdin/stdout для claude mcp add.

Коди помилок

Поле code у тілі помилки дозволяє обробляти кейси програмно.

codeЗначення
UNAUTHORIZEDНевірний або відсутній ключ.
VAULT_NOT_FOUNDСховище не існує.
NOT_FOUNDРесурс не знайдено.
TITLE_CONFLICTКонфлікт титулу при відновленні.
EMBEDDER_UNAVAILABLEВекторний пошук без налаштованого ембедера.
LEARN_UNAVAILABLELearn вимкнений (немає ключа).
LEARN_FAILEDПомилка Learn pipeline.