Доступ и коды ответа
Без оформленного доступа (неверный, просроченный или отсутствующий ключ / токен) API не сообщает об отказе в авторизации — для любых запросов к защищённым ресурсам сервер возвращает HTTP 404 Not Found, как будто маршрута не существует. Так Макаронный Монстр прячет свои тайны от любопытных без договора.
Иными словами: не ждите 401 Unauthorized или 403 Forbidden на продакшене — при отсутствии права вызова вы получите именно 404.
Базовый URL
https://api.pasta-monster.ru
Все пути в документе задаются относительно этого префикса.
Аутентификация
Передавайте секрет в заголовке запроса одним из способов:
- заголовок
Authorization: Bearer <token> - или заголовок
X-API-Key: <key>
Без валидных данных — ответ 404 на защищённые эндпоинты (см. выше).
POST /api/v1/ask-the-monster
Диалог с ИИ от имени ЛММ: вопрос на естественном языке, ответ в JSON.
Тело запроса
{
"question": "В чём смысл жизни?",
"language": "ru"
}
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
question | string | да | Текст вопроса |
language | string | нет | Код языка ответа, по умолчанию ru |
Успешный ответ 200 OK
{
"answer": "Смысл жизни — в хорошей пасте аль денте…",
"sauce_level": "divine",
"noodle_blessings": 42
}
Ошибки
- 404 — нет доступа или ресурс скрыт (см. раздел «Доступ»)
- 400 — невалидное тело (например, пустой
question), если запрос дошёл до обработчика - 429 — превышен лимит тарифа
GET /api/v1/prophecy
Случайное пророчество, цитата или рецепт от ЛММ.
Параметры запроса (query)
| Параметр | Описание |
|---|---|
lang | Язык, например ru |
Пример
GET /api/v1/prophecy?lang=ru
Без доступа — снова 404.
Музыка Hi-Fi и 4K-визуализация
Доступно только тарифам Профи и Группа лиц. Тариф Старт к этим маршрутам не допускается — запросы без нужной подписки или без валидного ключа дают 404 Not Found (как и для остальных защищённых ресурсов).
Аудио отдаётся в потоковом режиме с приоритетом качества Hi-Fi (высокий битрейт, PCM/FLAC-подобные профили или lossless-совместимые варианты в зависимости от клиента). Видеоряд — синхронизированная с треком виртуализация ЛММ в 4K UHD (3840×2160), до 60 кадров/с, опционально HDR.
POST /api/v1/media/playback/open
Открывает единую сессию: стрим музыки + опционально канал 4K-визуализации, привязанный к той же временной шкале.
Заголовки
Те же, что для остального API: Authorization или X-API-Key.
Тело запроса
{
"audio_quality": "hifi_24_192",
"genre": "pastafarian_ambient",
"visualization": true,
"visualization_resolution": "4k_uhd",
"visual_transport": "webrtc"
}
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
audio_quality | string | нет | hifi_24_96, hifi_24_192 (максимум для тарифа), opus_high — адаптивный Hi-Fi |
genre | string | нет | Подсказка жанра ИИ (например pirate_jazz, noodle_choir) |
visualization | boolean | нет | Включить 4K-сцену ЛММ; по умолчанию true для подписок с медиа |
visualization_resolution | string | нет | 4k_uhd (3840×2160) или 1080p для экономии трафика |
visual_transport | string | нет | webrtc (низкая задержка) или websocket_binary — поток кадров/чанков для кастомного рендера |
Ответ 201 Created
{
"session_id": "psm_sess_7f3a9c2e",
"expires_at": "2026-04-06T18:00:00Z",
"music": {
"hls_master_url": "https://api.pasta-monster.ru/api/v1/music/stream/psm_sess_7f3a9c2e/master.m3u8",
"dash_manifest_url": "https://api.pasta-monster.ru/api/v1/music/stream/psm_sess_7f3a9c2e/manifest.mpd",
"websocket_timeline_url": "wss://api.pasta-monster.ru/api/v1/music/stream/psm_sess_7f3a9c2e/timeline"
},
"visualization_4k": {
"webrtc": {
"negotiation_url": "https://api.pasta-monster.ru/api/v1/visualization/4k/psm_sess_7f3a9c2e/webrtc/sdp",
"ice_servers": [{ "urls": "stun:stun.pasta-monster.ru:3478" }]
},
"websocket_frames_url": "wss://api.pasta-monster.ru/api/v1/visualization/4k/psm_sess_7f3a9c2e/frames",
"resolution": "3840x2160",
"fps_max": 60,
"hdr": false
}
}
Поле visualization_4k отсутствует или пустое, если в запросе было "visualization": false.
GET /api/v1/music/stream/{session_id}/master.m3u8
Master-плейлист HLS для плеера (Safari, AVPlayer, hls.js и т.д.). Сессия должна быть активна; в query можно передавать token, если CDN отделён от основного ключа.
GET /api/v1/music/stream/{session_id}/manifest.mpd
Аналог для DASH (Android, dash.js).
WSS /api/v1/music/stream/{session_id}/timeline
Сообщения JSON: метаданные трека, BPM, маркеры для синхронизации 4K-сцены с аудио. Подключение без валидной сессии закрывается без раскрытия причины; при обращении по HTTP вместо апгрейда — 404.
POST /api/v1/visualization/4k/{session_id}/webrtc/sdp
Обмен SDP для WebRTC: тело — application/sdp (offer от клиента), ответ — answer SDP, после чего идёт поток 4K-визуализации в браузер или совместимый клиент.
WSS /api/v1/visualization/4k/{session_id}/frames
Бинарный поток (например, сжатые кадры или описания сцены для движка): формат чанков согласуется в первом служебном сообщении после handshake. Разрешение не выше заявленного в сессии (обычно 4K).
POST /api/v1/media/playback/{session_id}/close
Явно завершить сессию и освободить ресурсы на «пивном вулкане».
Коды и ограничения
- 404 — нет ключа, нет тарифа с медиа, истёкшая или несуществующая
session_id - 429 — превышен одновременный стрим или минуты 4K по тарифу
- 503 — перегрузка рендера 4K; клиенту можно повторить
openсvisual_transport: websocket_binaryили1080p
Контакты
Выдача ключей и договорённости по тарифам: admin@pasta-monster.ru
Маркетинговый сайт: pasta-monster.ru