---
title: "Enviar um conteúdo no projeto"
method: POST
path: "/api/management/save-media"
tags: ["projects", "Conteúdos e arquivos"]
---

# Enviar um conteúdo no projeto

`POST /api/management/save-media`

Envia um conteúdo — texto, áudio ou arquivo — para um ou mais projetos. Cada projeto informado recebe uma entrada própria: quando mais de uma é criada, a resposta traz `medias` (lista) no lugar de `media` (objeto).

Áudio e arquivos são enviados como `multipart/form-data`. Menções escritas no texto disparam as notificações correspondentes — veja [Menções](https://docs.olie.ai/guides/fundamentals/mentions). Projetos que já foram mesclados não aceitam novos conteúdos.

## Request body

- object — Conteúdo a enviar.
  - `type` 1 | 2 | 3, required — Tipo do conteúdo: 1 texto, 2 arquivo, 3 áudio.
  - `project_ids` string[] — Projetos que recebem o conteúdo.
  - `text` string — Texto do conteúdo. Obrigatório no tipo 1. Até 50.000 caracteres.
  - `file` unknown[] — Arquivos enviados. Obrigatório no tipo 2 (multipart/form-data).
    - unknown
  - `audio` unknown
  - `channel_id` string, uuid, nullable — Canal pelo qual o conteúdo é enviado. Sem ele, o conteúdo fica interno.
  - `channel_name` string, nullable — Nome do canal, alternativa a `channel_id`. Os dois não podem vir juntos.
  - `task_id` string, uuid, nullable — Tarefa que recebe o conteúdo, quando o envio é de uma tarefa.

## Response `200`

Conteúdo enviado a vários projetos

- object — Conteúdos criados quando o envio atinge vários projetos.
  - `response` boolean, required — Sempre true quando a operação é concluída.
  - `medias` object[], required — Conteúdos criados, um por projeto.
    - `id` string, uuid — ID (UUID) do conteúdo.
    - `name` string, nullable — Nome do conteúdo ou do arquivo.
    - `technical_name` string, nullable — Nome interno usado no armazenamento.
    - `type` integer — Tipo do conteúdo: 1 texto, 2 arquivo, 3 áudio.
    - `extension` string, nullable — Extensão do arquivo, quando houver.
    - `text` string, nullable — Texto enviado, quando houver.
    - `file_url` string, nullable — Endereço para baixar o arquivo, quando houver.
    - `log` string, nullable — Conteúdo do registro de atividade, quando a entrada for um log.
    - `user_id` string, uuid, nullable — Usuário que enviou o conteúdo.
    - `frame_id` string, uuid — ID (UUID) da conta dona do conteúdo.
    - `project_id` string, uuid, nullable — Projeto que recebeu o conteúdo.
    - `created_at` string, date-time — Data do envio.
    - `updated_at` string, date-time — Data da última alteração.
    - `deleted_at` string, date-time, nullable — Data em que o conteúdo foi removido.
    - `user` object, nullable — Quem enviou o conteúdo.

## Other responses

- `201` — Conteúdo enviado com sucesso
- `422` — Erro de validação

## Changes

- **2026-08-24** `3c590152d5b5` — 18 breaking, 10 warning, 16 info
  - the `audio` request property type changed from `string` to no type, and format from `binary` to no format
  - the response property `media/deleted_at` became nullable for the status `201`
  - the response property `media/extension` became nullable for the status `201`
  - the response property `media/file_url` became nullable for the status `201`
  - …40 more
- **2026-08-19** `3d619d9db20d` — 1 info
  - api tag `Conteúdos e arquivos` added

[Change history](https://skmtc.dev/olie-ai/apis/olie-api/changes/api/management/save-media/post.md)

---

[API](https://skmtc.dev/olie-ai/apis/olie-api.md) · [All operations](https://skmtc.dev/olie-ai/apis/olie-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/olie-ai/olie-api/revisions/8c9bac94e5ad/schema)
