Medway Panorama — API (1.0.0)

API para integração com o Medway Panorama.

Autenticação

  • API Token (X-API-Token: <key>) — obrigatório em todos os endpoints.

Permissões

Endpoint Requisito
GET /institutions/ Token válido (qualquer usuário)
GET /summary/ Token válido (qualquer usuário)
GET /summary/{uid}/results/ Token válido ?institution=<uid>
GET /student-summary/ Token válido (qualquer usuário)
GET /student-summary/{uid}/results/ Token válido ?institution=<uid>

Fluxo típico

  1. Descubra suas instituições em GET /api/v1/reports/api/institutions/.
  2. Liste as consultas disponíveis em GET /api/v1/reports/api/summary/ ou GET /api/v1/reports/api/student-summary/.
  3. Consulte os resultados em GET /api/v1/reports/api/summary/{uid}/results/?institution=<uid>.

Institutions

Instituições acessíveis pelo token

Listar instituições

Retorna as instituições das quais o dono do token é membro ativo. Cada instituição inclui suas turmas (studentgroups), que podem ser usadas como filtro nos endpoints de resultados.

Authorizations:
APITokenAuth

Responses

Response samples

Content type
application/json
[
  • {
    • "uid": "b1c2d3e4-f5a6-7890-abcd-ef1234567890",
    • "name": "Faculdade Exemplo",
    • "display_name": "FEx",
    • "studentgroups": [
      ]
    }
]

Report Queries

Consultas de relatório disponíveis

Listar consultas de relatório

Retorna todas as consultas de relatório ativas. Use o uid retornado para buscar resultados em /summary/{uid}/results/.

Authorizations:
APITokenAuth

Responses

Response samples

Content type
application/json
[
  • {
    • "uid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    • "name": "Taxa de Aprovação"
    }
]

Resultados de uma consulta de relatório

Retorna os resultados de uma consulta para a instituição informada.

Comportamento por cenário:

  • Sem ?student_group (padrão): retorna o resultado mais recente de cada turma ativa da instituição. Um item por turma.
  • Com ?student_group=<uid>: retorna o resultado mais recente para aquela turma específica. Array com um item ou [] se não houver resultado.
  • Com ?period_days=<n>: filtra os resultados pelo período (em dias: 7, 30 e 90). Pode ser combinado com ?student_group.
  • Com ?start_date + ?end_date: executa a consulta em tempo real para o intervalo de datas informado, sem usar cache. Retorna um resultado por turma. Não pode ser combinado com ?period_days.

membro ativo da instituição informada em ?institution.

Authorizations:
APITokenAuth
path Parameters
uid
required
string <uuid>
Example: a1b2c3d4-e5f6-7890-abcd-ef1234567890

UID da consulta (obtido em GET /data/)

query Parameters
institution
required
string <uuid>
Example: institution=b1c2d3e4-f5a6-7890-abcd-ef1234567890

UID da instituição (obtido em GET /institutions/)

student_group
string <uuid>
Example: student_group=c3d4e5f6-a1b2-7890-abcd-ef1234567890

UID da turma. Se informado, retorna o resultado mais recente apenas para essa turma (array com um item ou []). Se omitido, retorna o mais recente por turma para toda a instituição.

period_days
integer
Example: period_days=30

Filtra pelo período em dias. Não pode ser combinado com start_date/end_date.

start_date
string <date>
Example: start_date=2026-02-15

Data de início do intervalo (formato YYYY-MM-DD). Deve ser informado junto com end_date. Quando presente, a consulta é executada em tempo real e o cache é ignorado. Não pode ser combinado com period_days.

end_date
string <date>
Example: end_date=2026-02-17

Data de fim do intervalo (formato YYYY-MM-DD). Deve ser informado junto com start_date.

Responses

Response samples

Content type
application/json
Example
[
  • {
    • "uid": "c3d4e5f6-a1b2-7890-abcd-ef1234567890",
    • "turma": "Turma A",
    • "data": [
      ]
    }
]

Student Queries

Consultas de alunos disponíveis

Listar consultas de alunos

Retorna todas as consultas de alunos ativas. Use o uid retornado para buscar resultados em /student-summary/{uid}/results/.

Authorizations:
APITokenAuth

Responses

Response samples

Content type
application/json
[
  • {
    • "uid": "x1y2z3w4-e5f6-7890-abcd-ef1234567890",
    • "name": "Desempenho por Aluno"
    }
]

Resultados de uma consulta de alunos

Retorna os resultados de uma consulta de alunos para a instituição informada.

Comportamento por cenário:

  • Sem ?student_group (padrão): retorna o resultado mais recente de cada turma ativa da instituição. Um item por turma.
  • Com ?student_group=<uid>: retorna o resultado mais recente para aquela turma específica. Array com um item ou [] se não houver resultado.
  • Com ?period_days=<n>: filtra os resultados pelo período (em dias). Pode ser combinado com ?student_group.
  • Com ?start_date + ?end_date: executa a consulta em tempo real para o intervalo de datas informado, sem usar cache. Retorna um resultado por turma. Não pode ser combinado com ?period_days.

membro ativo da instituição informada em ?institution.

Authorizations:
APITokenAuth
path Parameters
uid
required
string <uuid>
Example: x1y2z3w4-e5f6-7890-abcd-ef1234567890

UID da consulta (obtido em GET /student-summary/)

query Parameters
institution
required
string <uuid>
Example: institution=b1c2d3e4-f5a6-7890-abcd-ef1234567890

UID da instituição (obtido em GET /institutions/)

student_group
string <uuid>
Example: student_group=c3d4e5f6-a1b2-7890-abcd-ef1234567890

UID da turma. Se informado, retorna o resultado mais recente apenas para essa turma (array com um item ou []). Se omitido, retorna o mais recente por turma para toda a instituição.

period_days
integer
Example: period_days=30

Filtra pelo período em dias. Não pode ser combinado com start_date/end_date.

start_date
string <date>
Example: start_date=2026-02-15

Data de início do intervalo (formato YYYY-MM-DD). Deve ser informado junto com end_date. Quando presente, a consulta é executada em tempo real e o cache é ignorado. Não pode ser combinado com period_days.

end_date
string <date>
Example: end_date=2026-02-17

Data de fim do intervalo (formato YYYY-MM-DD). Deve ser informado junto com start_date.

Responses

Response samples

Content type
application/json
Example
[
  • {
    • "uid": "c3d4e5f6-a1b2-7890-abcd-ef1234567890",
    • "turma": "Turma A",
    • "data": [
      ]
    }
]