Skip to content

Inscreve (ou renova) este aparelho

POST/api/push/subscriptions

Auth
Requires a token
API key:
No API key accepted
X-CommunityId
X-CommunityId Send the X-CommunityId of the community the operation happens in.
Endpoint descriptions come straight from the API specification and are in Portuguese for now. The interface around them is translated.

Qualquer papel. Recebe o `PushSubscription.toJSON()` do navegador (`endpoint` e `keys`), mais `platform` e `standalone` (aberto pelo app instalado). Cria (201) ou renova pelo endpoint (200): o mesmo navegador inscrito de novo, mesmo em outra conta, passa a ser de quem está logado. O endpoint precisa ser de um serviço de push de navegador (Google, Mozilla, Apple, Microsoft; também `jmt17.google.com`, o do Chromium); outro dá 400. No máximo 10 aparelhos por pessoa por comunidade: o mais antigo é apagado. Até 20 chamadas por hora por pessoa por comunidade; a 21ª dá 429. O rótulo (`deviceLabel`) vem do navegador.

Headers

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

Request body application/json

NameTypeDescription
endpointrequiredstringmax 2048
keysrequiredobject
keys.p256dhrequiredstring
keys.authrequiredstring
vapidKeyIdoptionalstringO `vapidKeyId` de `GET /api/push/config` usado na inscrição.
platformoptionalios | android | macos | windows | linux | other
standaloneoptionalboolean

Responses

StatusDescription
200Aparelho já inscrito: renovado.
201Aparelho inscrito.
400Requisição inválida — falha de validação.
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.
409Conflito com o estado atual do recurso.
429Mais de 20 inscrições por hora da mesma pessoa nesta comunidade. O cabeçalho `Retry-After` diz em quantos segundos tentar de novo.
500Erro interno do servidor.

curl example

curl -X POST "https://api.memberfy.net/api/push/subscriptions" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{"endpoint":"string","keys":{"p256dh":"string","auth":"string"}}'