An endpoint to create a content completion record.
The request is idempotent on the combination of userId, contentId and completedAt. Sending the same three values again returns 200 with the statement ID of the existing record rather than creating a second one; a new record returns 201. Retries are therefore safe.
The response contains a statement ID, which is not a completion ID. See CompletionStub for how to retrieve the completion itself.
HTTP Basic authentication using your Tenant ID and API secret.
- Username is the Tenant ID (i.e.
eu-west-2_AbcdEfghI) - Password is the API secret you would have received.
You can also authenticate using OAuth 2.0 client credentials (oauth2 security scheme) instead of Basic auth.
OAuth 2.0 client credentials authentication.
Use the following token endpoints (replace :tenantId with your Tenant ID):
Public API access tokens
- Staging:
https://public.api.learnstaging.link/oauth2/token/:tenantId - Production:
https://public.api.learn.link/oauth2/token/:tenantId - Staging MEA:
https://public.api.meastaging.learn.tech/oauth2/token/:tenantId - Production MEA:
https://public.api.mea.learn.tech/oauth2/token/:tenantId
- Staging:
Webhooks access tokens
- Staging:
https://user.api.learnstaging.link/oauth2/token/:tenantId - Production:
https://user.api.learn.link/oauth2/token/:tenantId - Staging MEA:
https://user.api.meastaging.learn.tech/oauth2/token/:tenantId - Production MEA:
https://user.api.mea.learn.tech/oauth2/token/:tenantId
- Staging:
All access tokens must be sent using the Authorization: Bearer <access_token> header.
Scopes
For API access (non-webhooks), the following scopes are available:
api/all– Full read and write access to the API.api/read– Read-only access to the API.api/write– Write access to the API.
For webhooks, the following scopes are available:
api/webhooks– Access to webhook functionality.api/all– Full read and write access to the API, including webhooks.
Tokens must include appropriate scopes for the endpoints you wish to call.
Request body for creating a completion record
The user ID
The content ID for the content completed
An ISO8601 for the timestamp when the completion occurred
Whether this is a live, on-system completion. Defaults to false, which treats the record as a historic completion (imported Recognition of Prior Learning) so it does not reset assignment due dates. Set to true to record a live completion that updates due dates as the most recent completion.
The completion record already exists
The identifier of the completion statement that was recorded.
This is not a completion ID. Statement IDs and completion IDs are separate identifier spaces, so a statement ID cannot be passed to GET /learning/completions/{id}, which expects a completion ID and will return 422 for a statement ID. To retrieve the completion itself, query GET /learning/completions filtered by userId and contentId.
The completion statement ID
The completion record created
The identifier of the completion statement that was recorded.
This is not a completion ID. Statement IDs and completion IDs are separate identifier spaces, so a statement ID cannot be passed to GET /learning/completions/{id}, which expects a completion ID and will return 422 for a statement ID. To retrieve the completion itself, query GET /learning/completions filtered by userId and contentId.
The completion statement ID
Unauthorized
Unauthorized
Forbidden
Forbidden
Unprocessable Content
Unprocessable Content
Internal Server Error
Internal Server Error