Медиа
Для разработчиков

Медиа

К сообщениям можно прикреплять изображения, видео, аудио и произвольные файлы. Процесс двухшаговый: сначала загружаете файл и получаете media_id, затем передаёте список id в поле media_ids при отправке сообщения. Все медиа scoped к workspace — скачать файл можно только тем же API-ключом, которым он был загружен.

POST/api/v1/media/upload

Загрузить файл

Multipart-запрос с полем file. Лимит по умолчанию — 20 МБ на файл. Для изображений сервер автоматически определяет width и height.

curl
curl -X POST https://api.support.forestsnet.com/api/v1/media/upload \
  -H "Authorization: Bearer sk_xxx" \
  -F "file=@/путь/к/screenshot.png"
201 Created
{
  "id": "m1...",
  "url": "https://api.support.forestsnet.com/api/v1/media/m1...",
  "mime_type": "image/png",
  "original_name": "screenshot.png",
  "file_type": "image",
  "width": 1280,
  "height": 720,
  "size": 184523
}
Python SDK
media = client.media.upload("/путь/к/screenshot.png")
print(media.id, media.url)
GET/api/v1/media/{media_id}

Скачать файл

Возвращает бинарное содержимое файла с корректным заголовком Content-Type. Доступно только внутри того же workspace.

curl
curl -o file.png https://api.support.forestsnet.com/api/v1/media/m1... \
  -H "Authorization: Bearer sk_xxx"

Прикрепление к сообщению

После загрузки передайте полученные id в поле media_idsпри создании сообщения через любой из эндпоинтов POST /api/v1/tickets/{id}/messages или POST /api/v1/messages.

Python
# 1. Загружаем файл
up = requests.post(
    f"{API}/media/upload",
    headers=HEAD,
    files={"file": open("screenshot.png", "rb")},
).json()

# 2. Отправляем сообщение с вложением
requests.post(
    f"{API}/tickets/{ticket_id}/messages",
    headers=HEAD,
    json={"content": "Вот скриншот ошибки", "media_ids": [up["id"]]},
)

Ответ сообщения с media

message object
{
  "id": "f1...",
  "content": "Вот скриншот ошибки",
  "sender_type": "operator",
  "is_internal": false,
  "media": [
    {
      "id": "m1...",
      "url": "https://api.support.forestsnet.com/api/v1/media/m1...",
      "mime_type": "image/png",
      "original_name": "screenshot.png",
      "file_type": "image",
      "width": 1280,
      "height": 720
    }
  ],
  "created_at": "2026-04-07T09:00:00"
}
Поле file_type принимает значения image, video, audio, document — удобно для выбора UI-компонента отображения на вашей стороне.
Была ли страница полезной?