Skip to content

Users and bindings ​

An institution's people and roles: creation, invitation and bindings.

List the institution's people ​

GET /instituicoes/{instituicaoId}/usuarios

Access: Requires the capability ADMINISTRAR over institution (params.instituicaoId). Success status: 200.

Path parameters

ParameterTypeRequiredConstraintsDescription
instituicaoIdstring (uuid)yesInstitution id.

Query parameters

ParameterTypeRequiredConstraintsDescription
buscastringnoto 100 charactersSearch text (name or email, depending on the route).
limiteintegerno1…200; default: 50How many items per page (1 to 200; the default varies by route, usually 50).
deslocamentointegerno0…100000; default: 0How many items to skip, for paging (up to 100000).
inativos"true" | "false"nodefault: "false"true also includes inactive records.
tipo"equipe" | "alunos"noFilter by type.
papel"CURADOR" | "PRECEPTOR" | "COORDENADOR" | "PROFESSOR" | "AUXILIAR" | "ALUNO"noFilter by role (e.g. PROFESSOR).
status"CONVIDADO" | "ATIVO" | "SUSPENSO"noFilter by status.

Response

UsuarioLista

FieldTypeRequiredConstraintsDescription
itemslist of UsuarioDtoyes
totalintegeryes0…
contagensUsuarioContagensno

On error: ErroApi model.

Example

bash
curl -X GET "$API/instituicoes/{instituicaoId}/usuarios" -H "Authorization: Bearer $TOKEN"

Create a staff member and bind them ​

POST /instituicoes/{instituicaoId}/usuarios

Access: Requires the capability ADMINISTRAR over institution (params.instituicaoId). Rate limit: up to 120 calls every 60 s per origin. Success status: 201.

Path parameters

ParameterTypeRequiredConstraintsDescription
instituicaoIdstring (uuid)yesInstitution id.

Request body (EquipeCriar)

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

Response

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.

On error: ErroApi model.

Example

bash
curl -X POST "$API/instituicoes/{instituicaoId}/usuarios" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -d '{"email":"texto","nome":"texto","papel":"CURADOR"}'

Read a person of the institution ​

GET /instituicoes/{instituicaoId}/usuarios/{usuarioId}

Access: Requires the capability ADMINISTRAR over institution (params.instituicaoId). Success status: 200.

Path parameters

ParameterTypeRequiredConstraintsDescription
usuarioIdstring (uuid)yesPerson id.
instituicaoIdstring (uuid)yesInstitution id.

Response

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.

On error: ErroApi model.

Example

bash
curl -X GET "$API/instituicoes/{instituicaoId}/usuarios/{usuarioId}" -H "Authorization: Bearer $TOKEN"

Update a person of the institution ​

PATCH /instituicoes/{instituicaoId}/usuarios/{usuarioId}

Access: Requires the capability ADMINISTRAR over institution (params.instituicaoId). Success status: 200.

Path parameters

ParameterTypeRequiredConstraintsDescription
usuarioIdstring (uuid)yesPerson id.
instituicaoIdstring (uuid)yesInstitution id.

Request body (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

Response

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.

On error: ErroApi model.

Example

bash
curl -X PATCH "$API/instituicoes/{instituicaoId}/usuarios/{usuarioId}" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -d '{}'

Resend the invitation email ​

POST /instituicoes/{instituicaoId}/usuarios/{usuarioId}/convite

Access: Requires the capability ADMINISTRAR over institution (params.instituicaoId). Rate limit: up to 30 calls every 60 s per origin. Success status: 204.

Path parameters

ParameterTypeRequiredConstraintsDescription
usuarioIdstring (uuid)yesPerson id.
instituicaoIdstring (uuid)yesInstitution id.

Response

No response body.

On error: ErroApi model.

Example

bash
curl -X POST "$API/instituicoes/{instituicaoId}/usuarios/{usuarioId}/convite" -H "Authorization: Bearer $TOKEN"

List the institution's bindings ​

GET /instituicoes/{instituicaoId}/vinculos

Access: Requires the capability ADMINISTRAR over institution (params.instituicaoId). Success status: 200.

Path parameters

ParameterTypeRequiredConstraintsDescription
instituicaoIdstring (uuid)yesInstitution id.

Query parameters

ParameterTypeRequiredConstraintsDescription
buscastringnoto 100 charactersSearch text (name or email, depending on the route).
limiteintegerno1…200; default: 50How many items per page (1 to 200; the default varies by route, usually 50).
deslocamentointegerno0…100000; default: 0How many items to skip, for paging (up to 100000).
inativos"true" | "false"nodefault: "false"true also includes inactive records.
usuarioIdstring (uuid)noPerson id.

Response

list of VinculoItem (+ total)

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

On error: ErroApi model.

Example

bash
curl -X GET "$API/instituicoes/{instituicaoId}/vinculos" -H "Authorization: Bearer $TOKEN"

Create a binding (role and scope) for a person ​

POST /instituicoes/{instituicaoId}/vinculos

Access: Requires the capability ADMINISTRAR over institution (params.instituicaoId). Rate limit: up to 120 calls every 60 s per origin. Success status: 201.

Path parameters

ParameterTypeRequiredConstraintsDescription
instituicaoIdstring (uuid)yesInstitution id.

Request body (VinculoCriar)

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

Response

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

On error: ErroApi model.

Example

bash
curl -X POST "$API/instituicoes/{instituicaoId}/vinculos" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -d '{"usuarioId":"0198a000-0000-7000-8000-000000000001","papel":"CURADOR"}'

Update a binding ​

PATCH /instituicoes/{instituicaoId}/vinculos/{vinculoId}

Access: Requires the capability ADMINISTRAR over institution (params.instituicaoId). Success status: 200.

Path parameters

ParameterTypeRequiredConstraintsDescription
vinculoIdstring (uuid)yesBinding id.
instituicaoIdstring (uuid)yesInstitution id.

Request body (VinculoAtualizar)

FieldTypeRequiredConstraintsDescription
podeAvaliarbooleanno
podeCadastrarbooleanno
ativobooleanno

Response

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

On error: ErroApi model.

Example

bash
curl -X PATCH "$API/instituicoes/{instituicaoId}/vinculos/{vinculoId}" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -d '{}'

contato@presente.app.br