Astorya Developers
Recursos da API

Gestão de usuários

Crie, consulte, bloqueie e revogue o acesso dos seus membros pelo mesmo identificador que você já usa: o externalUserId.

Nesta página
  1. Quando usar
  2. Criar ou atualizar
  3. Consultar
  4. Revogar o acesso

Quando usar

Com o login único, o membro é criado no primeiro acesso — então você pode viver sem estes endpoints no começo. Eles servem para manter a Astorya alinhada com o seu sistema:

Evento no seu sistemaChamada
Membro contratou o plano com o benefícioPUT /users/{externalUserId} (opcional; a primeira sessão também cria)
Membro trocou nome ou e-mailPUT /users/{externalUserId} com os novos dados
Pagamento em atraso, suspensão temporáriaPUT com status: "BLOCKED"
Regularizou o pagamentoPUT com status: "ACTIVE"
Cancelou o planoDELETE /users/{externalUserId}

Em todas as rotas, {externalUserId} vai no caminho codificado para URL (encodeURIComponent), já que pode ter caracteres como @ ou /.

Criar ou atualizar

PUT/partner/v1/users/{externalUserId}

Cria o membro se ele ainda não existir no seu tenant ou atualiza os campos enviados. Campos omitidos não mudam. A chamada é idempotente: repetir com o mesmo corpo dá o mesmo resultado.

CampoDescrição
emailstringNovo e-mail. Se pertencer a outro membro: 409 EMAIL_CONFLICT.
namestringNome exibido.
status"ACTIVE" | "BLOCKED"BLOCKED impede novas sessões (403 USER_REVOKED); ACTIVE libera de novo, inclusive depois de um DELETE.
curl
curl -X PUT "https://api.astorya.com.br/partner/v1/users/usuario-10293" \
  -u "$ASTORYA_CLIENT_ID:$ASTORYA_CLIENT_SECRET" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Maria Souza Lima", "email": "maria.lima@exemplo.com.br" }'

Nos exemplos em Node e Python, basicAuth, ASTORYA_API e AUTH são os mesmos do guia rápido (AUTH = (client_id, client_secret)).

Consultar

GET/partner/v1/users/{externalUserId}

Retorna o membro e a data da última atividade (ouvir ou ler). Útil para a tela de suporte do seu time. Um externalUserId que nunca foi usado no seu tenant devolve 404.

curl
curl "https://api.astorya.com.br/partner/v1/users/usuario-10293" \
  -u "$ASTORYA_CLIENT_ID:$ASTORYA_CLIENT_SECRET"
200 OK
{
  "id": "6702f1c9a8b4e2d3c1f0a9b8",
  "externalUserId": "usuario-10293",
  "email": "maria.lima@exemplo.com.br",
  "name": "Maria Souza Lima",
  "status": "ACTIVE",
  "lastActivityAt": "2026-10-07T21:12:44.000Z"
}

lastActivityAt é null se o membro ainda não ouviu nem leu nada.

Revogar o acesso

DELETE/partner/v1/users/{externalUserId}

Revoga o acesso imediatamente e responde 204 No Content:

  • As sessões ativas são encerradas. Se o membro estiver com a Astorya aberta, a WebView recebe astorya:session-expired e, quando o seu app pedir uma nova sessão, a API responde 403 USER_REVOKED — mostre algo como “O benefício de livros não está ativo no seu plano”.
  • O membro continua aparecendo nos relatórios dos meses em que teve uso.
  • Se ele voltar a contratar, reative com PUT e status: "ACTIVE". A conta, a biblioteca e o progresso continuam lá.

Recomendação: chame o DELETE no mesmo ponto do seu sistema que processa o cancelamento do plano do usuário (ou o fim do período pago). Assim ninguém continua com acesso — e consumo nos relatórios — depois de sair.

curl
curl -X DELETE "https://api.astorya.com.br/partner/v1/users/usuario-10293" \
  -u "$ASTORYA_CLIENT_ID:$ASTORYA_CLIENT_SECRET"

Se a chamada falhar (rede, 429, 5xx), coloque-a numa fila e tente de novo: a revogação é idempotente.