> For the complete documentation index, see [llms.txt](https://documentation.themembers.dev.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.themembers.dev.br/relatorios/relatorio-de-notas-de-quizzes-depreciado.md).

# Relatório de notas de quizzes DEPRECIADO

### Endpoint

<mark style="color:red;">`GET`</mark> `URL_BASE/partners/reports/student-grades/{developer_token}/{platform_token}`

### Parâmetros de query

| Nome     | Tipo      | Obrigatório | Descrição                                                |
| -------- | --------- | ----------- | -------------------------------------------------------- |
| `limit`  | `integer` | Não         | Tamanho da página entre **2** e **500**. Padrão **500**. |
| `cursor` | `string`  | Não         | Próxima página (`next_cursor`).                          |

***Não há filtros de data ou de curso neste endpoint.***

### Cabeçalhos HTTP

| Cabeçalho | Obrigatório | Observação          |
| --------- | ----------- | ------------------- |
| `Accept`  | Recomendado | `application/json`. |

### Exemplo de requisição

```http
GET /api/partners/reports/student-grades/{developer_token}/{platform_token}?limit=100 HTTP/1.1
Accept: application/json
```

### Resposta (`200 OK`)

Paginação por **cursor**.&#x20;

#### Campos de cada item em `data`

| Campo                        | Descrição                                                                                          |
| ---------------------------- | -------------------------------------------------------------------------------------------------- |
| `id`                         | Chave primária de `quiz_user_answer`.                                                              |
| `user_id`                    | UUID do aluno.                                                                                     |
| `student_name`               | Nome completo quando há sobrenome.                                                                 |
| `phone`, `document`, `email` | Contato / documento quando aplicável.                                                              |
| `registration_date`          | Primeira `accession_date` em assinaturas do **aluno** no tenant (pacotes da org); pode ser `null`. |
| `last_access_at`             | Último login.                                                                                      |
| `quiz_name`                  | Nome do quiz.                                                                                      |
| `performance_percent`        | Desempenho numérico (arredondado na serialização).                                                 |
| `approved`                   | Indicador de aprovação.                                                                            |
| `answered_at`                | `created_at` da resposta.                                                                          |

### Exemplo de resposta (trecho)

```json
{
  "data": [
    {
      "id": 891549,
      "user_id": "uuid-do-aluno",
      "student_name": "Nome Sobrenome",
      "phone": null,
      "document": null,
      "email": "aluno@exemplo.com",
      "registration_date": "2023-01-10 00:00:00",
      "last_access_at": "2025-03-01 12:00:00",
      "quiz_name": "Avaliação final",
      "performance_percent": "85.50",
      "approved": 1,
      "answered_at": "2025-03-15 18:45:00"
    }
  ],
  "path": "/api/partners/reports/student-grades/…",
  "per_page": 100,
  "next_cursor": null,
  "next_page_url": null,
  "prev_cursor": null,
  "prev_page_url": null
}
```

Na resposta real, `path` e `next_page_url` vêm como **URL absoluta** quando preenchidos.

Quando `next_cursor` é `null`, todos os registros couberam na página (`limit` ≥ total).

### Paginação

1. Primeira página: envie `limit` desejado (ou padrão).
2. Próximas: repita o mesmo `limit` e envie `cursor`.

### Erros

| HTTP    | Situação                                             |
| ------- | ---------------------------------------------------- |
| **401** | Tokens inválidos ou ausentes.                        |
| **422** | `limit` fora do intervalo permitido.                 |
| **403** | Possível bloqueio quando `User-Agent` não é enviado. |
