spaceIdfacultatif | string (uuid) | Valid space ID required if provided |
titleobligatoire | string | Title is required |
typeobligatoire | text | image | video | link | Valid content type is required |
videoUrlfacultatif | string | Vídeo externo (link). Não coexiste com `videoMediaId`. |
videoMediaIdfacultatif | string (uuid) | Vídeo hospedado, enviado por `POST /api/media/upload-url` (finalidade `contentVideo`) e confirmado em `POST /api/media/confirm`. A mídia é privada: a resposta traz `videoMediaId` (e `videoUrl: null`) e o player pede o link em `GET /api/media/{id}/url`.
|
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.
|
notifyByEmailfacultatif | boolean | Avisar por e-mail (regras em NotifyByEmailInput). |
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.
|
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`.
|
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. |