API de Registros de Treinamento
Retorna as atribuições e os resultados de conclusão dos alunos da organização ou do grupo associado ao cliente de API.
Listar registros de treinamento
GET /api/v1/training-records
Escopo obrigatório: training.read. Consulte Autenticação para obter e usar um token de acesso.
curl --request GET \
--url "https://courses.e-learningcourses.com/api/v1/training-records?page=1&pageSize=1000" \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Accept: application/json"
A credencial determina quais registros são retornados. O endpoint não aceita um identificador de organização ou grupo.
Parâmetros de consulta
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
page | inteiro | 1 | Número da página. Deve ser pelo menos 1. |
pageSize | inteiro | 1000 | Registros por página. Deve estar entre 1 e 5000. |
includeArchived | booleano | false | Use true para incluir registros arquivados. |
includeInviteStatus | booleano | false | Use true para incluir o evento mais recente do e-mail de convite. A propriedade inviteStatus é omitida quando o valor é false. |
enrolledFrom | data ou data/hora ISO 8601 | nenhum | Limite inferior inclusivo da data de atribuição. Exclui registros sem data de atribuição. |
enrolledTo | data ou data/hora ISO 8601 | nenhum | Limite superior exclusivo da data de atribuição. Exclui registros sem data de atribuição. |
Datas sem deslocamento são interpretadas como UTC. Prefira valores UTC explícitos, como 2026-09-01T00:00:00Z.
O intervalo é semiaberto: inclui enrolledFrom e exclui enrolledTo. Para incluir todas as atribuições de 30 de setembro, por exemplo, use enrolledTo=2026-10-01.
enrolledFrom e enrolledTo filtram a data em que o treinamento foi atribuído, não lastUpdatedUtc. Uma sincronização que precise detectar alterações posteriores de conclusão deve ler todas as páginas relevantes e reconciliar os registros por recordId.
Exemplo com filtros
curl --request GET \
--url "https://courses.e-learningcourses.com/api/v1/training-records?page=1&pageSize=5000&enrolledFrom=2026-09-01T00%3A00%3A00Z&enrolledTo=2026-10-01T00%3A00%3A00Z&includeArchived=true&includeInviteStatus=true" \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Accept: application/json"
Resposta
{
"data": [
{
"recordId": 125804,
"firstName": "Alex",
"lastName": "Morgan",
"email": "alex.morgan@example.com",
"courseId": "38f595b7-2ff4-4da6-bf24-91316399ec9a",
"courseName": "Supplier Code of Conduct",
"assignedDateUtc": "2026-09-03T08:30:00Z",
"completedDateUtc": "2026-09-05T14:12:08Z",
"groupId": "fbc74870-3995-4f2c-b129-c2812b3e56c7",
"groupName": "Example Supplier",
"supplierNo": "SUP-1042",
"status": "passed",
"source": "annual",
"archived": false,
"lastUpdatedUtc": "2026-09-05T14:12:12Z",
"inviteStatus": "delivered"
}
],
"pagination": {
"page": 1,
"pageSize": 1000,
"totalRecords": 1,
"totalPages": 1
}
}
Campos do registro
| Campo | Tipo | Descrição |
|---|---|---|
recordId | inteiro | Identificador do registro de status. Use-o para reconciliar coletas repetidas. |
firstName | string ou null | Nome do aluno. |
lastName | string ou null | Sobrenome do aluno. |
email | string ou null | E-mail ou nome de usuário do aluno. |
courseId | UUID | Identificador do curso. Compare-o com os identificadores de curso da API de Pacotes. |
courseName | string | Nome do curso. |
assignedDateUtc | data/hora ou null | Data e hora UTC da atribuição. |
completedDateUtc | data/hora ou null | Data e hora UTC da conclusão. |
groupId | UUID ou null | Identificador do grupo associado à atribuição. Consulte-o na API de Grupos. |
groupName | string ou null | Nome do grupo associado. |
supplierNo | string ou null | Número de fornecedor do grupo. |
status | string | Status estável para sistemas. Consulte Valores de status. |
source | string | Origem da atribuição: annual, ec ou headtrax. Uma origem sem valor é retornada como annual. |
archived | booleano | Indica se o registro está arquivado. |
lastUpdatedUtc | data/hora | Última atualização do registro de relatório, em UTC. |
inviteStatus | string ou null | Evento mais recente do convite para o pacote e o destinatário. Só aparece com includeInviteStatus=true. Trate o valor do provedor como uma string opaca. |
Valores de status
| Valor | Significado |
|---|---|
not_started | O aluno não iniciou o curso. |
in_progress | O aluno iniciou, mas não concluiu o curso. |
completed | O curso foi concluído e não possui resultado de aprovação/reprovação. |
passed | O aluno concluiu e foi aprovado. |
failed | O aluno concluiu, mas foi reprovado. |
archived | O registro está arquivado. Esse valor prevalece sobre o resultado da conclusão. |
Paginação
Os registros são retornados em ordem estável por recordId. Continue solicitando páginas até page alcançar totalPages. Se não houver correspondências, data estará vazio e totalPages será 0.
Use o objeto pagination; não calcule a próxima página somente pela quantidade recebida, pois a última página pode conter menos registros que pageSize.
Erros
| Status HTTP | Significado |
|---|---|
400 Bad Request | Um parâmetro é inválido. |
401 Unauthorized | O token está ausente, é inválido ou expirou. |
403 Forbidden | Falta training.read ou o cliente não está mais autorizado para seu escopo. |
429 Too Many Requests | Um limite foi excedido. Tente novamente com espera progressiva. |
500 Internal Server Error | Ocorreu um erro inesperado. Guarde o traceId para solicitar suporte. |
Erros de validação usam o formato padrão Problem Details:
{
"title": "One or more validation errors occurred.",
"status": 400,
"errors": {
"pageSize": [
"Page size must be between 1 and 5000."
]
},
"traceId": "00-..."
}
Consulte os limites de autenticação para conhecer o limite compartilhado.
OpenAPI
https://courses.e-learningcourses.com/api/v1/openapi.json