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.
User has joined the organisation
This event is for creating a user or unsuspending a user
"{\n \"id\": \"UNIQUEREFERENCE111000\",\n \"timestamp\": \"2020-03-09T22:18:26.625Z\",\n \"eventType\": \"user_joined\",\n \"content\": {\n \"user\": {\n \"ref\": \"UID30084022\",\n \"email\": \"user@thrivelearning.com\",\n \"firstName\": \"Thomas\",\n \"lastName\": \"Jefferson\",\n \"role\": \"learner\",\n \"jobTitle\": \"Director\",\n \"managerRef\": \"UID0034234555\",\n \"startDate\": \"2021-08-19T18:00:00.000Z\",\n \"timeZone\": \"Europe/London\",\n \"languageCode\": \"en-gb\"\n }\n }\n}\n"User information has changed
This event is for updating an existing user
"{\n \"id\": \"UNIQUEREFERENCE111000\",\n \"timestamp\": \"2020-03-09T22:18:26.625Z\",\n \"eventType\": \"user_updated\",\n \"content\": {\n \"user\": {\n \"ref\": \"UID30084022\",\n \"email\": \"user@thrivelearning.com\",\n \"role\": \"learneradmin\"\n }\n }\n}\n"User has left the organisation
The event to submit when you want to suspend a user.
"{\n \"id\": \"UNIQUEREFERENCE111000\",\n \"timestamp\": \"2020-03-09T22:18:26.625Z\",\n \"eventType\": \"user_suspended\",\n \"content\": {\n \"user\": {\n \"ref\": \"UID30084022\"\n }\n }\n}\n"User has been deleted from the organisation
This event will obfuscate the user record while keeping the training history
"{\n \"id\": \"UNIQUEREFERENCE111000\",\n \"timestamp\": \"2020-03-09T22:18:26.625Z\",\n \"eventType\": \"user_deleted\",\n \"content\": {\n \"user\": {\n \"ref\": \"UID30084022\"\n }\n }\n}\n"An envelope containing information about the event and the event requirements
Your organisation's unique identifier for this individual
The date this individual left your organisation
Your organisation's unique identifier for this individual
The date this individual left your organisation
The input to create, update or suspend a user.
You may provide additional properties however they must match the configured custom fields.
Your organisation's unique identifier for this individual
The email address for the user
The given name of the individual
The family name of the individual
The role assigned to this individual. If omitted for user_joined, the role defaults to learner. If omitted for user_updated, the existing role is preserved.
The name of this individual's role in your organisation
Your organisation's unique identifier for this individual's line manager
The date this individual started working with your organisation
The date this individual left your organisation
The user’s preferred timezone. If not provided the tenant default is used
The user’s preferred language. If not provided the tenant default is used.
One caveat is that the tenant may only use the languages they have requested.
Whether this account is managed by an Authentication provider or not.
The domain this individual is associated with
The input to create, update or suspend a user.
You may provide additional properties however they must match the configured custom fields.
Your organisation's unique identifier for this individual
The email address for the user
The given name of the individual
The family name of the individual
The role assigned to this individual. If omitted for user_joined, the role defaults to learner. If omitted for user_updated, the existing role is preserved.
The name of this individual's role in your organisation
Your organisation's unique identifier for this individual's line manager
The date this individual started working with your organisation
The date this individual left your organisation
The user’s preferred timezone. If not provided the tenant default is used
The user’s preferred language. If not provided the tenant default is used.
One caveat is that the tenant may only use the languages they have requested.
Whether this account is managed by an Authentication provider or not.
The domain this individual is associated with
Your organisation's unique identifier for this individual
Your organisation's unique identifier for this individual
The date this individual left your organisation
The input to create, update or suspend a user.
You may provide additional properties however they must match the configured custom fields.
Your organisation's unique identifier for this individual
The email address for the user
The given name of the individual
The family name of the individual
The role assigned to this individual. If omitted for user_joined, the role defaults to learner. If omitted for user_updated, the existing role is preserved.
The name of this individual's role in your organisation
Your organisation's unique identifier for this individual's line manager
The date this individual started working with your organisation
The date this individual left your organisation
The user’s preferred timezone. If not provided the tenant default is used
The user’s preferred language. If not provided the tenant default is used.
One caveat is that the tenant may only use the languages they have requested.
Whether this account is managed by an Authentication provider or not.
The domain this individual is associated with
The input to create, update or suspend a user.
You may provide additional properties however they must match the configured custom fields.
Your organisation's unique identifier for this individual
The email address for the user
The given name of the individual
The family name of the individual
The role assigned to this individual. If omitted for user_joined, the role defaults to learner. If omitted for user_updated, the existing role is preserved.
The name of this individual's role in your organisation
Your organisation's unique identifier for this individual's line manager
The date this individual started working with your organisation
The date this individual left your organisation
The user’s preferred timezone. If not provided the tenant default is used
The user’s preferred language. If not provided the tenant default is used.
One caveat is that the tenant may only use the languages they have requested.
Whether this account is managed by an Authentication provider or not.
The domain this individual is associated with
Your organisation's unique identifier for this individual
Your organisation's unique identifier for this individual
OK
A user resource
The user's role
The user’s preferred language. If not provided the tenant default is used.
One caveat is that the tenant may only use the languages they have requested.
Whether the account is active or suspended
The date and time the user was created
The date and time the user was last modified
The domain this individual is associated with
Bad Request
The request is invalid
Unauthorized
You must be authorized to process this request
Resource could not be found
The resource cannot be found or does not exist
Conflict
There was a conflict with the request and the resource
Unable to process the requested entity
The request could not be processed due to a validation error
An unexpected error has occurred
When any default error occurs it may be a system failure and persistent errors may require support.
The server is unable to process the request