⚡ Beta
Local API
HedyOS запускает локальный HTTP-сервер на 127.0.0.1, который позволяет внешним приложениям управлять записью, читать транскрипции и взаимодействовать с приложением.
Включение
Настройки → Local API → переключатель Включить Local API.
После включения приложение выбирает свободный порт в диапазоне 49152–49162 и отображает его в строке статуса.
Аутентификация
Каждый запрос требует токен в заголовке:
Authorization: Bearer <ваш токен>
Токен генерируется автоматически при первом включении и хранится в Keychain. Скопировать или перегенерировать: Настройки → Local API → API Token.
Endpoints
Статус и управление
| Метод | Path | Описание |
|---|---|---|
GET | /api/v1/status | Статус приложения и записи |
POST | /api/v1/recording/start | Начать запись |
POST | /api/v1/recording/stop | Остановить запись |
Пример ответа /api/v1/status:
{
"status": "ok",
"recording": true,
"state": "recording"
}
Сессии
| Метод | Path | Описание |
|---|---|---|
GET | /api/v1/sessions | Список всех сессий |
GET | /api/v1/sessions/search?q=текст | Поиск по сессиям |
GET | /api/v1/sessions/:id | Данные конкретной сессии |
PUT | /api/v1/sessions/:id | Обновить сессию (название, проект) |
DELETE | /api/v1/sessions/:id | Удалить сессию |
Проекты
| Метод | Path | Описание |
|---|---|---|
GET | /api/v1/projects | Список проектов |
POST | /api/v1/projects | Создать проект |
PUT | /api/v1/projects/:id | Обновить проект |
DELETE | /api/v1/projects/:id | Удалить проект |
Текущая запись
| Метод | Path | Описание |
|---|---|---|
GET | /api/v1/transcript/current | Текущая транскрипция (live) |
GET | /api/v1/transcript/flags | Флаги (отмеченные фразы) |
PUT | /api/v1/transcript/flags | Переключить флаг фразы |
GET | /api/v1/transcript/groups/:id | Группа фраз |
POST | /api/v1/transcript/insert | Вставить текст в транскрипцию |
PUT | /api/v1/transcript/phrases/:id | Обновить фразу |
DELETE | /api/v1/transcript/phrases/:id | Удалить фразу |
Настройки и устройства
| Метод | Path | Описание |
|---|---|---|
GET | /api/v1/config | Конфигурация приложения |
GET | /api/v1/settings | Настройки приложения |
PUT | /api/v1/settings | Изменить настройки |
GET | /api/v1/devices | Список аудиоустройств |
PUT | /api/v1/devices | Выбрать устройства |
GET | /api/v1/providers | Доступные STT-провайдеры |
PUT | /api/v1/providers/overrides | Переопределить провайдера |
PUT | /api/v1/language | Установить язык распознавания |
PUT | /api/v1/translation-language | Установить язык перевода |
Скриншоты
| Метод | Path | Описание |
|---|---|---|
PUT | /api/v1/screenshot/mode | Режим захвата скриншота |
POST | /api/v1/screenshot | Захватить скриншот сейчас |
GET | /api/v1/screenshots/:id | Получить скриншот по ID |
Whisper (локальные модели)
| Метод | Path | Описание |
|---|---|---|
GET | /api/v1/whisper/models | Список доступных моделей |
POST | /api/v1/whisper/models/download | Скачать модель |
DELETE | /api/v1/whisper/models/:name | Удалить модель |
Транскрипция файлов
| Метод | Path | Описание |
|---|---|---|
POST | /api/v1/transcribe | Запустить транскрипцию файла |
GET | /api/v1/transcribe/:id | Статус задачи транскрипции |
События
| Метод | Path | Описание |
|---|---|---|
GET | /api/v1/events | WebSocket: события в реальном времени |
Пример использования
# Получить статус
curl http://127.0.0.1:49152/api/v1/status \
-H "Authorization: Bearer ваш_токен"
# Начать запись
curl -X POST http://127.0.0.1:49152/api/v1/recording/start \
-H "Authorization: Bearer ваш_токен"
# Получить текущую транскрипцию
curl http://127.0.0.1:49152/api/v1/transcript/current \
-H "Authorization: Bearer ваш_токен"
Коды ошибок
| Код | Причина |
|---|---|
401 | Заголовок Authorization отсутствует |
403 | Неверный токен |
404 | Сессия не найдена |