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>
GET /document-summary/ Token válido (qualquer usuário)
GET /document-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/, GET /api/v1/reports/api/student-summary/ ou GET /api/v1/reports/api/document-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": [
      ]
    }
]

Document Queries

Consultas de download (relatórios exportáveis) executadas em tempo real

Listar consultas de download

Retorna todas as consultas de download (relatórios exportáveis) ativas. Use o uid retornado para buscar resultados em /document-summary/{uid}/results/.

Authorizations:
APITokenAuth

Responses

Response samples

Content type
application/json
[
  • {
    • "uid": "d1e2f3a4-b5c6-7890-abcd-ef1234567890",
    • "name": "Notas por Aluno (export)"
    }
]

Resultados de uma consulta de download

Executa a consulta de download em tempo real para a instituição informada e retorna os dados diretamente na resposta (sem gerar arquivo e sem cache).

Comportamento por cenário:

  • Sem ?student_group (padrão): executa a consulta para cada turma ativa da instituição. Um item por turma.
  • Com ?student_group=<uid>: executa apenas para aquela turma. Array com um item.
  • Com ?start_date + ?end_date: o intervalo de datas é repassado para a consulta. Ignorado quando a consulta é de data fixa (is_fix_date).

Turmas sem vínculo com o CMS ou com free-trial expirado são ignoradas. Se nenhuma turma válida for encontrada, retorna 400.

Requer que o dono do token seja membro ativo da instituição informada em ?institution.

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

UID da consulta (obtido em GET /document-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, executa a consulta apenas para essa turma. Se omitido, executa para todas as turmas ativas da instituição.

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. Ignorado quando a consulta é de data fixa.

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
[
  • {
    • "uid": "c3d4e5f6-a1b2-7890-abcd-ef1234567890",
    • "turma": "Turma A",
    • "data": [
      ]
    }
]