Skip to content

API de membros

Faça a gestão dos lugares de equipa e das funções — as pessoas que partilham os emissores, crachás e atribuições da sua conta.

Todos os endpoints exigem autenticação. Consulte Autenticação. Cada pedido está limitado ao âmbito da conta do proprietário autenticado.

As funções que podem ser atribuídas através da API são admin, editor e viewer. A função owner está reservada ao titular da conta e não pode ser atribuída nem removida.

Listar membros

Obtenha todos os membros e convites pendentes da sua conta.

GET /members

Exemplo

bash
curl -X GET https://api.badges.ninja/members \
  -H "X-Api-Key: bws_your_api_key_here"

Resposta

json
{
  "items": [
    {
      "memberId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "email": "owner@acme.example.com",
      "role": "owner",
      "status": "active"
    },
    {
      "memberId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "email": "editor@acme.example.com",
      "role": "editor",
      "status": "pending"
    }
  ]
}

status é active para membros que aceitaram, ou pending para convites que ainda não foram aceites.


Convidar membro

Convide uma pessoa para a conta por e-mail. É enviado para o endereço um e-mail de convite com uma ligação de aceitação.

POST /members

Parâmetros

ParâmetroTipoObrigatórioDescrição
emailstringSimEndereço de e-mail a convidar (deve ser um e-mail válido)
rolestringSimFunção a atribuir — uma de admin, editor, viewer

Exemplo

bash
curl -X POST https://api.badges.ninja/members \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "parameters": {
      "email": "editor@acme.example.com",
      "role": "editor"
    }
  }'

Resposta

json
{
  "memberId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "inviteId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
  "status": "pending"
}

Erros

  • 400role must be one of admin, editor, viewer
  • 400 — endereço de e-mail inválido ou em falta
  • 400seat limit reached — a conta não tem lugares livres para o plano (Free: 2, Starter: 5, Pro: 20, incluindo o proprietário). Remova um membro ou atualize o plano.
  • 400 — o e-mail já é membro ou tem um convite pendente nesta conta

Aceitar convite

Aceite um convite pendente. O e-mail do utilizador autenticado tem de corresponder ao endereço para o qual o convite foi enviado.

POST /members/accept

Parâmetros

ParâmetroTipoObrigatórioDescrição
inviteIdstringSimO ID do convite do e-mail com a ligação de aceitação

Exemplo

bash
curl -X POST https://api.badges.ninja/members/accept \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "parameters": {
      "inviteId": "c3d4e5f6-a7b8-9012-cdef-123456789012"
    }
  }'

Resposta

json
{
  "memberId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "status": "active"
}

Erros

  • 400email does not match invitation — o e-mail com que iniciou sessão difere do e-mail convidado
  • 404 — convite não encontrado (já aceite, cancelado, ou o inviteId está incorreto)

Atualizar função do membro

Altere a função de um membro existente. Requer privilégios de proprietário ou administrador.

POST /members/{memberId}/role

Parâmetros

ParâmetroTipoObrigatórioDescrição
memberIdstringSimO ID do membro (parâmetro de caminho)
rolestringSimNova função — uma de admin, editor, viewer

Exemplo

bash
curl -X POST https://api.badges.ninja/members/b2c3d4e5-f6a7-8901-bcde-f12345678901/role \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "parameters": {
      "role": "admin"
    }
  }'

Resposta

json
{
  "memberId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "role": "admin",
  "updated": true
}

Erros

  • 400role must be one of admin, editor, viewer
  • 400the owner role cannot be changed
  • 404 — membro não encontrado

Remover membro

Remova um membro da conta ou cancele um convite pendente. O membro perde o acesso imediatamente e o seu lugar fica livre.

DELETE /members/{memberId}

Exemplo

bash
curl -X DELETE https://api.badges.ninja/members/b2c3d4e5-f6a7-8901-bcde-f12345678901 \
  -H "X-Api-Key: bws_your_api_key_here"

Resposta

Uma string simples:

json
"member has been removed"

Erros

  • 400the owner cannot be removed
  • 404 — membro não encontrado

badges.ninja Documentation