REST API
Медиа и загрузки
Правила загрузки вложений, URL файлов и доступ, скачивание видео на сервере.
Отдельного метода загрузки нет: файлы отправляются как attachments[] (multipart) в POST /api/conversations/{id}/messages, до 10 на сообщение.
curl -X POST https://minchatapp.com/api/conversations/12/messages \
-H "Authorization: Bearer $TOKEN" -H 'Accept: application/json' \
-F 'content=Forecast map' \
-F 'attachments[]=@map.png' \
-F 'attachments[]=@notes.pdf'
| Тип | Правила |
|---|---|
| Изображения | jpeg/png/gif/webp/bmp/tiff, ужимаются до 1280 px по большей стороне |
| Видео | mp4/mov/avi/webm/mkv/… ≤ 500 МБ; перекодируются в H.264/AAC MP4 с постером |
| Аудио / голос | mp3/m4a/wav/ogg/webm/aac/flac; is_voice=1 + необязательный waveform_data; длительность и волна извлекаются |
| Файлы | ≤ 50 МБ; исполняемые файлы, скрипты, HTML/SVG/XML отклоняются |
Объект вложения: id (UUID), type (image, video, audio, file), url, name, size, mime_type, опционально width/height, duration, poster, is_voice, waveform. URL стабильные (/storage/media/…) и требуют Bearer (или cookie веб-сессии); участники чата — или все, для публичного канала — получают файл, остальные — 403.
Методы#
Скачать вложение
Стабильный URL вложения из attachments[].url (/storage/media/xx/yy/<sha256>.<ext>). Передавайте Authorization: Bearer (веб — сессия / cookie mc_media). Доступно участникам чата (или всем для публичного канала), иначе 403.
Параметры
| Имя | Тип | Описание |
|---|---|---|
path
обязательный путь
|
string |
Путь к файлу. |
Запрос
curl 'https://minchatapp.com/storage/media/32/fd/32fd…a1.jpg' \
-H 'Accept: application/json'
Ответ
Отвечает HTTP 200.
Скачать вложение (старый URL)
То же, что /storage/{path}; оставлено для URL из кешей старых клиентов.
Параметры
| Имя | Тип | Описание |
|---|---|---|
path
обязательный путь
|
string |
Путь к файлу. |
Запрос
curl 'https://minchatapp.com/api/files/media/32/fd/32fd…a1.jpg' \
-H 'Accept: application/json'
Ответ
Отвечает HTTP 200.
Скачать видео по ссылке
Скачивание на сервере (YouTube и др. через yt-dlp). Возвращает 202 со статусом; следите за VideoDownloadUpdated или опрашивайте. Внутренние адреса отклоняются (422).
Параметры
| Имя | Тип | Описание |
|---|---|---|
url
обязательный тело
|
string |
URL страницы видео. URLmax 2048 chars
|
provider
необязательный тело
|
string |
Провайдер (по умолчанию generic).max 50 chars
|
Запрос
curl -X POST 'https://minchatapp.com/api/video-downloads' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"}'
Ответ
{
"success": false,
"code": "video.invalid_url",
"error": "Invalid link",
"message": "Invalid link"
}
Статус скачивания видео
status: pending, downloading, completed, failed.
Параметры
| Имя | Тип | Описание |
|---|---|---|
videoDownload
обязательный путь
|
integer |
id скачивания. |
Запрос
curl 'https://minchatapp.com/api/video-downloads/7' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
Отвечает HTTP 200.
Скачать файл видео
MP4 вложением, только при completed.
Параметры
| Имя | Тип | Описание |
|---|---|---|
videoDownload
обязательный путь
|
integer |
id скачивания. |
Запрос
curl 'https://minchatapp.com/api/video-downloads/7/stream' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
Отвечает HTTP 200.
Удалить скачанное видео
Параметры
| Имя | Тип | Описание |
|---|---|---|
videoDownload
обязательный путь
|
integer |
id скачивания. |
Запрос
curl -X DELETE 'https://minchatapp.com/api/video-downloads/7' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
Отвечает HTTP 200.
Стрим скачанного видео
Публично по 48-символьному токену, поддерживает HTTP Range. ?dl=1 — скачать.
Параметры
| Имя | Тип | Описание |
|---|---|---|
token
обязательный путь
|
string |
Токен из ссылки. |
dl
необязательный query
|
boolean |
Скачать файлом. |
Запрос
curl 'https://minchatapp.com/api/videos/KRNaDjeuvS2A' \
-H 'Accept: application/json'
Ответ
Отвечает HTTP 200.