Для Hermes и интеграций
API v1
Токен: кабинет → Агенты или «API-токены». Заголовок Authorization: Bearer ort_…. Полное значение один раз. Не передавайте токен в query string и не встраивайте его в браузерный JS.
Базовый URL
/api/v1
Права токена (scopes)
read— Чтение (бренды, посты, очередь, чат, документация API)write— Календарь, черновик поста, ack чатаrun— Запуск конвейера и выпуск черновика в очередь
Полный текст для агента (тот же файл отдаёт GET /api/v1/docs с Bearer):
В репозитории: docs/HERMES-API.md. Машинный список: GET /catalog, OpenAPI: GET /openapi.
| Метод | Путь | Scope | Назначение |
|---|---|---|---|
| GET | /me |
read | Профиль владельца токена, scopes, привязка к бренду |
| GET | /meta |
read | Версия платформы, лимит, сети, типы постов, статусы |
| GET | /catalog |
read | Список эндпоинтов этого API |
| GET | /docs |
read | Полная документация Markdown для Hermes |
| GET | /openapi |
read | Черновик OpenAPI 3 (JSON) |
| GET | /status |
read | Флаги платформы без секретов (maintenance, kill-switch) |
| GET | /health |
— | Живость платформы: БД, флаги, агенты онлайн |
| GET | /healthz |
— | Алиас GET /health |
| GET | /billing |
read | Счёт, тариф, остаток токенов API владельца токена |
| GET | /networks |
read | Каталог соцсетей: slug, лимит, live/stub — без кредов |
| GET | /content-types |
read | Типы контента конвейера |
| GET | /compliance/labels |
read | Коды гвардов и русские подписи |
| GET | /tenants |
read | Бренды, доступные этому токену |
| GET | /tenants/{id} |
read | Карточка бренда (без биллинг-секретов) |
| GET | /tenants/{id}/stats |
read | Счётчики постов и очереди бренда |
| GET | /stats |
read | Счётчики текущего/указанного бренда |
| GET | /kit |
read | Бренд-кит (голос, табу, CTA). Не содержит токенов каналов |
| GET | /calendar |
read | Слоты календаря |
| POST | /calendar |
write | Добавить слот (нужна роль editor) |
| DELETE | /calendar/{id} |
write | Удалить слот |
| GET | /channels |
read | Статус каналов: сеть, dry-run, заполнен ли кред. Payload не отдаётся |
| GET | /posts |
read | Лента постов: tenant_id, status, network, limit, after_id |
| GET | /posts/{id} |
read | Карточка поста |
| GET | /posts/{id}/log |
read | Разобранный agent_log |
| POST | /posts |
write | Черновик Hermes (status=quarantine, не публикует) |
| POST | /posts/{id}/release |
run | Черновик → очередь публикации |
| POST | /posts/{id}/retry |
run | failed → очередь |
| GET | /queue |
read | Очередь publish_jobs |
| GET | /queue/{id} |
read | Одна задача очереди |
| POST | /run |
run | Запуск конвейера панели |
| GET|POST | /heartbeat |
— | Пульс; обновляет last_seen. Scope не требуется |
| GET | /agent |
read | Конфиг карточки агента, привязанной к токену |
| GET | /agents |
read | Все агенты владельца токена (команда) |
| POST | /agents |
write | Создать агента команды |
| GET | /agents/{id} |
read | Карточка агента команды |
| PATCH | /agents/{id} |
write | Изменить карточку агента |
| DELETE | /agents/{id} |
write | Удалить агента и отозвать его токен |
| GET | /agents/{id}/skills |
read | Скилы агента |
| POST | /agents/{id}/skills |
write | Привязать скил к агенту |
| GET | /agents/{id}/memory |
read | Память агента |
| GET|POST | /agents/{id}/heartbeat |
— | Пульс конкретного агента (last_seen) |
| POST | /agents/{id}/token |
write | Выдать API-токен агенту (секрет один раз) |
| GET | /skill |
read | Markdown skill (AGENTS.md) связанного агента |
| GET | /skills |
read | Скилы связанного агента |
| POST | /skills |
write | Добавить скил связанному агенту |
| GET | /memory |
read | Память связанного агента |
| POST | /memory |
write | Добавить запись в память (опционально agent_id) |
| DELETE | /memory/{id} |
write | Удалить запись памяти |
| GET | /lessons |
read | Уроки с панели |
| POST | /lessons |
write | Добавить урок связанному агенту |
| GET | /training |
read | Датасет ShareGPT (JSON-массив) |
| POST | /training |
write | Добавить урок в датасет связанного агента |
| GET | /training/jsonl |
read | Тот же датасет, application/x-ndjson |
| GET | /events |
read | Шина событий: after_id, type, profile, limit |
| POST | /events |
write | Положить событие в шину |
| GET | /events/stream |
read | SSE-поток новых событий (короткий long-poll) |
| GET | /profiles |
read | Профили Hermes (= агенты runtime=hermes и slug) |
| POST | /gateway/{profile}/restart |
run | Команда рестарта профиля (событие + задача, без exec) |
| GET|POST|DELETE | /cron |
read/write | Реестр cron-задач агента |
| GET | /logs/{profile} |
read | Последние логи профиля |
| GET | /tasks/{id}/status |
read | Статус задачи (agent_tasks или очередь публикации) |
| GET | /chat |
read | История чата с панелью |
| GET | /chat/pending |
read | Непрочитанные сообщения человека |
| POST | /chat/reply |
read | Ответ Hermes (text, message_id) |
| POST | /chat/ack |
read | Пометить pending прочитанным без текста |
| POST | /chat/push |
read | Сообщение агента в панель без pending |
Лимит запросов в минуту задаётся в Настройках. Креды каналов и ключ ИИ API не возвращает. Ответ JSON {ok, data|error}, кроме /training/jsonl и /events/stream.