Skip to content

API: users

List the users of an LTI tool, unenrol a user from a course, or delete users.

These endpoints read the users that registered through an LTI tool and remove users. Unenrolling takes a user out of one course and can reset their progress there; deleting removes the account from the platform. Users that registered through a sign-up URL are listed and deleted in API: sign-up URLs (magic).

Every endpoint accepts both GET and POST; the heading shows the method the specification lists first. Uploads must use POST. Send your API key in the Access-Token header. The base URL is https://<your-platform>/local/ltisaas/api.php/v1; use v0 with the token dummy to get test data. Error responses are JSON with success: false, error and debuginfo. Authentication, versions and limits are explained in API documentation.

Generated from the LtiSaas API specification 1.0, retrieved 2026-10-30 from dev-auto.

EndpointDescription
GET /user/listGet list of users in a tool
POST /user/unenrolUnenrol a user from a course
GET /user/deleteDelete a user by ID
GET /user/delete_bulkDelete multiple users by IDs

GET /user/list

Get list of users in a tool. This endpoint retrieves a list of users that are registered in a specific tool. The result is a list of users with their respective information, which can be used for further operations or analysis.

Parameters

NameInTypeRequiredDescription
toolidqueryintegernoThe identifier of the tool (optional).

Example request

curl -H "Access-Token: <your token>" \
  "https://<your-platform>/local/ltisaas/api.php/v1/user/list"

Example response (200). LTI registrations within a tool for a specific time period.

{
  "results": [
    {
      "userid": 14,
      "firstname": "John",
      "lastname": "Doe",
      "email": "test@example.com",
      "lastip": "127.0.0.1",
      "lti_lastgrade": 0.9,
      "lti_lastaccess": 1689797870,
      "lti_timecreated": 1589797870
    }
  ]
}

Errors: 400 Bad Request, 401 Unauthorized

POST /user/unenrol

Unenrol a user from a course. Unenrols a user from a course and optionally resets all course progress, including completion data, activity completion, SCORM tracking data, and grades. The user account itself is not deleted.

Request body (application/json).

FieldTypeRequiredDescription
useridintegeryesUser ID. Example: 123.
courseidintegeryesCourse ID. Example: 45.
resetintegernoWhether to reset all progress for the user in the course. 0 = keep progress, 1 = reset progress. Allowed values: 0, 1. Default: 0. Example: 1.

Example request

curl -X POST -H "Access-Token: <your token>" -H "Content-Type: application/json" \
  -d '{"userid": 123, "courseid": 45}' \
  "https://<your-platform>/local/ltisaas/api.php/v1/user/unenrol"

Example response (200). User successfully unenrolled.

{
  "status": true,
  "resetperformed": true,
  "message": "User unenrolled from course."
}

Errors: 400 Invalid request

GET /user/delete

Delete a user by ID. This endpoint deletes a user based on a given ID. Upon successful deletion, the user will be removed from the system. In case the user ID is not found or cannot be deleted due to certain reasons, appropriate error responses will be returned.

Parameters

NameInTypeRequiredDescription
idqueryintegeryesThe identifier of the user.

Example request

curl -H "Access-Token: <your token>" \
  "https://<your-platform>/local/ltisaas/api.php/v1/user/delete?id=<id>"

Example response (200). Returns success if the operation was successful.

{
  "success": true
}

Errors: 400 Bad Request, 401 Unauthorized

GET /user/delete_bulk

Delete multiple users by IDs. This endpoint deletes multiple users based on given IDs. Upon successful deletion, the users will be removed from the system. In case any of the user IDs are not found or cannot be deleted due to certain reasons, an appropriate error response will be returned.

Parameters

NameInTypeRequiredDescription
idsqueryarray of integeryesComma-separated list of identifiers of the users to delete. Comma-separated.

Example request

curl -H "Access-Token: <your token>" \
  "https://<your-platform>/local/ltisaas/api.php/v1/user/delete_bulk?ids=<ids>"

Example response (200). Returns success if the operation was successful.

{
  "success": true
}

Errors: 400 Bad Request, 401 Unauthorized

Last updated on