Saltar al contenido

Cria um badge

POST/api/badges

Auth
Requiere token
Quién puede:
owner
admin
Clave de API:
gamification:write
X-CommunityId
X-CommunityId Envía el X-CommunityId de la comunidad en la que ocurre la operación.
Las descripciones de los endpoints vienen de la especificación de la API y, por ahora, están en portugués. La interfaz alrededor está traducida.

Só owner e admin. `imageUrl` obrigatório, de uma imagem enviada antes em `POST /api/badges/image` desta mesma comunidade (outra URL: 422 em `imageUrl`). Nome obrigatório, até 60 caracteres, único na comunidade entre os badges vivos, sem diferenciar maiúsculas (repetido: **409** em `name`). Descrição até 300. `visibility` `public` (padrão) ou `private`. Erros de campo: **422** com o `param`.

Headers

NombreTipoDescripción
X-CommunityIdopcionalstring (uuid)ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade.

Cuerpo de la solicitud application/json

NombreTipoDescripción
nameobligatoriostringmax 60
descriptionopcionalstringmax 300
imageUrlobligatoriostring
visibilityopcionalpublic | private
ruleopcionalobjectOpcional. Campo inválido → 422 com `errors[].param` (`rule.trigger`, `rule.minCount`, `rule.spaceId`, `rule.window`, `rule.minMemberDays`); passar de 50 regras na comunidade → 400 (`badges.ruleLimit`).

Respuestas

CódigoDescripción
201Criado.
401Token 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`).
403Autenticado, mas sem permissão para esta operação.
409Já existe um badge com este nome na comunidade.
422Campo inválido (nome, descrição, imagem ou visibilidade).

Ejemplo con curl

curl -X POST "https://api.memberfy.net/api/badges" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","imageUrl":"string"}'