Tudo que a plataforma sabe sobre um aluno — treinos prescritos, check-ins semanais, assinatura e agenda — disponível para ler e para escrever. É a mesma API que conecta o Claude à operação pelo servidor MCP.
https://app.tafeitoconcurso.com.br/api/v1Toda chamada leva uma chave de API no cabeçalho. Não há login nem cookie: a API foi feita para cliente de máquina, que não tem navegador para renovar sessão.
Authorization: Bearer SUA_CHAVEConsulta tudo: alunos, treinos, check-ins, assinaturas, agenda e histórico de notificações. Não altera nada.
Tudo de read, mais montar e corrigir treinos e cadastros. Uma chave read recebe 403 ao tentar escrever.
Nenhum endpoint envia WhatsApp ao aluno. O que se escreve aqui aparece no app dele, mas o disparo de mensagem continua sendo do app e do agendador — uma integração não toca no celular de ninguém.
Quatro decisões que valem para a API inteira. Elas existem porque do outro lado costuma haver um modelo de linguagem, que sabe o nome do aluno e não o identificador dele.
Onde a rota pede {aluno}, vale UUID, e-mail, telefone ou parte do nome. Se o nome for ambíguo, a resposta é 409 com os candidatos — nunca o palpite errado.
Além de YYYY-MM-DD, os campos de data aceitam today, tomorrow, +7d, -14d, e as janelas aceitam week=current | next | previous.
Cada resposta traz generated_at, today e timezone. Use o today da resposta como referência em vez de presumir a data atual.
Erros vêm com code, message e um hint acionável — o que faltou e como refazer a chamada, para a segunda tentativa dar certo.
Todos relativos a https://app.tafeitoconcurso.com.br/api/v1.
/overviewPanorama da operação: alunos ativos, inadimplentes, treinos e check-ins da semana, aderência e as notificações recentes.
/studentsÍndice de alunos com o resumo da semana, plano, situação da assinatura e último check-in. Aceita q, status e limit.
/students/{aluno}Dossiê completo: perfil, assinatura com dias até o corte, plano ativo, estatísticas, semana corrente e último check-in.
/students/{aluno}/sessionsTreinos do aluno num período, com os blocos e a prescrição já formatada. Padrão: semana corrente.
/students/{aluno}/checkinsCheck-ins semanais com as respostas já pareadas ao enunciado da pergunta.
/students/{aluno}/metricsSérie temporal de uma métrica de check-in (peso, sono, PSE) com mínimo, máximo e variação.
/students/{aluno}/subscriptionAssinatura, vencimento, ciclo de falhas de pagamento e a trilha de eventos do provedor.
/students/{aluno}/notificationsHistórico de disparos de WhatsApp para o aluno, com situação de entrega e erro.
/agendaTreinos de toda a base agrupados por dia — responde “quem treina amanhã?” numa chamada.
/sessions/{id}Um treino com os blocos prescritos e, colado a cada bloco, o que o aluno executou.
/modalitiesCatálogo de modalidades do TAF e como cada uma é medida.
/checkin-questionsEnunciados e códigos das perguntas do check-in semanal.
/students/{aluno}/sessionsCria um treino com os blocos já prescritos, numa chamada só. O aluno passa a ver o treino na data indicada.
/students/{aluno}/sessions/duplicate-weekCopia a semana de treinos para a seguinte. Recusa se a semana de destino já tiver treinos.
/sessions/{id}Muda data, título, foco, orientação ou situação do treino. Só os campos enviados são tocados.
/sessions/{id}Apaga o treino, seus blocos e os resultados registrados. Definitivo — para só tirar da conta, use status skipped.
/sessions/{id}/blocksAcrescenta um bloco de prescrição a um treino existente. Sem order, vai para o fim.
/sessions/{id}/blocks/{bloco}Corrige a prescrição de um bloco: distância, pace, séries, descanso.
/sessions/{id}/blocks/{bloco}Remove um bloco. O treino continua, com os demais blocos.
/studentsCadastra um aluno e o vincula a um professor. Sem password, a senha provisória é o próprio e-mail.
/students/{aluno}Corrige dados do aluno, troca o professor responsável e liga/desliga cada tipo de aviso.
/students/{aluno}/accessLibera ou corta o acesso. Cortar bloqueia o login e tira o aluno do WhatsApp — e exige informar o motivo.
Prescrever um treino para amanhã. Repare que a resposta devolve a frase de prescrição já montada — a mesma que o aluno lê no app e no PDF do WhatsApp.
curl -X POST "https://app.tafeitoconcurso.com.br/api/v1/students/joao@email.com/sessions" \
-H "Authorization: Bearer SUA_CHAVE" \
-H "Content-Type: application/json" \
-d '{
"date": "tomorrow",
"title": "Intervalado 6x800m",
"focus": "Resistência aeróbia",
"blocks": [
{ "label": "Aquecimento", "duration_seconds": 600 },
{
"modality": "corrida",
"sets": 6,
"distance_m": 800,
"target_pace": "3:20/km",
"rest_seconds": 120
}
]
}'{
"generated_at": "2026-08-03T12:00:00.000Z",
"today": "2026-08-03",
"timezone": "America/Sao_Paulo",
"created": true,
"blocks_created": 2,
"session": {
"date": "2026-08-04",
"weekday": "Terça-feira",
"title": "Intervalado 6x800m",
"status_label": "Planejado",
"blocks": [
{ "title": "Aquecimento", "prescription": "10min" },
{
"title": "Corrida",
"prescription": "6 × 800 m · 3:20/km · descanso 2min"
}
]
}
}Existe um servidor MCP que transforma cada endpoint desta página em uma ferramenta do Claude. Dá para perguntar “quem treina amanhã?” e mandar montar a semana de um aluno, em português, sem escrever chamada nenhuma.
https://tafeito-mcp.torresgw1.workers.dev/mcpA conexão é por OAuth e o acesso é nominal: quem entra como owner lê e escreve; quem entra como colaborador só lê. A chave da API nunca sai do servidor.
Como conectarPrecisa de uma chave para integrar? contato@tafeitoconcurso.com.br