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. Дані живуть у сховищах (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. Тримайте лише на сервері.

X-API-Key + X-Vault-ID

Ключ сховища

Одне сховище й обрані права: read, write, learn. Видається в кабінеті («Інтеграції») або POST /vaults/{id}/keys.

X-API-Key: dbk_…

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

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-інструменти

https://api.digital-brain.io/mcp — MCP-сервер (streamable HTTP) для Claude Code, Claude Desktop, Cursor та інших клієнтів. Кабінет генерує готовий конфіг для кожного клієнта в один клік; вручну — так:

Claude Code
claude mcp add --transport http digital-brain --scope user \
  https://api.digital-brain.io/mcp --header "Authorization: Bearer $TOKEN"
Cursor · ~/.cursor/mcp.json
{ "mcpServers": { "digital-brain": {
  "url": "https://api.digital-brain.io/mcp",
  "headers": { "Authorization": "Bearer <TOKEN>" } } } }

Ключ сховища з правом лише read замість токена дає агенту пам'ять, яку він не може змінити. Кожен інструмент позначений для клієнта як «лише читання» чи «змінює дані», тож читання можна дозволяти без підтвердження.

search_notesпошук нотаток (text/vector/hybrid)
get_noteотримати нотатку за UUID
list_notesостанні нотатки без пошукового запиту
upsert_note_by_external_id · get_note_by_external_idнотатки за вашим id
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: лог діалогу як знання
learn_topic · synthesize_from_vault · reconstruct_notesнавчання за темою, вижимка з нотаток, переписування
consolidate_vaultзвіт про дублікати (нічого не змінює)

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Невірний або відсутній ключ.
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_UNAVAILABLELearn вимкнений (немає ключа).
LEARN_FAILEDПомилка Learn pipeline.