# weve > Documentação pública da API weve. - [Visão geral](https://docs.weve.cx/index.md): API REST da weve: JSON em todas as respostas, um envelope único de erro e um contrato OpenAPI que gera esta documentação. - [Primeira chamada](https://docs.weve.cx/quickstart.md): Do health à primeira leitura autenticada, em menos de um minuto. - [Erros](https://docs.weve.cx/essentials/errors.md): Um envelope único, um código estável por situação. - [Liberação de conteúdo](https://docs.weve.cx/essentials/release.md): A agenda que segura uma aula até a data — ou até o aluno chegar lá. - [Biblioteca de mídia](https://docs.weve.cx/essentials/media.md): Onde o arquivo do club mora, quem o usa, e como ele chega ao aluno. - [Weve DRM](https://docs.weve.cx/essentials/watermark.md): Marca d'água com o nome e o documento de quem baixou o material. - [Paginação](https://docs.weve.cx/essentials/pagination.md): limit e page nas listagens. - [Limites de uso](https://docs.weve.cx/essentials/rate-limits.md): Teto por club — ou por IP — nas operações de escrita. - [Webhook genérico](https://docs.weve.cx/essentials/generic-webhook.md): O envelope para plataformas sem integração nativa: gateways, áreas de membros, Zapier, Make, n8n. - [Estado da API](https://docs.weve.cx/api-reference/health.md): Healthcheck da API e das dependências. - [Criar conta](https://docs.weve.cx/api-reference/account/sign-up.md): Abre a conta de quem administra. Não emite sessão — a conta só vale depois do link da caixa de entrada, e não pertence a club nenhum: o club vem depois. - [Confirmar e-mail](https://docs.weve.cx/api-reference/account/verify-email.md): Gasta o token do link, passa a conta a valer e já abre a sessão. - [Entrar](https://docs.weve.cx/api-reference/account/sign-in.md): Abre a sessão do dashboard e devolve o token opaco. E-mail desconhecido, senha errada, conta sem senha e e-mail não confirmado respondem igual. - [Quem sou eu](https://docs.weve.cx/api-reference/me.md): A pessoa da sessão do dashboard e os clubs a que ela pertence — o degrau antes das rotas escopadas. - [Esqueci a senha](https://docs.weve.cx/api-reference/account/forgot-password.md): Manda o link de redefinição. Sempre 202, exista ou não a conta — e é a porta de quem tem conta sem senha. - [Redefinir senha](https://docs.weve.cx/api-reference/account/reset-password.md): Gasta o token, grava a senha nova, confirma o e-mail e derruba todas as sessões. - [Sair](https://docs.weve.cx/api-reference/account/sign-out.md): Encerra esta sessão, e só ela. - [Criar conta de aluno](https://docs.weve.cx/api-reference/auth/sign-up.md): Abre a conta no classroom do club. Não emite sessão — a conta só vale depois do link da caixa de entrada. - [Confirmar e-mail](https://docs.weve.cx/api-reference/auth/verify-email.md): Gasta o token de uso único e abre a sessão. Resgate no clique, nunca ao montar a tela. - [Entrar no classroom](https://docs.weve.cx/api-reference/auth/sign-in.md): Abre a sessão do aluno e devolve o token opaco. E-mail desconhecido, senha errada e e-mail não confirmado respondem igual. - [Sessão do aluno](https://docs.weve.cx/api-reference/auth/session.md): Quem é o aluno da sessão apresentada, e como encerrá-la. O `/v1/me` do classroom. - [Trocar código por sessão](https://docs.weve.cx/api-reference/auth/session-exchange.md): A outra ponta do acesso pelo dashboard: o classroom troca o código de uso único por uma sessão de aluno. - [Pedir redefinição](https://docs.weve.cx/api-reference/auth/forgot-password.md): Manda o link de senha nova. Sempre 202, exista ou não a conta. - [Redefinir senha](https://docs.weve.cx/api-reference/auth/reset-password.md): Grava a senha nova e derruba todas as sessões do aluno. - [Encerrar sessão](https://docs.weve.cx/api-reference/auth/sign-out.md): Encerra só a sessão apresentada. - [Vitrine do link de cadastro](https://docs.weve.cx/api-reference/auth/registration-link.md): O que a página de cadastro mostra antes do formulário. - [Cadastro por link](https://docs.weve.cx/api-reference/auth/register-by-link.md): Cria a conta e abre as entregas do link. - [Criar club](https://docs.weve.cx/api-reference/clubs/create.md): Cria o club com quem chamou como `owner`. O endereço no classroom é derivado do nome. - [Club da sessão](https://docs.weve.cx/api-reference/clubs/get.md): O escopo do domínio. Uma sessão só responde pelo club em que foi emitida. - [Nome e endereço do club](https://docs.weve.cx/api-reference/clubs/update.md): Renomeia o club e define o subdomínio em que o classroom atende. Com `slug` o endereço é exato; com `name`, derivado. - [Membros](https://docs.weve.cx/api-reference/clubs/members.md): Quem pertence ao club, com o papel de cada um. Qualquer membro lê. - [Convidar](https://docs.weve.cx/api-reference/clubs/invite.md): Manda um link para o e-mail entrar no club como `admin` ou `member`. Sempre 202. - [Aceitar convite](https://docs.weve.cx/api-reference/clubs/accept-invitation.md): Gasta o token do link e associa quem chamou ao club do convite. - [Club de um endereço](https://docs.weve.cx/api-reference/clubs/by-slug.md): Nome e slug do club que atende num subdomínio. Anônima: é o que as telas de entrada do classroom leem antes de existir sessão. - [Configurações do club](https://docs.weve.cx/api-reference/clubs/settings-get.md): Os avisos que o club manda por e-mail. Sem configuração, valem os defaults. - [Alterar configurações](https://docs.weve.cx/api-reference/clubs/settings-update.md): Só o que vier muda. Desligar um aviso cala também o que já estava na fila. - [Acesso ao classroom](https://docs.weve.cx/api-reference/clubs/classroom-session.md): Abre o acesso de quem administra ao classroom do club — devolve um código de uso único que o classroom troca por sessão. - [Receber evento de plataforma](https://docs.weve.cx/api-reference/webhooks/receive.md): A URL que se cola no painel da Hotmart, da Kiwify, da Eduzz, do Guru ou de um webhook genérico — grava o evento e responde antes de processar. - [Ligar plataforma](https://docs.weve.cx/api-reference/webhooks/connections-create.md): Cria a conexão e devolve, uma única vez, a URL para colar no painel da plataforma. - [Listar conexões](https://docs.weve.cx/api-reference/webhooks/connections-list.md): As contas do club nas plataformas de venda, sem token nem segredo. - [Desligar conexão](https://docs.weve.cx/api-reference/webhooks/connections-disable.md): A URL passa a responder 404; o histórico fica. - [Histórico de eventos](https://docs.weve.cx/api-reference/webhooks/events-list.md): O que as plataformas mandaram e o que o processamento concluiu de cada evento. - [Ler um evento](https://docs.weve.cx/api-reference/webhooks/events-get.md): O evento com o corpo cru, para entender por que ficou parado ou falhou. - [Reprocessar evento](https://docs.weve.cx/api-reference/webhooks/events-reprocess.md): Devolve o evento à fila. Seguro em qualquer estado: aplicar é idempotente. - [Criar produto](https://docs.weve.cx/api-reference/catalog/products-create.md): O que a plataforma vende. Sem entregas indicadas, uma nasce junto com o nome do produto. - [Listar produtos](https://docs.weve.cx/api-reference/catalog/products-list.md): Cada produto com os ids externos e as entregas que abre. - [Mapear id de plataforma](https://docs.weve.cx/api-reference/catalog/products-external-id.md): Liga um id externo ao produto e reprocessa as compras que chegaram antes. - [Desfazer mapeamento](https://docs.weve.cx/api-reference/catalog/products-external-id-remove.md): Remove um id de plataforma do produto; compras registradas ficam. - [Criar entrega](https://docs.weve.cx/api-reference/catalog/deliveries-create.md): Para bundle e entrega aberta; no caso comum a entrega nasce junto com o produto. - [Listar entregas](https://docs.weve.cx/api-reference/catalog/deliveries-list.md): O que o club abre para quem tem direito. - [Definir o que a entrega abre](https://docs.weve.cx/api-reference/catalog/deliveries-deliverables.md): Substitui o conjunto; scope all abre tudo do club. - [Alterar produto](https://docs.weve.cx/api-reference/catalog/products-update.md): Nome, cobrança e arquivamento. - [Alterar entrega](https://docs.weve.cx/api-reference/catalog/deliveries-update.md): Nome, prazo, janela aberta e arquivamento. - [Turmas de uma entrega](https://docs.weve.cx/api-reference/catalog/cohorts-list.md): Lista as turmas, com quantas pessoas estão em cada uma e o bônus. - [Criar turma](https://docs.weve.cx/api-reference/catalog/cohorts-create.md): Uma turma agrupa as matrículas de uma entrega, com janela própria. A compra paga dentro da janela de matrícula entra nela. - [Alterar turma](https://docs.weve.cx/api-reference/catalog/cohorts-update.md): Vale só para as próximas matrículas; quem já está na turma fica como estava até o reapply. - [Reaplicar turma](https://docs.weve.cx/api-reference/catalog/cohorts-reapply.md): A ação explícita que alcança quem já está na turma: recalcula janelas, concede e revoga bônus, com ledger. - [Quem está na turma](https://docs.weve.cx/api-reference/catalog/cohorts-students.md): A lista da turma com nome e e-mail, para exportar e avisar. - [Estender a turma](https://docs.weve.cx/api-reference/catalog/cohorts-extend.md): Nova data de fim para todas as matrículas ativas da turma. Só alonga. - [Revogar a turma](https://docs.weve.cx/api-reference/catalog/cohorts-revoke.md): Revoga toda matrícula da turma que ainda valia, com motivo no ledger. - [Criar curso](https://docs.weve.cx/api-reference/content/courses-create.md): Nasce rascunho, com o primeiro módulo, e como entregável. - [Listar cursos](https://docs.weve.cx/api-reference/content/courses-list.md): Os cursos do club, inclusive rascunhos e arquivados. - [Ler curso](https://docs.weve.cx/api-reference/content/courses-get.md): A estrutura inteira: módulos e aulas em ordem. - [Alterar curso](https://docs.weve.cx/api-reference/content/courses-update.md): Publica, agenda, despublica, arquiva. - [Reordenar o curso](https://docs.weve.cx/api-reference/content/course-structure.md): A árvore inteira numa chamada: ordem dos módulos, ordem das aulas, e a aula que muda de módulo. - [A biblioteca do club](https://docs.weve.cx/api-reference/media/list.md): Qualquer membro lê; escrever exige administração. - [Registra uma mídia](https://docs.weve.cx/api-reference/media/create.md): Três caminhos, e a resposta diz qual foi: - [Confirma o envio de um arquivo](https://docs.weve.cx/api-reference/media/complete.md): O browser chama isto depois de terminar o envio direto. Quem confirma, porém, é o BUCKET: a API pergunta a ele se o objeto existe e qual o tamanho, e grava o que ele responder. "Enviado" não é a palavra de quem enviou. - [Uma mídia](https://docs.weve.cx/api-reference/media/get.md) - [Renomeia, move ou arquiva](https://docs.weve.cx/api-reference/media/update.md): Arquivar tira a mídia do seletor da biblioteca, e ela CONTINUA sendo entregue onde já está em uso: aula não quebra porque alguém organizou a biblioteca. - [Exclui a mídia](https://docs.weve.cx/api-reference/media/delete.md): Só com ZERO usos: se alguma aula, anexo, capa ou logo aponta para ela, a resposta é 409 `media_in_use` com a lista de onde — que é a informação de que a pessoa precisa para decidir. Para tirar da biblioteca sem apagar o arquivo, arquive. - [Onde a mídia é usada](https://docs.weve.cx/api-reference/media/usage.md): A resposta que uma tabela polimórfica de anexos existiria para dar — e que aqui sai de chaves estrangeiras de verdade, uma por dono. - [Armazenamento do club](https://docs.weve.cx/api-reference/media/storage.md) - [Pastas da biblioteca](https://docs.weve.cx/api-reference/media/folders-list.md): A árvore inteira do club, achatada: cada pasta traz o `parent_id`, e quem desenha monta a hierarquia. São dezenas de pastas, e a tela precisa de todas para o painel lateral. - [Cria uma pasta](https://docs.weve.cx/api-reference/media/folders-create.md): `parent_id` ausente cria na raiz. O nome é único dentro da mesma pasta, e o aninhamento tem teto — ver `invalid_folder`. - [Renomeia ou move uma pasta](https://docs.weve.cx/api-reference/media/folders-update.md): Mover para dentro da própria subárvore é 422 `invalid_folder` — seria um ciclo, e a pasta sumiria da árvore. - [Apaga uma pasta](https://docs.weve.cx/api-reference/media/folders-delete.md): As pastas de dentro e as mídias sobem um nível, na mesma transação: conteúdo não some porque alguém arrumou a biblioteca. - [Aviso do provedor de vídeo](https://docs.weve.cx/api-reference/media/webhook.md): A Bunny avisa quando termina de processar um vídeo. A rota é ANÔNIMA de propósito — quem chama é uma máquina de terceiro, que não tem sessão — e por isso não declara `security`; quem a protege é o segredo no caminho. - [Criar módulo](https://docs.weve.cx/api-reference/content/modules-create.md): No fim do curso. - [Alterar módulo](https://docs.weve.cx/api-reference/content/modules-update.md): Título e se aparece vazio. - [Criar aula](https://docs.weve.cx/api-reference/content/lessons-create.md): No fim do módulo, com a liberação. - [Alterar aula](https://docs.weve.cx/api-reference/content/lessons-update.md): Só o que vier muda; nulo explícito apaga. - [Cursos do aluno](https://docs.weve.cx/api-reference/classroom/courses-list.md): Publicados e visíveis para este aluno, com acesso e progresso. - [Página do curso](https://docs.weve.cx/api-reference/classroom/courses-get.md): Módulos e aulas, com o que pode abrir agora e quando. - [Assistir aula](https://docs.weve.cx/api-reference/classroom/lessons-get.md): Corpo, vídeo e navegação; exige direito e liberação. - [Marcar progresso](https://docs.weve.cx/api-reference/classroom/lessons-progress.md): Onde parou e se concluiu. - [Baixa um material carimbado](https://docs.weve.cx/api-reference/classroom/lesson-file.md): O arquivo de uma aula com o nome e o documento do aluno impressos em todas as páginas — a marca d'água do Weve DRM. - [Turmas do aluno](https://docs.weve.cx/api-reference/classroom/cohorts-list.md): As turmas em que o aluno está, com os colegas pelo nome. - [Listar alunos](https://docs.weve.cx/api-reference/students/list.md): Nome e e-mail; exige administrar o club. - [Convidar aluno](https://docs.weve.cx/api-reference/students/invite.md): Cria a conta sem senha, abre as entregas e manda o link de acesso. - [Ler aluno](https://docs.weve.cx/api-reference/students/get.md): Matrículas e o histórico de acesso. - [Corrigir aluno](https://docs.weve.cx/api-reference/students/update.md): Nome e e-mail. Trocar o e-mail desconfirma a conta e manda o link para a caixa nova. - [Remover aluno](https://docs.weve.cx/api-reference/students/anonymize.md): Anonimiza a conta, derruba as sessões e revoga as matrículas. Não há volta. - [Conceder entrega](https://docs.weve.cx/api-reference/students/grant.md): Dá acesso a um aluno, com prazo opcional. - [Revogar matrícula](https://docs.weve.cx/api-reference/students/revoke.md): Idempotente; o motivo vai para o ledger. - [Estender matrícula](https://docs.weve.cx/api-reference/students/extend.md): Novo prazo, ou vitalício; restaura uma revogada. - [Estender um grupo](https://docs.weve.cx/api-reference/students/extend-many.md): Nova data de fim para as matrículas escolhidas. Só alonga. - [Mudar de turma](https://docs.weve.cx/api-reference/students/move.md): Passa a matrícula para outra turma da mesma entrega, ou para nenhuma. O bônus segue. - [Conceder em lote](https://docs.weve.cx/api-reference/students/grant-many.md): Dá uma entrega a um grupo de alunos, na turma que estiver matriculando ou na escolhida. - [Importar alunos](https://docs.weve.cx/api-reference/students/import.md): Cria as contas que faltam, manda o link de acesso e abre as entregas. - [Reenviar o link de acesso](https://docs.weve.cx/api-reference/students/access-link.md): Manda de novo o e-mail de 'defina a sua senha'. - [Revogar um grupo](https://docs.weve.cx/api-reference/students/revoke-many.md): Revoga as matrículas escolhidas, com motivo no ledger. - [Quem perde acesso em breve](https://docs.weve.cx/api-reference/students/expiring.md): As matrículas que vencem nos próximos dias, com aluno, entrega e turma. - [Links de cadastro](https://docs.weve.cx/api-reference/registration-links/list.md): Os links do club, ligados e desligados. - [Criar link de cadastro](https://docs.weve.cx/api-reference/registration-links/create.md): Um endereço público que cria a conta e abre as entregas configuradas. - [Alterar link de cadastro](https://docs.weve.cx/api-reference/registration-links/update.md): Nome, entregas e ligado/desligado. - [Trocar o código](https://docs.weve.cx/api-reference/registration-links/rotate.md): O código antigo deixa de valer na hora. ## OpenAPI Specs - [openapi](/api-reference/openapi.yaml)