Pular para o conteúdo principal
O template é um ponto de partida, não uma exigência. Qualquer tecnologia que faça requisições HTTP consegue usar a API de membros: um site em React, Vue ou Svelte, um aplicativo móvel ou um site gerado no servidor. Este guia mostra o caminho completo, do login até concluir uma aula, e as regras que todo site precisa respeitar. Se um agente de IA vai construir por você, veja Comece com a skill.

O básico

  • Endereço da API: https://memberkit.com.br/api/headless/v1. É o mesmo para todas as áreas de membros.
  • Chave headless: toda chamada leva o cabeçalho X-Memberkit-Headless-Key, que identifica a sua área de membros. Copie a chave no painel, em Configurações > Acesso via API. Ela é pública e pode ir no código do site. Se precisar de uma nova, peça ao suporte da Memberkit por e-mail e troque-a no site: a antiga para de funcionar na hora, mesmo para quem já está logado.
  • Autenticação: depois do login, envie também o token do aluno, no cabeçalho Authorization: Bearer <token>.
  • CORS: a API aceita chamadas de qualquer origem, direto do navegador. Ela não usa cookies.

Do login à aula concluída

1

Carregue a identidade visual

A primeira chamada não precisa de login. Ela devolve o nome, o logotipo, as cores e os recursos ativados da área de membros, para a tela de login já aparecer com a marca certa.
2

Faça o login

A resposta traz o token do aluno em access_token. Guarde-o: ele vale por duas semanas e vai em todas as outras chamadas, junto com a chave.
3

Liste os cursos

Cada curso diz se o aluno está matriculado (enrolled), o progresso dele e, para cursos que ele ainda não tem, o checkout_url para comprá-los. A lista é paginada; veja Paginação.
4

Abra um curso e uma aula

GET /courses/{id} devolve os módulos e as aulas que o aluno pode ver, com o progresso, numa única chamada. GET /lessons/{id} devolve o conteúdo da aula, os materiais, as aulas vizinhas e o estado do aluno: concluída, avaliação, salva na lista.Uma aula que ainda não foi liberada responde normalmente, mas sem conteúdo e com o campo lock preenchido, explicando o motivo e quando ela libera. Mostre a aula bloqueada com essa explicação em vez de escondê-la.
5

Toque o vídeo

GET /lessons/{id}/playback devolve o que o player precisa: a plataforma de vídeo (source), o identificador do vídeo, a URL do player assinada para o aluno (às vezes com marca d’água) e a posição de onde continuar (start_time).
6

Registre o tempo assistido

Envie a posição em segundos quando o aluno sai da aula: ao fechar ou esconder a aba e ao navegar para outra tela. É com isso que a MemberKit sabe onde o aluno parou, mostra o “continuar assistindo” e retoma o vídeo do ponto certo.
7

Conclua a aula

A resposta traz o progresso atualizado do curso. A conclusão alimenta o progresso, os certificados e o ranking.

Regras que todo site precisa respeitar

Cada aluno tem uma sessão ativa por vez. Entrar em outro dispositivo, no seu site ou na área de membros hospedada, encerra a sessão anterior: o token antigo passa a responder session_replaced. Trocar ou redefinir a senha encerra todos os tokens, e sair (POST /auth/logout) encerra apenas o token daquele dispositivo. Quando receber um desses erros, apague o token e leve o aluno para o login. Donos e administradores são exceção e podem ter várias sessões.
A área de membros e cada curso podem exigir que o aluno aceite um texto antes de continuar. Enquanto ele não aceitar, as chamadas respondem onboarding_required ou course_onboarding_required. Mostre o texto (GET /onboarding ou GET /courses/{id}/onboarding) e envie o aceite.
Aulas liberadas ao longo do tempo chegam com lock. Um acesso vencido responde access_expired, e um vídeo bloqueado responde content_locked. Mostre o motivo; não esconda o conteúdo.
subscription_suspended (402) significa que a assinatura do produtor na MemberKit venceu, não o acesso do aluno. Mostre uma tela de manutenção, não a de login.
Formulários que criam algo, como comentários e mensagens de contato, devem enviar o cabeçalho Idempotency-Key com um valor único por envio. Se o aluno clicar duas vezes ou a conexão cair, a repetição devolve a primeira resposta em vez de duplicar o comentário.
O conteúdo das aulas, o texto do onboarding, as publicações da comunidade e os textos dos quizzes chegam como HTML já renderizado. Os comentários chegam como texto simples e devem ser escapados. As respostas do Assistente de IA chegam em Markdown.
A área de membros hospedada só aceita ser aberta na própria origem, então o navegador bloqueia o iframe. Numa webview ela abre, mas entrar nela encerra a sessão do aluno no seu aplicativo, e a App Store e o Google Play rejeitam aplicativos que só empacotam um site. Construa as telas com a API.
O token do aluno dá acesso à conta dele. Em um site no navegador, qualquer script da página consegue lê-lo, então não adicione scripts de terceiros em que você não confie e nunca renderize HTML digitado por usuários. Nunca coloque a chave da API de operador no site: ela controla a área de membros inteira.

Login a partir do seu sistema

Se o aluno já está logado no seu sistema, você pode levá-lo direto para o site sem pedir a senha: o seu servidor gera um token de login na API de operador e o site o troca por um token de aluno em POST /auth/exchange. O passo a passo, com exemplos em Node.js, PHP e Ruby, está em Login a partir do seu sistema.

Próximos passos

Todas as chamadas, com parâmetros, respostas e erros, estão na Referência da API de membros. O código do template também serve de exemplo de cada tela.