Profile and sessions
The person's own profile, photo, active connections, terms and the app satisfaction survey.
Submit the satisfaction survey answer
POST /feedback
Access: Any signed-in person. Rate limit: up to 10 calls every 60 s per origin. Success status: 201.
Request body (SusRespostaInput)
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
respostas | list of integer | yes | 10–10 items | The 10 items of the positive version, in order, on a 1–5 scale. |
observacoes | string | no | to 2000 characters |
Response
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
id | string (uuid) | yes | ||
pontuacao | number | yes |
On error: ErroApi model.
Example
curl -X POST "$API/feedback" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -d '{"respostas":[1]}'Satisfaction survey summary
GET /feedback/resumo
Access: Requires the capability PLATAFORMA. Success status: 200.
Response
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
total | integer | yes | ||
media | number or null | yes | Average SUS score; null without answers. | |
porItem | list of number | yes | Average of each item (1–5), in order; empty without answers. |
On error: ErroApi model.
Example
curl -X GET "$API/feedback/resumo" -H "Authorization: Bearer $TOKEN"Update your own profile
PATCH /me
Access: Any signed-in person. Success status: 200.
Request body (PerfilAtualizar)
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
nome | string | no | 1–200 characters | |
nationality | string or null | no | 2–2 characters; ^[A-Za-z]{2}$ | |
locale | "pt-BR" | "es" | "en-US" or null | no | ||
lattesUrl | "" | string | no | Lattes CV address (https). | |
conselhoCodigo | string or null | no | to 60 characters | Number at the professional council. Only the person themself sees it. |
anoGraduacao | integer or null | no | 1930…2100 | |
residencia | boolean | no | ||
especializacao | boolean | no | ||
mestrado | boolean | no | ||
doutorado | boolean | no | ||
minibio | string or null | no | to 2000 characters |
Response
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
id | string (uuid) | yes | ||
email | string | yes | ||
nome | string | yes | ||
locale | "pt-BR" | "es" | "en-US" | yes | ||
nationality | string or null | yes | ||
vinculos | list of VinculoDto | yes |
On error: ErroApi model.
Example
curl -X PATCH "$API/me" -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -d '{}'Download your own profile photo
GET /me/foto
Access: Any signed-in person. Success status: 200.
Response
Image (bytes).
On error: ErroApi model.
Example
curl -X GET "$API/me/foto" -H "Authorization: Bearer $TOKEN"Upload your own profile photo
PUT /me/foto
Access: Any signed-in person. Rate limit: up to 20 calls every 60 s per origin. Success status: 200.
Request body (file): image/jpeg, image/png ou image/webp
Response
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
nome | string | yes | ||
email | string | yes | ||
nationality | string or null | yes | ||
locale | "pt-BR" | "es" | "en-US" or null | yes | ||
lattesUrl | string or null | yes | ||
conselhoCodigo | string or null | yes | ||
anoGraduacao | integer or null | yes | ||
residencia | boolean | yes | ||
especializacao | boolean | yes | ||
mestrado | boolean | yes | ||
doutorado | boolean | yes | ||
minibio | string or null | yes | ||
temFoto | boolean | yes | Is there a profile photo? The photo itself comes from GET /me/foto. | |
fotoEm | string or null | yes | Changes with each photo change (use it to refresh the avatar cache). |
On error: ErroApi model.
Example
curl -X PUT "$API/me/foto" -H "Authorization: Bearer $TOKEN"Remove your own profile photo
DELETE /me/foto
Access: Any signed-in person. Success status: 204.
Response
No response body.
On error: ErroApi model.
Example
curl -X DELETE "$API/me/foto" -H "Authorization: Bearer $TOKEN"Read your own full profile
GET /me/perfil
Access: Any signed-in person. Success status: 200.
Response
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
nome | string | yes | ||
email | string | yes | ||
nationality | string or null | yes | ||
locale | "pt-BR" | "es" | "en-US" or null | yes | ||
lattesUrl | string or null | yes | ||
conselhoCodigo | string or null | yes | ||
anoGraduacao | integer or null | yes | ||
residencia | boolean | yes | ||
especializacao | boolean | yes | ||
mestrado | boolean | yes | ||
doutorado | boolean | yes | ||
minibio | string or null | yes | ||
temFoto | boolean | yes | Is there a profile photo? The photo itself comes from GET /me/foto. | |
fotoEm | string or null | yes | Changes with each photo change (use it to refresh the avatar cache). |
On error: ErroApi model.
Example
curl -X GET "$API/me/perfil" -H "Authorization: Bearer $TOKEN"List the person's active connections
GET /me/sessoes
Access: Any signed-in person. Success status: 200.
Headers
| Parameter | Type | Required | Constraints | Description |
|---|---|---|---|---|
x-refresh-token | string | no | Refresh token of the current session (to mark which connection is the current one). |
Response
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
items | list of SessaoAtivaDto | yes |
On error: ErroApi model.
Example
curl -X GET "$API/me/sessoes" -H "Authorization: Bearer $TOKEN"End one connection
DELETE /me/sessoes/{id}
Access: Any signed-in person. Success status: 204.
Path parameters
| Parameter | Type | Required | Constraints | Description |
|---|---|---|---|---|
id | string (uuid) | yes | Resource id. |
Response
No response body.
On error: ErroApi model.
Example
curl -X DELETE "$API/me/sessoes/{id}" -H "Authorization: Bearer $TOKEN"End all other connections
POST /me/sessoes/encerrar-outras
Access: Any signed-in person. Rate limit: up to 10 calls every 60 s per origin. Success status: 200.
Headers
| Parameter | Type | Required | Constraints | Description |
|---|---|---|---|---|
x-refresh-token | string | no | Refresh token of the current session (to mark which connection is the current one). |
Response
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
encerradas | integer | yes | 0… |
On error: ErroApi model.
Example
curl -X POST "$API/me/sessoes/encerrar-outras" -H "Authorization: Bearer $TOKEN"Current terms and policies of my institutions
GET /me/termos
Access: Any signed-in person. Success status: 200.
Response
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
items | list of object | yes | ||
items[].instituicao | object | yes | ||
items[].instituicao.id | string (uuid) | yes | ||
items[].instituicao.sigla | string | yes | ||
items[].instituicao.nome | string | yes | ||
items[].termo | TermoDto | yes | ||
items[].politica | TermoDto | yes | ||
items[].urlPublica | string | yes | ||
items[].privacidade | PrivacidadeDto | yes |
On error: ErroApi model.
Example
curl -X GET "$API/me/termos" -H "Authorization: Bearer $TOKEN"