contentfacultatif | string | Obrigatório sem `videoMediaId`; com um Drop, pode ir vazio. · max 500 |
videoMediaIdfacultatif | string (uuid) | Drop: vídeo gravado no navegador, enviado por `POST /api/media/upload-url` com a finalidade `statusVideo` (até 350 MB) e confirmado em `POST /api/media/confirm`, no mesmo space do post curto. Com ele, `content` pode ir vazio. Só quem enviou o vídeo pode usá-lo (de outra pessoa, de outra finalidade ou de outro space: 400 com `errors[0].param = "videoMediaId"`; id desconhecido ou de outra comunidade: 404; já usado: 409). No `PUT`, outro id troca o vídeo e `null` remove; o anterior é apagado, com as versões convertidas. A resposta e as listas trazem `videoMediaId`; o player pede o link assinado em `GET /api/media/{id}/url`, que segue a leitura do post curto (pendente ou rejeitado, só o autor e a equipe). Só quem aparece como autor do item adiciona ou troca o vídeo: a equipe, editando ou publicando em nome de outra pessoa, só pode remover com `null` (senão 403 com `errors[0].param = "videoMediaId"`).
|
spaceIdobligatoire | string (uuid) | |
publishAtfacultatif | string (date-time) | Agendar: o post sai neste momento (no máximo 1 minuto e pouco depois), uma vez só. Quem pode publicar no espaço pode agendar. Precisa ser depois de agora e até 1 ano à frente (senão 400, `errors[0].param = "publishAt"`, com `code` `past`, `tooFar` ou `invalid`); junto com `publishedAt`, 400 `withPublishedAt`. Até a hora, o post não aparece para ninguém além do autor e da equipe (feed, espaço, busca, tags, em alta, MCP, newsletter, RSS, página pública; o link direto dá 404 aos outros) e nada o anuncia: pontos, feed, e-mail de aviso (`notifyByEmail` fica guardado para a hora), automações e webhooks saem na publicação, e o autor recebe no sino "seu post foi publicado" (`posts.scheduledPublished`). A resposta traz `schedule: { status, publishAt, failure }` (`status` `scheduled`; null num post não agendado) e, em conteúdo, `emailNotice.reason = "postScheduled"`. Lista: `GET /api/scheduled-posts`.
|
commentsDisabledfacultatif | boolean | Comentários desligados: os que já existem continuam visíveis, mas ninguém comenta, nem a equipe (403 com `errors[0].code = "comments_closed"`). Reações continuam. A resposta traz `commentsDisabled` e `canToggleComments`.
|
isPriorityfacultatif | boolean | Owner e admin. |
visibilityfacultatif | public | members | plan | private | `plan`: só quem tem assinatura ativa (e a equipe) vê. |
publishedAtfacultatif | string (date-time) | Data de publicação (ISO 8601). Só owner e admin (e o SuperAdmin) podem enviar; outros papéis recebem 403 com `errors[0].param = "publishedAt"`. Precisa ser passada ou agora: no futuro, 400. Sem o campo, vale o momento da gravação. Mais de 5 minutos no passado, o post entra em silêncio (sem pontos de engajamento, fora do bloco de novidades dos e-mails e sem o selo de novo). A resposta e as listas trazem `publishedAt`, e o feed ordena por ele; `createdAt` continua sendo o momento real da gravação.
|
authorMemberIdfacultatif | string (uuid) | Publica em nome de outro membro (para importar posts de outras pessoas). Só owner e admin (e o SuperAdmin) podem enviar; outros papéis recebem 403 com `errors[0].param = "authorMemberId"`. O perfil precisa ser da comunidade do `X-CommunityId` e estar ativo: senão 404 (id malformado, 400). Só em nome de quem tem papel abaixo do seu: owner sobre admin, moderador, financeiro e membro; admin sobre moderador, financeiro e membro; SuperAdmin sobre qualquer um (senão 403). O post aparece como sendo desse perfil e entra sempre em silêncio, qualquer que seja a data: sem pontos de engajamento para ninguém, sem notificação, fora do bloco de novidades dos e-mails, dos destaques (trending) e sem o selo de novo. O log da comunidade (`GET /api/logs`, tipo `team`) registra quem publicou em nome de quem. Depois, editar e excluir seguem o autor, como em qualquer post.
|
tagsfacultatif | string[] | As tags do post, como devem aparecer. Cada uma é aparada, perde o `#` da frente e os espaços repetidos; vazias saem e repetidas (sem diferença de maiúscula e acento) ficam uma vez, na ordem enviada. No máximo 10 tags de até 40 caracteres: acima disso, ou com item que não é texto, 400 com `errors[0].param = "tags"`. No `PUT`, a lista substitui a anterior; `[]` ou `null` limpa. A resposta e as listas trazem `tags` (sempre um array), e `?tag=` em `GET /api/feed` e `GET /api/content` filtra por uma delas.
|
pollfacultatif | object | Enquete de um post. Vai no campo `poll` de `POST /api/status` (espaço de Feed) ou de `POST /api/content` (espaço de Conteúdo); o texto (ou o título) do post é a pergunta. Só owner, admin e moderador (e o SuperAdmin) podem enviar: outros papéis recebem 403 com `errors[0].param = "poll"`, e nada é gravado. Curtidas, comentários, moderação, notificações e exclusão são os do post.
|
poll.optionsobligatoire | object[] | De 2 a 10 opções, na ordem em que aparecem. Cada uma é um texto de 1 a 100 caracteres (ou `{ text }`); repetidas (sem diferenciar maiúsculas) dão 400. |
poll.allowMultiplefacultatif | boolean | Permite marcar mais de uma opção. |
poll.closesAtfacultatif | string (date-time) | Prazo opcional (ISO 8601), sempre no futuro (senão 400). Depois dele o voto é recusado (409) e o resultado fica visível para todos. |