Cria ou executa sections & spaces
POST/api/sections
- Auth
- Jeton requis
- Clé d’API:
- community:write
- X-CommunityId
X-CommunityIdEnvoyez le X-CommunityId de la communauté où l’opération a lieu.
Les descriptions des endpoints viennent directement de la spécification de l’API et sont en portugais pour l’instant. L’interface autour est traduite.
Sujeito a verificação de papel (RBAC).
En-têtes
| Nom | Type | Description |
|---|---|---|
X-CommunityIdfacultatif | string (uuid) | ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade. |
Corps de la requête application/json
| Nom | Type | Description |
|---|---|---|
titleobligatoire | string | Title is required · max 255 |
descriptionfacultatif | string | Description must be a string |
slugfacultatif | string | Letras minúsculas, números e hífen. Não pode começar com _ nem ser um nome reservado pelo app (admin, pricing, billing, checkout-success, products, settings, account, members, monetization, set-password, api, docs, oauth, verify, offer, payment e outros; lista em src/config/reservedSlugs.js): 400 com param = slug. Gerado do título quando ausente, nunca com _ nem reservado. · max 255 |
iconfacultatif | string | Invalid icon value |
orderfacultatif | integer | Order must be a non-negative integer |
visibilityfacultatif | public | members | plan | private | Invalid visibility value |
accessfacultatif | object | Quem entra quando `visibility` é `private`. Opcional e **aditivo**: ausente não mexe em nada. Cada lista (`groupIds`, `productIds`, `subscriptionGroupIds`, `badgeIds`) e o nível (`minLevelId`/`minLevel`) só mudam quando vêm no pedido: **ausente (ou `null`) mantém** o que está lá, a lista enviada **substitui** a daquele tipo e `[]` tira todos. Mandar só o nível não mexe em grupos nem produtos. As listas são **união** — satisfazer qualquer uma basta. Um id de outra comunidade, ou uma lista que não é array, devolve 400 com `errors`. |
access.groupIdsfacultatif | string (uuid)[] | |
access.productIdsfacultatif | string (uuid)[] | |
access.subscriptionGroupIdsfacultatif | string (uuid)[] | |
access.badgeIdsfacultatif | string (uuid)[] | Badges da comunidade (não apagados); quem tem um deles (não revogado) entra. Como as outras listas, **ausente (ou `null`) mantém** os badges que já estão lá; `[]` tira todos. Badge de outra comunidade, apagado ou id inválido devolve 400 com `errors`. |
access.minLevelIdfacultatif | string (uuid) | "A partir do nível": quem está nesse nível do Engajamento ou acima (o nível gravado, o mesmo do perfil e do ranking) entra. Um por espaço ou seção. Ausente mantém; `null` tira. Nível de outra comunidade ou id inválido devolve 400 com `errors`. Com a gamificação desligada, o nível não abre nada. |
access.minLevelfacultatif | integer | O mesmo nível pelo número (1 é o primeiro), para a escada ainda nos níveis padrão, que não têm id antes do primeiro uso; vira `minLevelId`. Número fora da escada → 400. · ≥ 1 |
lockedDisplayfacultatif | hide | section | section_and_spaces | "Para quem não tem acesso": `hide` (some, como antes), `section` (só a linha da seção com cadeado, sem os spaces, e a página da seção) ou `section_and_spaces` (a seção e os spaces com cadeado; o padrão). Não tem efeito numa seção Pública nem numa só administração (Privada sem ninguém), que nunca vira cadeado. Na edição, ausente não mexe. |
isHomefacultatif | boolean | isHome must be boolean |
Réponses
| Statut | Description |
|---|---|
201 | Operação realizada com sucesso. |
400 | Requisição inválida — falha de validação. |
401 | Token ausente, inválido ou expirado; token de outra comunidade (o `X-CommunityId` ou o `communityId` do corpo não é o do token); token antigo ou de uma sessão encerrada (troca de senha, convite aceito). Nesses casos a mensagem pede para entrar de novo (`auth.signInAgain`). |
403 | Autenticado, mas sem permissão para esta operação. |
500 | Erro interno do servidor. |
Exemple curl
curl -X POST "https://api.memberfy.net/api/sections" \
-H "Authorization: Bearer $TOKEN" \
-H "X-CommunityId: $COMMUNITY_ID" \
-H "Content-Type: application/json" \
-d '{"title":"string"}'