Skip to content

Data models ​

Structures used in request bodies and responses. Required fields are always present; "or null" means the value can be null.

AceitarConviteInput ​

FieldTypeRequiredConstraintsDescription
tokenstringyes20–200 characters
senhaSenhayes
nationalitystringno2–2 characters; ^[A-Za-z]{2}$
locale"pt-BR" | "es" | "en-US"no
aceiteslist of objectno0–4 items; default: []Accepted terms (version of the current document).
aceites[].documento"TERMO_USO" | "POLITICA_PRIVACIDADE"yes
aceites[].versaostringyes1–20 characters

AtividadeAtualizar ​

FieldTypeRequiredConstraintsDescription
dataDatano
atividadeProfissionalIdstring (uuid) or nullno
horaInicioHora or nullno
horaFimHora or nullno
descricaostring or nullnoto 2000 characters
observacoesstring or nullnoto 5000 characters
localstring or nullnoto 500 characters
obrigatoriabooleanno
canceladabooleanno
cercaAtivabooleanno
cercaRaioMinteger or nullno10…5000
latnumber or nullno-90…90
lngnumber or nullno-180…180

AtividadeCriar ​

FieldTypeRequiredConstraintsDescription
dataDatayes
atividadeProfissionalIdstring (uuid) or nullno
horaInicioHora or nullno
horaFimHora or nullno
descricaostring or nullnoto 2000 characters
observacoesstring or nullnoto 5000 characters
localstring or nullnoto 500 characters
obrigatoriabooleanno
canceladabooleanno
cercaAtivabooleanno
cercaRaioMinteger or nullno10…5000
latnumber or nullno-90…90
lngnumber or nullno-180…180

AtividadeDto ​

FieldTypeRequiredConstraintsDescription
idstring (uuid)yes
turmaIdstring (uuid)yes
dataDatayes
horaInicioHora or nullyes
horaFimHora or nullyes
atividadeProfissionalIdstring (uuid) or nullyes
atividadeProfissionalNomestring or nullyesCatalog item name (for lists and screens that do not load the catalog).
descricaostring or nullyes
observacoesstring or nullyes
localstring or nullyes
obrigatoriabooleanyes
canceladabooleanyes
cercaAtivabooleanyes
cercaRaioMinteger or nullyes
latnumber or nullyes
lngnumber or nullyes
comPresencasbooleanyesAttendance already exists: date and time are locked.

AtividadeProfissionalAtualizar ​

FieldTypeRequiredConstraintsDescription
nomestringno1–200 characters
descricaostring or nullnoto 2000 characters
ativobooleanno

AtividadeProfissionalCriar ​

FieldTypeRequiredConstraintsDescription
nomestringyes1–200 characters
descricaostring or nullnoto 2000 characters

AtividadeProfissionalDto ​

FieldTypeRequiredConstraintsDescription
idstring (uuid)yes
disciplinaIdstring (uuid)yes
nomestringyes
descricaostring or nullyes
ativobooleanyes
atividadesintegeryesHow many activities (occurrences) point to the item.

AtividadeProfissionalMesclar ​

Merge: the activities of the source item move to the target and the source is deactivated (nothing is deleted).

FieldTypeRequiredConstraintsDescription
destinoIdstring (uuid)yes

AtividadesProfissionais ​

FieldTypeRequiredConstraintsDescription
itemslist of AtividadeProfissionalDtoyes

AuditoriaEstatisticas ​

FieldTypeRequiredConstraintsDescription
deDatayes
ateDatayes
totalintegeryes0…
porAcaolist of objectyes
porAcao[].acaostringyes
porAcao[].totalintegeryes0…
porDialist of objectyes
porDia[].diaDatayes
porDia[].totalintegeryes0…

AuditoriaItem ​

FieldTypeRequiredConstraintsDescription
idstring (uuid)yes
criadoEmstringyes
acaostringyes
entidadestringyes
entidadeIdstring or nullyes
instituicaoIdstring or nullyes
instituicaoSiglastring or nullyes
atorobject or nullyesWho did it: only the id and display name. Null = the system itself or an already deleted account (anonymised accounts appear as “Person removed”).
ator.idstring (uuid)yes
ator.nomestringyes
dadosobjectyesEvent details, already filtered: fields that could hold free text are left out.
omitidosintegeryes0…How many detail fields were omitted because they could hold free text.

AuditoriaPagina ​

FieldTypeRequiredConstraintsDescription
itemslist of AuditoriaItemyes
proximostring or nullyes

AutoavaliacaoDoAluno ​

Student view: the window is the final-feedback one; podeEscrever = window open and enrollment active. minha is the only self-assessment the student sees (their own), even after the deadline.

FieldTypeRequiredConstraintsDescription
turmaobjectyes
turma.idstring (uuid)yes
turma.nomestringyes
janelaJanelaFeedbackyes
podeEscreverbooleanyes
criterioslist of CriterioDtoyes
minhaAutoavaliacaoDto or nullyes

AutoavaliacaoDto ​

The student's final self-assessment; it is here because the staff screen shows it alongside the final feedback.

FieldTypeRequiredConstraintsDescription
idstring (uuid)yes
matriculaIdstring (uuid)yes
comentariostringyes
notaslist of objectyes
notas[].criterioIdstring (uuid)yes
notas[].valorinteger or nullyes
criadoEmstringyes
atualizadoEmstringyes

AutoavaliacaoEscrever ​

The student's final self-assessment: their own grade for each active criterion of the discipline (or null = “not applicable”, only where the criterion allows it) and a required comment. Only the student writes it, during the final-feedback window.

FieldTypeRequiredConstraintsDescription
notaslist of objectyes0–200 items
notas[].criterioIdstring (uuid)yes
notas[].valorinteger or nullyes
comentariostringyes1–4000 characters

AvaliacaoMatricula ​

Grades and final assessment of one enrollment. For the student, before notasVisiveisEm, liberada is false and presencas and avaliacaoFinal are empty. Those who assess the class always see everything. rotulo: the criterion rubric label for that value, in the requested language (null without a rubric or “not applicable”).

FieldTypeRequiredConstraintsDescription
matriculaIdstring (uuid)yes
turmaobjectyes
turma.idstring (uuid)yes
turma.nomestringyes
alunoobjectyes
aluno.idstring (uuid)yes
aluno.nomestringyes
liberadabooleanyes
notasVisiveisEmData or nullyes
criterioslist of objectyes
criterios[].idstring (uuid)yes
criterios[].nomestringyes
criterios[].notaMinintegeryes
criterios[].notaMaxintegeryes
criterios[].ativobooleanyes
presencaslist of objectyes
presencas[].presencaIdstring (uuid)yes
presencas[].atividadeobjectyes
presencas[].atividade.idstring (uuid)yes
presencas[].atividade.dataDatayes
presencas[].atividade.descricaostring or nullyes
presencas[].notaslist of objectyes
presencas[].notas[].criterioIdstring (uuid)yes
presencas[].notas[].valorinteger or nullyes
presencas[].notas[].rotulostring or nullyes
presencas[].nivelSupervisaoNivelSupervisao or nullno
avaliacaoFinalobject or nullyes
avaliacaoFinal.textostringyes
avaliacaoFinal.emstring or nullyes
avaliacaoFinal.porobject or nullno
avaliacaoFinal.por.idstring (uuid)yes
avaliacaoFinal.por.nomestringyes

AvaliarPresenca ​

notas only applies when confirming: rejecting has no grade. Absent = keeps existing grades; present (even empty) = replaces the whole set.

FieldTypeRequiredConstraintsDescription
estado"CONFIRMADA" | "REJEITADA"yes
comentariostring or nullnoto 2000 characters
notaslist of Notano0–20 items
nivelSupervisaoNivelSupervisao or nullnoAbsent = keeps what was there; null = clears; only applies when confirming.

Cockpit ​

FieldTypeRequiredConstraintsDescription
alunoCockpitAluno or nullyes
avaliadorCockpitAvaliador or nullyes
gestaoCockpitGestao or nullyes

CockpitAluno ​

FieldTypeRequiredConstraintsDescription
instituicoeslist of objectnoInstitutions where the person has an enrollment (active or past): always all of them, even with the instituicaoId filter. May be missing on older servers.
instituicoes[].idstring (uuid)yes
instituicoes[].siglastringyes
instituicoes[].nomestringyes
proximaslist of objectyesUpcoming activities (from today on, in the institution's time zone), with the status of the attendance request.
proximas[].idstring (uuid)yes
proximas[].dataDatayes
proximas[].horaInicioHora or nullyes
proximas[].horaFimHora or nullyes
proximas[].descricaostring or nullyes
proximas[].turmaobjectyes
proximas[].turma.idstring (uuid)yes
proximas[].turma.nomestringyes
proximas[].disciplinaobjectyes
proximas[].disciplina.idstring (uuid)yes
proximas[].disciplina.siglastringyes
proximas[].disciplina.nomestringyes
proximas[].estado"NAO_SOLICITADA" | "SOLICITADA" | "CONFIRMADA" | "REJEITADA"yes
proximas[].obrigatoriabooleanno
proximas[].janelaobjectno
proximas[].janela.abrestring or nullyes
proximas[].janela.fechastring or nullyes
proximas[].janela.fase"antes" | "aberta" | "encerrada"yes
proximas[].janela.fusostringno
semPedidointegeryesActivities from the last 30 days that have passed and have no attendance request yet.
rejeitadasintegeryesRequests rejected in the last 60 days: the person can redo them.
frequenciaobjectyesconfirmadas and realizadas count all activities (the “X of N” on the home screen); percentual considers mandatory ones only.
frequencia.confirmadasintegeryes
frequencia.realizadasintegeryes
frequencia.percentualnumber or nullyes
turmaslist of objectyesGrades per class. They only carry values after the class releases them; before that, liberada is false and criterios is empty.
turmas[].turmaobjectyes
turmas[].turma.idstring (uuid)yes
turmas[].turma.nomestringyes
turmas[].disciplinaobjectyes
turmas[].disciplina.idstring (uuid)yes
turmas[].disciplina.siglastringyes
turmas[].disciplina.nomestringyes
turmas[].liberadabooleanyes
turmas[].feedbackFinalLiberadobooleanyes
turmas[].autoavaliacaoAbertabooleanyes
turmas[].autoavaliacaoEnviadabooleanyes
turmas[].criterioslist of objectyes
turmas[].criterios[].criterioIdstring (uuid)yes
turmas[].criterios[].nomestringyes
turmas[].criterios[].notaMinintegeryes
turmas[].criterios[].notaMaxintegeryes
turmas[].criterios[].medianumberyes
turmas[].criterios[].quantidadeintegeryes

CockpitAvaliador ​

FieldTypeRequiredConstraintsDescription
pendentesintegeryes
comExcecaointegeryesPending requests outside the window or the geofence (exception queue).
atividadesHojeintegeryesToday's activities in the classes the person assesses.
turmaslist of objectyesClasses with requests waiting, fullest first (up to 10).
turmas[].turmaobjectyes
turmas[].turma.idstring (uuid)yes
turmas[].turma.nomestringyes
turmas[].disciplinaobjectyes
turmas[].disciplina.idstring (uuid)yes
turmas[].disciplina.siglastringyes
turmas[].disciplina.nomestringyes
turmas[].pendentesintegeryes
turmas[].comExcecaointegeryesPending requests outside the window or the geofence (exception queue).
feedbackFinalobjectyesFinal feedback still to write: in classes the person assesses whose deadline is open, students (other than themselves) without their feedback. Most urgent (nearest deadline) first, up to 10 classes.
feedbackFinal.pendentesintegeryes
feedbackFinal.turmaslist of objectyesClasses with requests waiting, fullest first (up to 10).
feedbackFinal.turmas[].turmaobjectyes
feedbackFinal.turmas[].disciplinaobjectyes
feedbackFinal.turmas[].ateDatayes
feedbackFinal.turmas[].pendentesintegeryes

CockpitGestao ​

FieldTypeRequiredConstraintsDescription
instituicoesintegeryes
disciplinasintegeryes
turmasintegeryes
alunosintegeryes
semCriterioslist of objectyesActive disciplines with no active criterion: nobody can grade them (up to 5; the total is in semCriteriosTotal).
semCriterios[].idstring (uuid)yes
semCriterios[].siglastringyes
semCriterios[].nomestringyes
semCriteriosTotalintegeryes
pendenciaslist of objectyesActive classes not yet ready to receive attendance, by reason: no centre (the geofence has no reference), no activity from today on, no student, or a student who has not accepted the invitation. Up to 5 classes per reason; the total is in total. Classes and counts only, no person names.
pendencias[].tipo"SEM_CENTRO" | "SEM_ATIVIDADE" | "SEM_ALUNOS" | "CONVITE_PENDENTE"yes
pendencias[].totalintegeryes
pendencias[].turmaslist of objectyes
pendencias[].turmas[].turmaobjectyes
pendencias[].turmas[].disciplinaobjectyes
listaTurmasobjectnoStatus of each active class in scope (the same ones counted in turmas), by discipline code and class name, up to 50 (the total is in total): how many activities today and which pending items it has, with the same rules as pendencias. semCriterio: the discipline has no active criterion (blocks assessment). Ids, codes and counts only. May be missing on older servers.
listaTurmas.totalintegeryes
listaTurmas.itenslist of objectyes
listaTurmas.itens[].idstring (uuid)yes
listaTurmas.itens[].nomestringyes
listaTurmas.itens[].disciplinaobjectyes
listaTurmas.itens[].atividadesHojeintegeryes
listaTurmas.itens[].pendenciaslist of "SEM_CENTRO" | "SEM_ATIVIDADE" | "SEM_ALUNOS" | "CONVITE_PENDENTE"yesActive classes not yet ready to receive attendance, by reason: no centre (the geofence has no reference), no activity from today on, no student, or a student who has not accepted the invitation. Up to 5 classes per reason; the total is in total. Classes and counts only, no person names.
listaTurmas.itens[].semCriteriobooleanyes

ConfirmarLote ​

Batch confirmation: only pending requests, without exceptions, with no grades or comment (those stay in individual assessment). All or nothing: if one item fails, none is saved.

FieldTypeRequiredConstraintsDescription
idslist of string (uuid)yes1–100 items

ConfirmarLoteResultado ​

FieldTypeRequiredConstraintsDescription
itemslist of PresencaDtoyes

ContadorNotificacoes ​

FieldTypeRequiredConstraintsDescription
naoLidasintegeryes0…

ContatoSite ​

The website contact form (no sign-in). site is a honeypot field: invisible to people using the form; a bot that fills everything fills it too, and the API silently drops the submission.

FieldTypeRequiredConstraintsDescription
nomestringnoto 120 characters
emailEmailyes
telefonestringnoto 30 characters
mensagemstringyes20–2000 characters
sitestringnoto 200 characters

ConversaPagina ​

FieldTypeRequiredConstraintsDescription
turmaobjectyes
turma.idstring (uuid)yes
turma.nomestringyes
turma.disciplinaNomestringyes
turma.ativabooleanyes
itenslist of MensagemDtoyesOldest to newest.
anterioresstring or nullyesCursor to fetch earlier messages; null = reached the beginning.
podeEscreverbooleanyes
podeModerarbooleanyes
alteradaslist of MensagemDtoyesMessages edited or removed since alteradasDesde (for polling): the client replaces the ones it has.
agorastringyesServer clock at read time (use it as the next alteradasDesde).

CriterioAtualizar ​

Only what can change later: names, descriptions, order and active flag. Sending the key or scale is an error (400); it is not silently ignored.

FieldTypeRequiredConstraintsDescription
nomesobjectno
nomes.pt-BRstringno1–120 characters
nomes.esstringno1–120 characters
nomes.en-USstringno1–120 characters
descricoesCriterioDescricoesno
rubricasCriterioRubricasno
ordemintegerno0…999
ativobooleanno

CriterioCriar ​

FieldTypeRequiredConstraintsDescription
chavestringyes^[a-z][a-z0-9_]{1,39}$
notaMinintegeryes0…99
notaMaxintegeryes1…100
permiteNabooleannodefault: false
ordemintegerno0…999
nomesCriterioNomesyes
descricoesCriterioDescricoesno
rubricasCriterioRubricasno

CriterioDescricoes ​

FieldTypeRequiredConstraintsDescription
pt-BRstringnoto 300 characters
esstringnoto 300 characters
en-USstringnoto 300 characters

CriterioDto ​

FieldTypeRequiredConstraintsDescription
idstring (uuid)yes
disciplinaIdstring (uuid)yes
chavestringyes
notaMinintegeryes
notaMaxintegeryes
permiteNabooleanyes
ordemintegeryes
ativobooleanyes
nomestringyesName in the requester's language (falls back to Portuguese, then any language).
nomesobjectyesAll registered names, per language (for editing).
descricaostringyesHow-to-assess description in the requester's language (falls back to Portuguese; empty if none).
descricoesobjectyesAll registered descriptions, per language (for editing).
rubricaRubricayesRubric in the requester's language (falls back to Portuguese; empty if none).
rubricasobjectyesAll registered rubrics, per language (for editing).

CriterioNomes ​

Criterion name per language. Portuguese is required on creation; the others fall back to Portuguese if missing.

FieldTypeRequiredConstraintsDescription
pt-BRstringyes1–120 characters
esstringno1–120 characters
en-USstringno1–120 characters

CriterioRubricas ​

Rubric per language on create and edit. null clears that language's rubric.

FieldTypeRequiredConstraintsDescription
pt-BRRubrica or nullno
esRubrica or nullno
en-USRubrica or nullno

Criterios ​

FieldTypeRequiredConstraintsDescription
itemslist of CriterioDtoyes

Data ​

Calendar date YYYY-MM-DD, valid in the calendar.

string — ^\d{4}-\d{2}-\d{2}$

DisciplinaAtualizar ​

FieldTypeRequiredConstraintsDescription
siglastringno^[A-Za-z0-9][A-Za-z0-9._-]{0,14}$
nomestringno1–200 characters
ementastring or nullnoto 10000 characters
semanasinteger or nullno1…520
ativobooleanno

DisciplinaCriar ​

FieldTypeRequiredConstraintsDescription
siglastringyes^[A-Za-z0-9][A-Za-z0-9._-]{0,14}$
nomestringyes1–200 characters
ementastring or nullnoto 10000 characters
semanasinteger or nullno1…520

DisciplinaDto ​

FieldTypeRequiredConstraintsDescription
idstring (uuid)yes
instituicaoIdstring (uuid)yes
siglastringyes
nomestringyes
ementastring or nullyes
semanasinteger or nullyes
ativobooleanyes

DispositivoRegistrar ​

FieldTypeRequiredConstraintsDescription
tokenstringyes8–4096 characters; ^[\x21-\x7E]+$
plataforma"IOS" | "ANDROID" | "WEB"yes

DispositivoRemover ​

FieldTypeRequiredConstraintsDescription
tokenstringyes8–4096 characters; ^[\x21-\x7E]+$

Email ​

Login email: trimmed and lower-case.

string — to 254 characters; ^[^\s@]+@[^\s@]+\.[^\s@]+$

EncerrarOutrasResultado ​

Response of “end all the others”: how many connections were ended.

FieldTypeRequiredConstraintsDescription
encerradasintegeryes0…

EquipeCriar ​

A new staff member: creates the user (or reuses it by email) and gives the binding. The invitation is sent by email.

FieldTypeRequiredConstraintsDescription
emailEmailyes
nomestringyes1–200 characters
nationalitystring or nullno2–2 characters; ^[A-Za-z]{2}$
locale"pt-BR" | "es" | "en-US" or nullno
papel"CURADOR" | "PRECEPTOR" | "COORDENADOR" | "PROFESSOR" | "AUXILIAR"yes
disciplinaIdstring (uuid) or nullno
turmaIdstring (uuid) or nullno
podeAvaliarbooleannodefault: false
podeCadastrarbooleannodefault: false

ErroApi ​

FieldTypeRequiredConstraintsDescription
code"VALIDATION_FAILED" | "UNAUTHENTICATED" | "FORBIDDEN" | "NOT_FOUND" | "METHOD_NOT_ALLOWED" | "CONFLICT" | "PAYLOAD_TOO_LARGE" | "UNPROCESSABLE" | "RATE_LIMITED" | "TOKEN_INVALID" | "EXCEPTION_REQUIRED" | "ACTIVITY_CANCELLED" | "ALREADY_CONFIRMED" | "NOT_PENDING" | "EXCEPTION_REVIEW_REQUIRED" | "BATCH_REJECTED" | "FEEDBACK_CLOSED" | "LAST_ADMIN" | "LAST_CURATOR" | "INTERNAL"yes
fieldsobjectno
excecoeslist of stringno
falhaslist of objectno
falhas[].idstringyes
falhas[].code"VALIDATION_FAILED" | "UNAUTHENTICATED" | "FORBIDDEN" | "NOT_FOUND" | "METHOD_NOT_ALLOWED" | "CONFLICT" | "PAYLOAD_TOO_LARGE" | "UNPROCESSABLE" | "RATE_LIMITED" | "TOKEN_INVALID" | "EXCEPTION_REQUIRED" | "ACTIVITY_CANCELLED" | "ALREADY_CONFIRMED" | "NOT_PENDING" | "EXCEPTION_REVIEW_REQUIRED" | "BATCH_REJECTED" | "FEEDBACK_CLOSED" | "LAST_ADMIN" | "LAST_CURATOR" | "INTERNAL"yes
retryAfterSegintegerno0…
requestIdstringno

EsqueciSenhaInput ​

FieldTypeRequiredConstraintsDescription
emailEmailyes

EstatisticaAluno ​

A student's attendance in a class, counting only non-cancelled activities that have already happened (up to today).

FieldTypeRequiredConstraintsDescription
alunoIdstring (uuid)yes
nomestringyes
propriobooleanyesIt is the requesting person themself.
confirmadasintegeryes
pendentesintegeryes
rejeitadasintegeryes
naoSolicitadasintegeryes
obrigatoriasobjectyesConfirmed and held counts among mandatory activities only: the basis of percentual.
obrigatorias.confirmadasintegeryes
obrigatorias.totalintegeryes
percentualnumber or nullyesConfirmed mandatory ÷ held mandatory, from 0 to 100 with 1 decimal; null if no mandatory activity has been held yet. Optional activities do not count.
mediaslist of MediaCriterionoAverage per criterion (confirmed attendance in the window, excluding “not applicable”). Absent from the person's own row until the class releases grades. Criteria without grades do not appear.

Estatisticas ​

FieldTypeRequiredConstraintsDescription
turmaslist of EstatisticaTurmayes

EstatisticaTurma ​

FieldTypeRequiredConstraintsDescription
turmaobjectyes
turma.idstring (uuid)yes
turma.nomestringyes
turma.ativobooleanyes
disciplinaobjectyes
disciplina.idstring (uuid)yes
disciplina.siglastringyes
disciplina.nomestringyes
instituicaoobjectyes
instituicao.idstring (uuid)yes
instituicao.siglastringyes
instituicao.nomestringyes
atividadesintegeryesNon-cancelled activities that have already happened in the window.
alunoslist of EstatisticaAlunoyesAssessors see all students; someone who is only a student sees only themself.
criterioslist of objectnoCriteria shown in the averages (active or graded), in the discipline's order and the person's language.
criterios[].idstring (uuid)yes
criterios[].nomestringyes
criterios[].notaMinintegeryes
criterios[].notaMaxintegeryes
notasLiberadasbooleannoThe class has already released grades to the student.
mediasTurmalist of MediaCriterionoClass average per criterion: only for those who assess the class; never for students.
podeAvaliarbooleannoThe requester assesses the class (can export).

EvolucaoAluno ​

FieldTypeRequiredConstraintsDescription
alunoobjectyes
aluno.idstring (uuid)yes
aluno.nomestringyes
disciplinaslist of EvolucaoDisciplinayes
turmasNaoLiberadasintegeryes0…Only in the student's own view: their classes whose grades have not been released yet (they are not in the series).

EvolucaoAlunoItem ​

FieldTypeRequiredConstraintsDescription
matriculaIdstring (uuid)yes
nomestringyes
turmaobjectyes
turma.idstring (uuid)yes
turma.nomestringyes
disciplinaobjectyes
disciplina.idstring (uuid)yes
disciplina.nomestringyes

EvolucaoAlunos ​

FieldTypeRequiredConstraintsDescription
itemslist of EvolucaoAlunoItemyes

EvolucaoDisciplina ​

A student's longitudinal progress per discipline, across the classes they were in. criterios: grade over time (N/A is not a point); notaMin and notaMax give the scale. atividadesProfissionais: supervision level per catalog item (activities without an item are left out). avaliadores: how many distinct assessors (the last one of each attendance), a count only, never the name.

FieldTypeRequiredConstraintsDescription
disciplinaobjectyes
disciplina.idstring (uuid)yes
disciplina.nomestringyes
instituicaoobjectnoThe discipline's institution: with a single account across several institutions, the screen filters by it. May be missing on older servers.
instituicao.idstring (uuid)yes
instituicao.siglastringyes
instituicao.nomestringyes
turmaslist of objectyes
turmas[].idstring (uuid)yes
turmas[].matriculaIdstring (uuid)yes
turmas[].nomestringyes
turmas[].dataInicioData or nullyes
turmas[].dataFimData or nullyes
presencasAvaliadasintegeryes0…
avaliadoresintegeryes0…
criterioslist of objectyes
criterios[].idstring (uuid)yes
criterios[].nomestringyes
criterios[].notaMinintegeryes
criterios[].notaMaxintegeryes
criterios[].pontoslist of objectyes
criterios[].pontos[].atividadeIdstring (uuid)yes
criterios[].pontos[].turmaIdstring (uuid)yes
criterios[].pontos[].dataDatayes
criterios[].pontos[].valorintegeryes
atividadesProfissionaislist of objectyes
atividadesProfissionais[].idstring (uuid)yes
atividadesProfissionais[].nomestringyes
atividadesProfissionais[].pontoslist of objectyes
atividadesProfissionais[].pontos[].atividadeIdstring (uuid)yes
atividadesProfissionais[].pontos[].turmaIdstring (uuid)yes
atividadesProfissionais[].pontos[].dataDatayes
atividadesProfissionais[].pontos[].nivelNivelSupervisaoyes

ExcluirContaConfirmarInput ​

FieldTypeRequiredConstraintsDescription
tokenstringyes20–200 characters

ExcluirContaInput ​

Deleting your own account in the app: confirm with the password.

FieldTypeRequiredConstraintsDescription
senhaSenhayes

ExcluirContaSolicitarInput ​

Deletion on the web, no sign-in: step 1 asks for the link by email; step 2 confirms with the link's token.

FieldTypeRequiredConstraintsDescription
emailEmailyes

FeedbackFinalDoAluno ​

The student's own final feedback in a class: only after the deadline (janela.estado === "encerrada") and without the internal comment. Before then, liberado is false and feedbacks is empty; liberaEm is the first day the student can see it.

FieldTypeRequiredConstraintsDescription
turmaobjectyes
turma.idstring (uuid)yes
turma.nomestringyes
liberadobooleanyes
liberaEmData or nullyes
criterioslist of CriterioDtoyes
feedbackslist of FeedbackFinalDtoyes

FeedbackFinalDto ​

One final feedback. comentarioInterno only appears to the class staff and never to the student; autor is who wrote it. The student gets this same shape, always without the internal comment.

FieldTypeRequiredConstraintsDescription
idstring (uuid)yes
matriculaIdstring (uuid)yes
autorobject or nullyesNull when the author deleted their account.
autor.idstring (uuid)yes
autor.nomestringyes
comentariostringyes
comentarioInternostring or nullno
notaslist of objectyes
notas[].criterioIdstring (uuid)yes
notas[].valorinteger or nullyes
criadoEmstringyes
atualizadoEmstringyes

FeedbackFinalEscrever ​

Overall closing feedback for the student in the class. Every active criterion of the discipline comes with a value (or null = “not applicable”, only where the criterion allows it); the comment is required; the internal one is optional and never reaches the student. An empty internal text clears it.

FieldTypeRequiredConstraintsDescription
notaslist of objectyes0–200 items
notas[].criterioIdstring (uuid)yes
notas[].valorinteger or nullyes
comentariostringyes1–4000 characters
comentarioInternostring or nullnoto 4000 characters

FeedbackFinalMatricula ​

Final-feedback screen for a student, for those who assess the class or follow it. meu: the user's own feedback (null if not written yet); podeEscrever = has the assess capability in the class, the window is open and the enrollment is not theirs. equipe: other authors' feedback, with the internal one; only verTudo (class teacher, discipline coordinator, institution curator) sees them; preceptors and assistants only see their own and equipe is empty.

FieldTypeRequiredConstraintsDescription
matriculaIdstring (uuid)yes
turmaobjectyes
turma.idstring (uuid)yes
turma.nomestringyes
turma.dataInicioData or nullyes
turma.dataFimData or nullyes
alunoobjectyes
aluno.idstring (uuid)yes
aluno.nomestringyes
janelaJanelaFeedbackyes
criterioslist of CriterioDtoyes
meuFeedbackFinalDto or nullyes
podeEscreverbooleanyes
verTudobooleanyes
equipelist of FeedbackFinalDtoyes
autoavaliacaoAutoavaliacaoDto or nullnoThe student's self-assessment. Only for verTudo; null for the others and when the student has not written one.

FeedbackFinalTurma ​

The class list for those who assess or follow it: one item per active student (except the user). meuEm = when the user last saved theirs (null = still to write); total = how many feedbacks the student has, only for verTudo (null for the rest: preceptors and assistants do not know what colleagues wrote).

FieldTypeRequiredConstraintsDescription
turmaobjectyes
turma.idstring (uuid)yes
turma.nomestringyes
turma.dataInicioData or nullyes
turma.dataFimData or nullyes
janelaJanelaFeedbackyes
podeEscreverbooleanyes
verTudobooleanyes
itenslist of objectyes
itens[].matriculaIdstring (uuid)yes
itens[].alunoobjectyes
itens[].aluno.idstring (uuid)yes
itens[].aluno.nomestringyes
itens[].meuEmstring or nullyes
itens[].totalinteger or nullyes

FilaAvaliacao ​

Ordered by activity date and request time; total counts all pending items, not just the page.

FieldTypeRequiredConstraintsDescription
itemslist of FilaAvaliacaoItemyes
totalintegeryes0…

FilaAvaliacaoItem ​

FieldTypeRequiredConstraintsDescription
atividadeobjectyes
atividade.idstring (uuid)yes
atividade.descricaostring or nullyes
atividade.dataDatayes
atividade.horaInicioHora or nullyes
atividade.horaFimHora or nullyes
atividade.obrigatoriabooleanyes
atividade.turmaobjectyes
atividade.turma.idstring (uuid)yes
atividade.turma.nomestringyes
atividade.disciplinaobjectyes
atividade.disciplina.idstring (uuid)yes
atividade.disciplina.siglastringyes
atividade.disciplina.nomestringyes
linhaPresencaLinhayes
elegivelLotebooleanyesEligible for batch confirmation: pending and without an exception (rule computed on the server).

FrequenciaTurma ​

Student × activity grid of the class. Only the state of each student's request in each activity: no location, account, justification or grade. estado is NAO_SOLICITADA for future activities too (the client decides using data and hoje). Totals count only non-cancelled activities that have already happened (up to hoje); a future or cancelled activity is therefore not in total.

FieldTypeRequiredConstraintsDescription
turmaobjectyes
turma.idstring (uuid)yes
turma.nomestringyes
hojeDatayesToday's date in the institution's time zone (to highlight the “today” column).
deDatayes
ateDatayes
atividadeslist of objectyesActivities in the window, by start date and time.
atividades[].idstring (uuid)yes
atividades[].dataDatayes
atividades[].horaIniciostring or nullyes
atividades[].horaFimstring or nullyes
atividades[].descricaostring or nullyes
atividades[].obrigatoriabooleanyes
atividades[].canceladabooleanyes
alunoslist of objectyesStudents with an active enrollment, alphabetical.
alunos[].idstring (uuid)yes
alunos[].matriculaIdstring (uuid)yes
alunos[].nomestringyes
alunos[].celulaslist of objectyes
alunos[].celulas[].atividadeIdstring (uuid)yes
alunos[].celulas[].estado"NAO_SOLICITADA" | "SOLICITADA" | "CONFIRMADA" | "REJEITADA"yes
alunos[].obrigatoriasobjectyes
alunos[].obrigatorias.confirmadasintegeryes
alunos[].obrigatorias.totalintegeryes
alunos[].opcionaisobjectyes
alunos[].opcionais.confirmadasintegeryes
alunos[].opcionais.totalintegeryes
alunos[].percentualnumber or nullyes
truncadoobjectyesThe list was cut at the maximum number of students and activities; the grid and totals cover only what was returned.
truncado.atividadesbooleanyesActivities in the window, by start date and time.
truncado.alunosbooleanyesStudents with an active enrollment, alphabetical.

Fuso ​

string — 1–64 characters

Health ​

FieldTypeRequiredConstraintsDescription
status"ok" | "degraded"yes
db"up" | "down"yes
versionstringyes
localestringyes

Hora ​

Time of day HH:MM or HH:MM:SS; always returned as HH:MM:SS.

string — ^([01]\d\|2[0-3]):[0-5]\d(:[0-5]\d)?$

ImportacaoEntrada ​

FieldTypeRequiredConstraintsDescription
csvstringyes1–90000 characters
modo"simular" | "aplicar"yessimular only validates and shows what would happen; aplicar writes all or nothing (unless parcial).
parcialbooleannoPartial mode (with safeguards): imports only valid rows and returns the skipped ones in the response. simular with parcial returns hashConteudo; aplicar with parcial requires the same hashConteudo (missing or different = 409 CONFLICT). Absent or false = all or nothing.
hashConteudostringno^[0-9a-f]{64}$Hash returned by the partial dry run of the same content (SHA-256 of the normalised content, 64 hex characters).

ImportacaoRelatorio ​

FieldTypeRequiredConstraintsDescription
tipo"pessoas" | "alunos" | "atividades"yes
modo"simular" | "aplicar"yes
aplicadobooleanyesOn aplicar: true = written; false = some row had an error, nothing was written. On simular, always false.
erroArquivo"empty" | "too_many_lines" | "unterminated_quote" | "too_large" | "missing_column" or nullyesError of the file as a whole (empty, too large, required column missing).
colunaAusentestring or nullyes
resumoobjectyes
linhaslist of LinhaRelatorioyes
convitesinteger or nullyes0…Invitations that will be sent (new accounts). null = not reported (simular does not reveal whether an email already has an account).
parcialbooleannoPartial mode only. true = the request was partial.
hashConteudostringnoOnly on a partial simular: SHA-256 of the normalised content (type, target and rows read), which the partial aplicar sends back.
contagensobjectnoPartial mode only: importadas = valid rows (CRIADA, INCLUIDA, REATIVADA or JA_EXISTE, detailed in resumo); ignoradas = rows with ERRO. Imported + skipped = rows read. On simular, it is the forecast.
contagens.importadasintegeryes0…
contagens.ignoradasintegeryes0…Only on a partial aplicar: the rows left out (row, field and reason). It exists only in this response: it is not stored.
ignoradaslist of LinhaRelatorionoOnly on a partial aplicar: the rows left out (row, field and reason). It exists only in this response: it is not stored.

InstituicaoAtualizar ​

FieldTypeRequiredConstraintsDescription
nomestringno1–200 characters
locale"pt-BR" | "es" | "en-US" or nullno
timezoneFusono
retencaoMesesinteger or nullno1…600
controladorNomestring or nullno1–200 charactersPrivacy (LGPD): null clears the value and goes back to the platform default.
encarregadoNomestring or nullno1–200 characters
contatoPrivacidadeEmail or nullno
ativobooleanno

InstituicaoCriar ​

FieldTypeRequiredConstraintsDescription
siglastringyes^[A-Za-z0-9][A-Za-z0-9._-]{1,19}$
nomestringyes1–200 characters
locale"pt-BR" | "es" | "en-US" or nullno
timezoneFusono
retencaoMesesinteger or nullno1…600
curadorobjectnoThe institution's first curator: receives the invitation by email.
curador.emailEmailyes
curador.nomestringyes1–200 characters

InstituicaoDto ​

FieldTypeRequiredConstraintsDescription
idstring (uuid)yes
siglastringyes
nomestringyes
ativobooleanyes
locale"pt-BR" | "es" | "en-US" or nullyes
timezonestringyes
retencaoMesesinteger or nullyes
controladorNomestring or nullnoThe institution's privacy data; the API always sends them (null when not provided).
encarregadoNomestring or nullno
contatoPrivacidadestring or nullno

JanelaFeedback ​

FieldTypeRequiredConstraintsDescription
estado"sem_data" | "nao_abriu" | "aberta" | "encerrada"yes
prazoDiasintegeryes
abreEmData or nullyesFirst day it can be written (the class end date); null without an end date.
ateData or nullyesLast day it can be written or adjusted; null without an end date.

LinhaRelatorio ​

FieldTypeRequiredConstraintsDescription
linhaintegeryes
situacao"VALIDA" | "CRIADA" | "VINCULADA" | "INCLUIDA" | "REATIVADA" | "JA_EXISTE" | "ERRO"yes
rotulostringyesWhat identifies the row for the importer (the email, or the date and description from the file itself).
campostringno
codigo"required" | "invalid" | "too_long" | "out_of_range" | "duplicate" | "not_found"no

LoginInput ​

FieldTypeRequiredConstraintsDescription
emailEmailyes
senhaSenhayes

LogoutInput ​

Logout input: the device may send its push token to be removed too.

FieldTypeRequiredConstraintsDescription
refreshTokenstringyes20–200 characters
dispositivoTokenstringno8–4096 characters; ^[\x21-\x7E]+$

MarcarLidas ​

Option 1

FieldTypeRequiredConstraintsDescription
idslist of string (uuid)yes1–100 items

Option 2

FieldTypeRequiredConstraintsDescription
todastrueyes

MatriculaAtualizar ​

FieldTypeRequiredConstraintsDescription
ativobooleanyes

MatriculaCriar ​

An existing student (usuarioId) or a new one (email and nome; receives the invitation).

Option 1

FieldTypeRequiredConstraintsDescription
usuarioIdstring (uuid)yes

Option 2

FieldTypeRequiredConstraintsDescription
emailEmailyes
nomestringyes1–200 characters
nationalitystringno2–2 characters; ^[A-Za-z]{2}$

MatriculaDto ​

FieldTypeRequiredConstraintsDescription
idstring (uuid)yes
turmaIdstring (uuid)yes
usuarioIdstring (uuid)yes
ativobooleanyes
nomestringyes
emailstringyes
status"CONVIDADO" | "ATIVO" | "SUSPENSO"yes
jaExistiabooleannoOnly in the create-by-email response: the email already had an account and the person was bound to it.

Me ​

FieldTypeRequiredConstraintsDescription
idstring (uuid)yes
emailstringyes
nomestringyes
locale"pt-BR" | "es" | "en-US"yes
nationalitystring or nullyes
vinculoslist of VinculoDtoyes

MediaCriterio ​

A criterion's average to 1 decimal and how many grades went into it (the same calculation as the student's home).

FieldTypeRequiredConstraintsDescription
criterioIdstring (uuid)yes
medianumberyes
quantidadeintegeryes

MensagemDto ​

FieldTypeRequiredConstraintsDescription
idstring (uuid)yes
turmaIdstring (uuid)yes
autorobject or nullyesNull when the author deleted their account.
autor.idstring (uuid)yes
autor.nomestringyes
textostring or nullyesNull when the message was removed (the text is erased on removal).
criadaEmstringyes
editadaEmstring or nullyes
removidabooleanyes
removidaPorModeracaobooleanyesRemoved by a moderator (not by the author).
cursorstringyesThis message's cursor (use it in depois or antes).

MensagemTexto ​

FieldTypeRequiredConstraintsDescription
textostringyes1–2000 characters

MinhaAtividadeDto ​

FieldTypeRequiredConstraintsDescription
idstring (uuid)yes
matriculaIdstring (uuid)yes
dataDatayes
horaInicioHora or nullyes
horaFimHora or nullyes
descricaostring or nullyes
localstring or nullyes
obrigatoriabooleanyes
canceladabooleanyes
turmaobjectyes
turma.idstring (uuid)yes
turma.nomestringyes
disciplinaobjectyes
disciplina.idstring (uuid)yes
disciplina.siglastringyes
disciplina.nomestringyes
instituicaoobjectyes
instituicao.idstring (uuid)yes
instituicao.siglastringyes
instituicao.nomestringyes
estado"NAO_SOLICITADA" | "SOLICITADA" | "CONFIRMADA" | "REJEITADA"yes
presencaIdstring (uuid) or nullyes
solicitadaEmstring or nullyesWhen the request was made, if any.
avaliadaEmstring or nullyesWhen it was confirmed or rejected (null until assessed). The assessor is not included: students do not see staff names.
comentarioAvaliadorstring or nullyesThe assessor's comment. Only reaches the student themself and those who assess the class. To the student: the reason for a rejection always; for a confirmation only once the class releases grades.
relatostring or nullnoThe account of the person's own attendance (the student may rewrite it). Only on the person's own rows.
regrasPedidoobjectyesSo clients can warn before sending what the server will require: the request window (with the class tolerances), the institution's time zone (another day = different local date) and whether the geofence applies (without location, a justification is needed). The server still decides: this only avoids send, error, resend.
regrasPedido.janelaIniciostringyes
regrasPedido.janelaFimstringyes
regrasPedido.fusostringyes
regrasPedido.exigeLocalbooleanyes

MinhaConversa ​

FieldTypeRequiredConstraintsDescription
turmaIdstring (uuid)yes
turmaNomestringyes
disciplinaNomestringyes
instituicaoSiglastringyes
ativabooleanyes
naoLidabooleanyesThere is an unread message notification in this class.

MinhasAtividades ​

FieldTypeRequiredConstraintsDescription
itemslist of MinhaAtividadeDtoyes

MinhasConversas ​

FieldTypeRequiredConstraintsDescription
itemslist of MinhaConversayes

NivelSupervisao ​

integer — 1…5

Nota ​

A criterion's grade on an attendance. valor null = “not applicable”.

FieldTypeRequiredConstraintsDescription
criterioIdstring (uuid)yes
valorinteger or nullyes0…100

NotificacaoDto ​

FieldTypeRequiredConstraintsDescription
idstring (uuid)yes
evento"PEDIDO_PENDENTE" | "LEMBRETE_AVALIADOR" | "AVALIACAO_FEITA" | "MENSAGEM_CHAT" | "LEMBRETE_ATIVIDADE" | "CONVITE_SUS" | "CONTA_EXCLUIDA"yes
criadaEmstringyes
lidabooleanyes
turmaIdstring (uuid) or nullyesOnly ids and class/activity names, to build the text and link in the reader's language. Never message text.
turmaNomestring or nullyes
instituicaoNomestring or nullyesdefault: nullInstitution name (only in the deleted-account notice, which has no class).
atividadeIdstring (uuid) or nullyes
atividadeDatastring or nullyesActivity date (YYYY-MM-DD), when there is one.
quantidadeintegeryes1…How many events this notification groups (e.g. 3 new messages).

NotificacoesPagina ​

FieldTypeRequiredConstraintsDescription
itemslist of NotificacaoDtoyes
proximostring or nullyes
naoLidasintegeryes0…

Painel ​

FieldTypeRequiredConstraintsDescription
itemslist of PainelItemyes
truncadobooleanyesThere were more rows than the limit.
opcoesobjectyesFilter options: everything the person can see, regardless of the active filters.
opcoes.instituicoeslist of objectyes
opcoes.instituicoes[].idstring (uuid)yes
opcoes.instituicoes[].siglastringyes
opcoes.instituicoes[].nomestringyes
opcoes.disciplinaslist of objectyes
opcoes.disciplinas[].idstring (uuid)yes
opcoes.disciplinas[].siglastringyes
opcoes.disciplinas[].nomestringyes
opcoes.disciplinas[].instituicaoIdstring (uuid)yes
opcoes.turmaslist of objectyes
opcoes.turmas[].idstring (uuid)yes
opcoes.turmas[].nomestringyes
opcoes.turmas[].disciplinaIdstring (uuid)yes
opcoes.turmas[].ativobooleanyes
opcoes.alunoslist of objectyes
opcoes.alunos[].idstring (uuid)yes
opcoes.alunos[].nomestringyes

PainelItem ​

A panel row: one activity for one student (the person themself or someone they assess).

FieldTypeRequiredConstraintsDescription
idstring (uuid)yes
matriculaIdstring (uuid)yes
dataDatayes
horaInicioHora or nullyes
horaFimHora or nullyes
descricaostring or nullyes
localstring or nullyes
obrigatoriabooleanyes
canceladabooleanyes
turmaobjectyes
turma.idstring (uuid)yes
turma.nomestringyes
disciplinaobjectyes
disciplina.idstring (uuid)yes
disciplina.siglastringyes
disciplina.nomestringyes
instituicaoobjectyes
instituicao.idstring (uuid)yes
instituicao.siglastringyes
instituicao.nomestringyes
estado"NAO_SOLICITADA" | "SOLICITADA" | "CONFIRMADA" | "REJEITADA"yes
presencaIdstring (uuid) or nullyes
solicitadaEmstring or nullyes
avaliadaEmstring or nullyes
comentarioAvaliadorstring or nullyes
relatostring or nullno
regrasPedidoobjectyes
regrasPedido.janelaIniciostringyes
regrasPedido.janelaFimstringyes
regrasPedido.fusostringyes
regrasPedido.exigeLocalbooleanyes
alunoobjectyes
aluno.idstring (uuid)yes
aluno.nomestringyes
propriobooleanyesThe row belongs to the person themself (as a student).
podeAvaliarbooleanyesCan confirm or reject this attendance (assesses the class and it is not their own).

ParametrosDto ​

Reading of one level: what it sets (valores, null = not set) and what would apply without it (herdados).

FieldTypeRequiredConstraintsDescription
nivel"plataforma" | "instituicao"yes
valoresobjectyes
herdadosobjectyes

ParametrosInstituicaoAtualizar ​

FieldTypeRequiredConstraintsDescription
turma.tolerancia_antes_mininteger or nullno0…720
turma.tolerancia_depois_mininteger or nullno0…720
senha.tamanho_minimointeger or nullno8…128
senha.historicointeger or nullno0…24
senha.intervalo_min_horasinteger or nullno0…168
sessao.expira_diasinteger or nullno1…365
auditoria.retencao_mesesinteger or nullno1…240
lembrete.atividade_antecedencia_mininteger or nullno0…1440
lembrete.avaliador_pendencia_horasinteger or nullno0…168
notificacao.silencio_inicio_hinteger or nullno0…23
notificacao.silencio_fim_hinteger or nullno0…23
sus.convite_intervalo_diasinteger or nullno0…730
feedback.prazo_diasinteger or nullno0…180
chat.retencao_mesesinteger or nullno1…240

ParametrosPlataformaAtualizar ​

FieldTypeRequiredConstraintsDescription
turma.tolerancia_antes_mininteger or nullno0…720
turma.tolerancia_depois_mininteger or nullno0…720
senha.tamanho_minimointeger or nullno8…128
senha.historicointeger or nullno0…24
senha.intervalo_min_horasinteger or nullno0…168
sessao.expira_diasinteger or nullno1…365
auditoria.retencao_mesesinteger or nullno1…240
dados.retencao_mesesinteger or nullno1…240
lembrete.atividade_antecedencia_mininteger or nullno0…1440
lembrete.avaliador_pendencia_horasinteger or nullno0…168
notificacao.silencio_inicio_hinteger or nullno0…23
notificacao.silencio_fim_hinteger or nullno0…23
sus.convite_intervalo_diasinteger or nullno0…730
feedback.prazo_diasinteger or nullno0…180
chat.retencao_mesesinteger or nullno1…240
notificacao.retencao_diasinteger or nullno1…3650

Pendente ​

A request in the class queue (all activities).

FieldTypeRequiredConstraintsDescription
atividadeobjectyes
atividade.idstring (uuid)yes
atividade.dataDatayes
atividade.descricaostring or nullyes
linhaPresencaLinhayes

Pendentes ​

FieldTypeRequiredConstraintsDescription
itemslist of Pendenteyes

PerfilAtualizar ​

Editing your own profile. Only what the person can change alone: email and roles are not included.

FieldTypeRequiredConstraintsDescription
nomestringno1–200 characters
nationalitystring or nullno2–2 characters; ^[A-Za-z]{2}$
locale"pt-BR" | "es" | "en-US" or nullno
lattesUrl"" | stringnoLattes CV address (https).
conselhoCodigostring or nullnoto 60 charactersNumber at the professional council. Only the person themself sees it.
anoGraduacaointeger or nullno1930…2100
residenciabooleanno
especializacaobooleanno
mestradobooleanno
doutoradobooleanno
minibiostring or nullnoto 2000 characters

PerfilDto ​

The person's own full profile (GET /me/perfil). Never returned to others.

FieldTypeRequiredConstraintsDescription
nomestringyes
emailstringyes
nationalitystring or nullyes
locale"pt-BR" | "es" | "en-US" or nullyes
lattesUrlstring or nullyes
conselhoCodigostring or nullyes
anoGraduacaointeger or nullyes
residenciabooleanyes
especializacaobooleanyes
mestradobooleanyes
doutoradobooleanyes
minibiostring or nullyes
temFotobooleanyesIs there a profile photo? The photo itself comes from GET /me/foto.
fotoEmstring or nullyesChanges with each photo change (use it to refresh the avatar cache).

PoliticaDto ​

Current privacy policy (same shape as the terms) and its default public address.

FieldTypeRequiredConstraintsDescription
versaointeger or nullyes
textosTermoTextosyes
publicadoEmstring (date-time) or nullyes
urlPublicastringyes

PoliticaPublica ​

The policy's public page (no sign-in): the address that app stores and emails point to.

FieldTypeRequiredConstraintsDescription
instituicaoobjectyes
instituicao.siglastringyes
instituicao.nomestringyes
politicaTermoDtoyes
privacidadePrivacidadeDtoyes
urlPublicastringyes

Preferencia ​

Preference per type: the person turns off the in-app notice and/or the push. Absent = on.

FieldTypeRequiredConstraintsDescription
evento"PEDIDO_PENDENTE" | "LEMBRETE_AVALIADOR" | "AVALIACAO_FEITA" | "MENSAGEM_CHAT" | "LEMBRETE_ATIVIDADE" | "CONVITE_SUS" | "CONTA_EXCLUIDA"yes
inAppbooleanyes
pushbooleanyes

Preferencias ​

FieldTypeRequiredConstraintsDescription
itemslist of Preferenciayes

PreferenciasAtualizar ​

FieldTypeRequiredConstraintsDescription
itemslist of Preferenciayes1–7 items

PresencaDto ​

FieldTypeRequiredConstraintsDescription
idstring (uuid)yes
atividadeIdstring (uuid)yes
matriculaIdstring (uuid)yes
estado"SOLICITADA" | "CONFIRMADA" | "REJEITADA"yes
solicitadaEmstringyes
capturadaEmstring or nullyes
relatostring or nullyes
justificativastring or nullyes
excecoeslist of "FORA_DA_JANELA" | "FORA_DA_CERCA" | "OUTRO_DIA"yes
avaliadaEmstring or nullyes
comentarioAvaliadorstring or nullyes
notaslist of NotayesOnly for those who assess the class. Students see their grades in the panel after the class releases them.
nivelSupervisaoNivelSupervisao or nullnoSupervision level given by the last assessor; null = not provided. Only for assessors (students read it in the assessment after release).
relatoEditadoEmstring or nullnoLast edit of the account by the student; null = never edited. After avaliadaEm = edited after the assessment.
relatoVersoesintegernoHow many earlier versions of the account exist (assessors read them at .../relato/versoes).

PresencaLinha ​

A row of the assessor's list: the enrollment with its request (if any). Location only appears here.

FieldTypeRequiredConstraintsDescription
matriculaIdstring (uuid)yes
usuarioIdstring (uuid)yes
nomestringyes
presencaPresencaDto or nullyes
latnumber or nullyes
lngnumber or nullyes
precisaoMnumber or nullyes
avaliadorobject or nullnoWho assessed last: only in the assessor's view, never the student's.
avaliador.idstring (uuid)yes
avaliador.nomestringyes
dentroDaArea"dentro" | "fora" | "sem_localizacao"noWhere the request fell relative to the activity's geofence, only the band (never metres): the same rule that requires a justification. Absent = the geofence does not apply to this activity (off or no centre/radius) or there is no request.

PresencaLinhas ​

FieldTypeRequiredConstraintsDescription
atividadeobjectyes
atividade.idstring (uuid)yes
atividade.turmaIdstring (uuid)yes
atividade.dataDatayes
atividade.descricaostring or nullyes
itemslist of PresencaLinhayes

PresencaSolicitar ​

FieldTypeRequiredConstraintsDescription
relatostringnoto 2000 charactersUp to 2000 characters.
justificativastringnoto 2000 charactersRequired when the request falls under an exception.
clienteIdstring (uuid)noGenerated on the device: resending the offline queue does not duplicate.
capturadaEmstring (date-time)noThe moment the device captured the request (offline queue).
latnumberno-90…90
lngnumberno-180…180
precisaoMintegerno0…1000000

PrimeiroAcessoConfirmarInput ​

FieldTypeRequiredConstraintsDescription
emailEmailyes
codigostringyes^\d{6}$
senhaSenhayes

PrimeiroAcessoSolicitarInput ​

FieldTypeRequiredConstraintsDescription
emailEmailyes

PrivacidadeDto ​

What the person sees about how their data is handled at the institution. controlador and encarregado null = the institution has not provided them yet. contato is always filled (the institution's or the default); contatoPadrao says which one it is.

FieldTypeRequiredConstraintsDescription
controladorstring or nullyes
encarregadostring or nullyes
contatostringyes
contatoPadraobooleanyes

PushWebConfig ​

Public Firebase configuration for the browser (not a secret); absent = browser push is off.

FieldTypeRequiredConstraintsDescription
apiKeystringyes
appIdstringyes
projectIdstringyes
messagingSenderIdstringyes
vapidKeystringnoPublic VAPID key, if the project uses its own; without it the SDK uses Firebase's default.

QrResolver ​

FieldTypeRequiredConstraintsDescription
tokenstringyes20–2000 characters

QrResolvido ​

FieldTypeRequiredConstraintsDescription
turmaIdstring (uuid)yes
atividadeobjectyes
atividade.idstring (uuid)yes
atividade.dataDatayes
atividade.descricaostring or nullyes
linhaPresencaLinhayes

QrToken ​

FieldTypeRequiredConstraintsDescription
tokenstringyes
expiraEmstringyes

RedefinirSenhaInput ​

FieldTypeRequiredConstraintsDescription
tokenstringyes20–200 characters
senhaSenhayes

RefreshInput ​

FieldTypeRequiredConstraintsDescription
refreshTokenstringyes20–200 characters

RelatoEditar ​

The student rewrites the account after the request, even once assessed. The previous version is kept and the edit goes to the audit log (without the text). It does not reopen the assessment: state, grades and comment stay as they are. Empty text clears the account (the previous version is still kept).

FieldTypeRequiredConstraintsDescription
relatostringyesto 2000 characters

RelatoVersoes ​

Earlier versions of the account, newest first. Only for those who assess the class.

FieldTypeRequiredConstraintsDescription
itemslist of objectyes
items[].idstring (uuid)yes
items[].textostringyes
items[].substituidoEmstringyes

Rubrica ​

object

Senha ​

Plain-text password, sent only here. The minimum length is set by the institution's policy.

string — 1–128 characters

Sessao ​

FieldTypeRequiredConstraintsDescription
accessTokenstringyes
refreshTokenstringyes
expiresInintegeryesAccess token lifetime, in seconds.
usuarioMeyes

SessaoAtivaDto ​

One connection (a session with an active refresh). Never exposes the token or IP.

FieldTypeRequiredConstraintsDescription
idstring (uuid)yes
agentestring or nullyesUser-Agent reported at login, truncated; may be null.
criadaEmstringyes
expiraEmstringyes
atualbooleanyesIt is the requester's own session (only if the refresh token was sent).

SessoesAtivas ​

FieldTypeRequiredConstraintsDescription
itemslist of SessaoAtivaDtoyes

SusEnviada ​

FieldTypeRequiredConstraintsDescription
idstring (uuid)yes
pontuacaonumberyes

SusRespostaInput ​

FieldTypeRequiredConstraintsDescription
respostaslist of integeryes10–10 itemsThe 10 items of the positive version, in order, on a 1–5 scale.
observacoesstringnoto 2000 characters

SusResumo ​

FieldTypeRequiredConstraintsDescription
totalintegeryes
medianumber or nullyesAverage SUS score; null without answers.
porItemlist of numberyesAverage of each item (1–5), in order; empty without answers.

TermoDto ​

Current version. versao null = the institution has not published terms yet.

FieldTypeRequiredConstraintsDescription
versaointeger or nullyes
textosTermoTextosyes
publicadoEmstring (date-time) or nullyes

TermoPublicar ​

Publishes a new version of the institution's terms. At least one language must have text.

FieldTypeRequiredConstraintsDescription
textosTermoTextosyes

TermosDosMeus ​

Current terms and policy of each institution where the person has an active binding or enrollment (“Terms of use” screen).

FieldTypeRequiredConstraintsDescription
itemslist of objectyes
items[].instituicaoobjectyes
items[].instituicao.idstring (uuid)yes
items[].instituicao.siglastringyes
items[].instituicao.nomestringyes
items[].termoTermoDtoyes
items[].politicaTermoDtoyes
items[].urlPublicastringyes
items[].privacidadePrivacidadeDtoyes

TermoTextos ​

One text per language; a missing language falls back to pt-BR (default).

FieldTypeRequiredConstraintsDescription
pt-BRstringnoto 60000 characters
esstringnoto 60000 characters
en-USstringnoto 60000 characters

TrocarSenhaInput ​

FieldTypeRequiredConstraintsDescription
senhaAtualSenhayes
novaSenhaSenhayes

TurmaAtualizar ​

FieldTypeRequiredConstraintsDescription
nomestringno1–200 characters
enderecostring or nullnoto 500 characters
localAtividadestring or nullnoto 500 characters
latnumber or nullno-90…90
lngnumber or nullno-180…180
toleranciaAntesMininteger or nullno0…720
toleranciaDepoisMininteger or nullno0…720
notasVisiveisEmData or nullno
ativobooleanno

TurmaCriar ​

FieldTypeRequiredConstraintsDescription
nomestringyes1–200 characters
enderecostring or nullnoto 500 characters
localAtividadestring or nullnoto 500 characters
latnumber or nullno-90…90
lngnumber or nullno-180…180
toleranciaAntesMininteger or nullno0…720
toleranciaDepoisMininteger or nullno0…720
notasVisiveisEmData or nullno

TurmaDto ​

FieldTypeRequiredConstraintsDescription
idstring (uuid)yes
disciplinaIdstring (uuid)yes
instituicaoIdstring (uuid)yes
nomestringyes
ativobooleanyes
enderecostring or nullyes
localAtividadestring or nullyes
latnumber or nullyes
lngnumber or nullyes
toleranciaAntesMininteger or nullyes
toleranciaDepoisMininteger or nullyes
notasVisiveisEmData or nullyes
dataInicioData or nullyes
dataFimData or nullyes

TurmaPeriodo ​

The class period (its end opens the final-feedback deadline). It has its own route and permission rule, separate from the regular class record. Both fields are always present; null = not set.

FieldTypeRequiredConstraintsDescription
dataInicioData or nullyes
dataFimData or nullyes

TurmaProntidao ​

What is still missing for the class to receive attendance (checklist for whoever sets it up). Counts only: no names or emails, so people with accounts and the institution's bindings are not exposed to those who do not manage them.

FieldTypeRequiredConstraintsDescription
centrobooleanyes
toleranciaPropriabooleanyesThe class's own tolerance; false = the default applies.
atividadesFuturasintegeryes0…Non-cancelled activities from today on (in the institution's time zone).
alunosintegeryes0…
alunosComAcessointegeryes0…Students who already accepted the invitation (active account) and can record attendance.
avaliadoresintegeryes0…People with an active account who can confirm attendance in this class, at any level (class, discipline, institution).
avaliadoresConvidadosintegeryes0…People who will be able to assess but have not accepted the invitation yet.

UsuarioAtualizar ​

FieldTypeRequiredConstraintsDescription
nomestringno1–200 characters
nationalitystring or nullno2–2 characters; ^[A-Za-z]{2}$
locale"pt-BR" | "es" | "en-US" or nullno
status"ATIVO" | "SUSPENSO"no

UsuarioContagens ​

Counts by status in the institution, honouring the query's search, type and role but not the status filter.

FieldTypeRequiredConstraintsDescription
todosintegeryes0…
ativosintegeryes0…
convidadosintegeryes0…
suspensosintegeryes0…

UsuarioDto ​

FieldTypeRequiredConstraintsDescription
idstring (uuid)yes
emailstringyes
nomestringyes
status"CONVIDADO" | "ATIVO" | "SUSPENSO"yes
nationalitystring or nullyes
locale"pt-BR" | "es" | "en-US" or nullyes
compartilhadobooleanyesHas a binding or enrollment at another institution: only the platform changes name and status.
jaExistiabooleannoOnly in the create response: the email already had an account and the person was bound to it.

UsuarioLista ​

FieldTypeRequiredConstraintsDescription
itemslist of UsuarioDtoyes
totalintegeryes0…
contagensUsuarioContagensno

VinculoAtualizar ​

FieldTypeRequiredConstraintsDescription
podeAvaliarbooleanno
podeCadastrarbooleanno
ativobooleanno

VinculoCriar ​

FieldTypeRequiredConstraintsDescription
usuarioIdstring (uuid)yes
papel"CURADOR" | "PRECEPTOR" | "COORDENADOR" | "PROFESSOR" | "AUXILIAR"yes
disciplinaIdstring (uuid) or nullno
turmaIdstring (uuid) or nullno
podeAvaliarbooleannodefault: false
podeCadastrarbooleannodefault: false

VinculoDto ​

FieldTypeRequiredConstraintsDescription
papel"ADMIN_PLATAFORMA" | "CURADOR" | "PRECEPTOR" | "COORDENADOR" | "PROFESSOR" | "AUXILIAR"yes
instituicaoIdstring (uuid) or nullyes
disciplinaIdstring (uuid) or nullyes
turmaIdstring (uuid) or nullyes
podeAvaliarbooleanyes
podeCadastrarbooleanyes

VinculoItem ​

FieldTypeRequiredConstraintsDescription
idstring (uuid)yes
usuarioIdstring (uuid)yes
nomestringyes
emailstringyes
papel"ADMIN_PLATAFORMA" | "CURADOR" | "PRECEPTOR" | "COORDENADOR" | "PROFESSOR" | "AUXILIAR"yes
instituicaoIdstring (uuid) or nullyes
disciplinaIdstring (uuid) or nullyes
turmaIdstring (uuid) or nullyes
podeAvaliarbooleanyes
podeCadastrarbooleanyes
ativobooleanyes

contato@presente.app.br