Skip to main content

Users API

Returns one row per learner who has at least one training assignment in the organization or group associated with the API client.

List users​

GET /api/v1/users

Required scope: training.read. See Authentication for obtaining and using an access token.

curl --request GET \
--url "https://courses.e-learningcourses.com/api/v1/users?page=1&pageSize=1000&includeArchived=false" \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Accept: application/json"

Query parameters​

ParameterTypeDefaultDescription
pageinteger1Page number. Must be at least 1.
pageSizeinteger1000Users per page. Must be from 1 through 5000.
includeArchivedbooleanfalseSet to true to include archived assignments when determining which learners are returned.

Response​

{
"data": [
{
"firstName": "Alex",
"lastName": "Morgan",
"email": "alex.morgan@example.com",
"lastLoginUtc": "2026-09-18T13:24:10Z",
"registeredUtc": "2026-08-12T09:15:00Z",
"lastAssignedUtc": "2026-09-03T08:30:00Z"
}
],
"pagination": {
"page": 1,
"pageSize": 1000,
"totalRecords": 1,
"totalPages": 1
}
}

User fields​

FieldTypeDescription
firstNamestring or nullLearner's first name.
lastNamestring or nullLearner's last name.
emailstring or nullLearner's email address. When present, it matches the email field in the Training Records API.
lastLoginUtcdate-time or nullMost recent login, in UTC. Null when the learner has not logged in.
registeredUtcdate-time or nullRegistration date and time, in UTC.
lastAssignedUtcdate-time or nullMost recent matching training assignment, in UTC. Archived assignments are considered only when includeArchived=true.

Pagination​

Users are returned in a stable order by email. Continue requesting pages until page reaches totalPages. A response with no matching users has an empty data array and totalPages equal to 0.

Errors​

HTTP statusMeaning
400 Bad RequestA paging parameter is invalid.
401 UnauthorizedThe bearer token is missing, invalid, or expired.
403 ForbiddenThe token lacks training.read, or the API client is no longer authorized for its scope.
429 Too Many RequestsThe shared API rate limit was exceeded.
500 Internal Server ErrorAn unexpected server error occurred.

See Authentication rate limits for the shared limit.

OpenAPI​

https://courses.e-learningcourses.com/api/v1/openapi.json