# API для отправки сообщений
**Важно:** Все эндпоинты для отправки сообщений требуют API ключ в заголовке `X-API-Key`.
## Аутентификация
Все эндпоинты требуют API ключ в заголовке запроса:
```bash
X-API-Key: your_api_key_here
```
API ключ настраивается в переменной окружения `API_KEY` в файле `.env`.
## Отправка текстового сообщения
```bash
POST /api/v1/message/text
Content-Type: application/json
X-API-Key: your_api_key_here
{
"tg_group": "monitoring",
"tg_thread_id": 0,
"text": "Критическое уведомление\n\nСистема недоступна!\n\nВремя: 2024-02-08 16:49:44",
"parse_mode": "HTML",
"disable_web_page_preview": false
}
```
**Пример ответа:**
```json
{
"status": "ok",
"message": "Сообщение отправлено в чат monitoring, тред 0"
}
```
**Поддерживаемые режимы парсинга:**
- `HTML` - HTML форматирование (рекомендуется)
- `Markdown` - Markdown форматирование
- `MarkdownV2` - Markdown V2 форматирование
**Примеры форматирования:**
- HTML: `жирный`, `курсив`, `код`
- Markdown: `**жирный**`, `*курсив*`, `` `код` ``
## Отправка фото
```bash
POST /api/v1/message/photo
Content-Type: application/json
X-API-Key: your_api_key_here
{
"tg_group": "monitoring",
"tg_thread_id": 0,
"photo": "https://grafana.example.com/render/dashboard-solo?panelId=1&width=1000&height=500",
"caption": "График CPU\n\nВремя: 2024-02-08 16:49:44",
"parse_mode": "HTML"
}
```
**Пример ответа:**
```json
{
"status": "ok",
"message": "Фото отправлено в чат monitoring, тред 0"
}
```
**Примечания:**
- Фото может быть передано через URL (автоматически загрузится) или как файл
- Поддерживаются форматы: JPG, PNG, GIF, WebP
- Максимальный размер файла: 10 МБ (Telegram), зависит от мессенджера
- Для отправки графиков из Grafana используйте URL рендеринга дашбордов
## Отправка видео
```bash
POST /api/v1/message/video
Content-Type: application/json
X-API-Key: your_api_key_here
{
"tg_group": "monitoring",
"tg_thread_id": 0,
"video": "https://example.com/recording.webm",
"caption": "Запись работы системы\n\nДлительность: 60 сек",
"parse_mode": "HTML",
"duration": 60,
"width": 1920,
"height": 1080
}
```
**Пример ответа:**
```json
{
"status": "ok",
"message": "Видео отправлено в чат monitoring, тред 0"
}
```
**Примечания:**
- Видео может быть передано через URL (автоматически загрузится) или как файл
- Поддерживаются форматы: MP4, WebM, MOV (зависит от мессенджера)
- Максимальный размер файла: 50 МБ (Telegram), зависит от мессенджера
- Длительность, ширина и высота опциональны, но рекомендуются для лучшего отображения
## Отправка аудио
```bash
POST /api/v1/message/audio
Content-Type: application/json
X-API-Key: your_api_key_here
{
"tg_group": "monitoring",
"tg_thread_id": 0,
"audio": "https://example.com/notification.ogg",
"caption": "Аудио уведомление\n\nСистема работает нормально",
"parse_mode": "HTML",
"duration": 30,
"performer": "System Notification",
"title": "Alert Notification"
}
```
**Пример ответа:**
```json
{
"status": "ok",
"message": "Аудио отправлено в чат monitoring, тред 0"
}
```
**Примечания:**
- Аудио может быть передано через URL (автоматически загрузится) или как файл
- Поддерживаются форматы: MP3, OGG, WAV, M4A (зависит от мессенджера)
- Максимальный размер файла: 50 МБ (Telegram), зависит от мессенджера
- Исполнитель и название опциональны, но улучшают отображение в Telegram
## Отправка документа
```bash
POST /api/v1/message/document
Content-Type: application/json
X-API-Key: your_api_key_here
{
"tg_group": "monitoring",
"tg_thread_id": 0,
"document": "https://example.com/report.xlsx",
"caption": "Отчет за неделю\n\nДата: 2024-02-08",
"parse_mode": "HTML",
"filename": "report_2024-02-08.xlsx"
}
```
**Пример ответа:**
```json
{
"status": "ok",
"message": "Документ отправлен в чат monitoring, тред 0"
}
```
**Примечания:**
- Документ может быть передан через URL (автоматически загрузится) или как файл
- Поддерживаются все форматы файлов (PDF, DOCX, XLSX, TXT, и т.д.)
- Максимальный размер файла: 50 МБ (Telegram), зависит от мессенджера
- Имя файла опционально, если не указано - используется имя из URL
- Для отправки отчетов используйте прямые ссылки на файлы
## Параметры запроса
Все endpoints поддерживают параметр `messenger` (опционально):
- `?messenger=telegram` - использовать Telegram
- `?messenger=max` - использовать MAX/VK
- Если не указан, используется мессенджер из конфигурации группы
## Общие параметры
- `tg_group` - имя группы из конфигурации (config/groups.json)
- `tg_thread_id` - ID треда в группе (0 для основной группы, поддерживается только для Telegram)
- `messenger` - тип мессенджера (опционально, `telegram`, `max`, по умолчанию используется из конфигурации группы)