docsctx

API-справка

REST API доступен на порту 8901 (в браузерных примерах — через прокси сайта на /api/*). MCP-сервер — на 8902 (/mcp).
Эндпоинты
МетодПутьAuthНазначение
GET/v1/libraries?query=…Каталог библиотек или поиск по slug/имени.
GET/v1/docs?library=…&query=…&tokens=…&version=…Bearer*Главный эндпоинт: собранный markdown-контекст под токен-бюджет + правила библиотеки.
GET/llms/{slug}.txt · /llms/{slug}-full.txtЭкспорт документации библиотеки в формате llmstxt.org: оглавление и полный дамп.
POST/v1/librariesДобавить библиотеку и запустить индексацию (админский сценарий).
POST/v1/libraries/{slug}/syncПере-индексировать источник.
POST/v1/reportЖалоба агента на чанк → флаг для модерации.
POST/auth/login | /auth/registerСессия для личного кабинета (cookie).
GET/account/keys · POST · DELETE /{id}cookieУправление API-ключами пользователя (ключ показывается целиком один раз).
GET/account/usagecookieПотребление по ключам: всего, за неделю, по библиотекам, промахи.
GET/admin/*admin cookieАдмин-API: библиотеки, версии, чанки, сниппеты, задачи, настройки.
Примеры
# 1. найти библиотеку
curl "http://host:8901/v1/libraries?query=fast"

# 2. получить контекст для агента (с ключом)
curl "http://host:8901/v1/docs?library=fastapi&query=async+dependency&tokens=6000" \
  -H "Authorization: Bearer dctx_…"

# 3. зафиксировать версию
curl "http://host:8901/v1/docs?library=react&version=18.3.1&query=use+effect+cleanup" \
  -H "Authorization: Bearer dctx_…"

# 4. жалоба агента на неверный фрагмент
curl -X POST "http://host:8901/v1/report" -H "Content-Type: application/json" \
  -d '{"library":"react","chunk_id":1234,"reason":"пример для другой версии"}'
Формат ответа /v1/docs
{
  "library": "fastapi",
  "version": "0.115.0",        // версия, реально отданная поиском
  "tokens_used": 4213,
  "chunks": [ {"title": "…", "score": 0.83, "source_url": "…"} ],
  "content": "## Library rules\n\n…\n\n### Раздел\n\nтекст чанка…"
}
content начинается с правил библиотеки (если заданы), далее чанки в порядке релевантности с указанием источника у каждого фрагмента.