API Reference
Users
SCIM Users represent end-users in your OutThink organization. You can create, update, list, activate, deactivate and delete users within the organization via the SCIM API.
SCIM Attributes
| SCIM Attribute | Description | Required | Type |
|---|---|---|---|
| userName | Unique internal identifier of the user in the source system | Yes | string |
| active | Whether the user is in an active (enabled) state | No | boolean |
| externalId | External reference identifier of the user | No | string |
| name.givenName | User's first (or given) name | Yes | string |
| name.familyName | User's last name (or surname) | Yes | string |
| emails[type eq "work"].value | The user's corporate email address | Yes | string |
| addresses[type eq "work"].country | The user's country of residence or work | No | string |
| roles[primary eq true].value | The job title of the user | No | string |
| urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:department | The name of the department to which the user belongs | No | string |
| urn:ietf:params:scim:schemas:extension:enterprise:2.0:User:division | The name of the corporate division to which the user belongs | No | string |
| urn:ietf:params:scim:schemas:extension:enterprise:2.0:employeeNumber | The user's unique identifier in the corporate LMS | No | string |
| nickName | The user's unique name, badge Id, or other identifier, used for identification of the user, typically where email address is unavailable | No | string |
| preferredLanguage | The user's preferred language | No | string |
Other attributes supported by the SCIM specification, if provided, won't be synchronized between Identity Providers and OutThink.
Supported SCIM Schemas
OutThink uses the core SCIM schema, plus the Enterprise User extension schema. The latter is used to convey the following information for end-users (learners):
- department
- division
- employeeNumber
See the SCIM schema specification for full details of SCIM schemas.
Supported Operations
| Operation | Description |
|---|---|
POST /Users | Creates a user |
GET /Users/$userID | Gets a single user |
GET /Users | Search for users with filtering, via GET |
POST /Users/.search | Search for users with filtering, via POST |
PUT /Users/$userID | Updates a single user (all attributes) |
PATCH /Users/$userID | Updates a single user (add, replace, remove selected attributes) |
DELETE /Users/$userID | Deletes a single user |
GET /ServiceProviderConfig | Gets service provider configuration |
GET /Schemas | Gets all supported schemas |
GET /Schemas/$schemaID | Gets a specific schema |
Example Request
The following is an example request received by the OutThink SCIM API for creating an end-user.
# Example request to create an end-user
POST https://outthink-api.azure-api.net/scim/Organizations/xxxxxxxxxxxxxx/v2/Users
Content-Type: application/scim+json
Authorization: Bearer xxxxxxxxxxxxxx
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
],
"userName": "john.smith@outthink.io",
"externalId": "81ef27b8-80ce-4c24-ba1e-067048806ecf",
"active": true,
"name": {
"familyName": "John",
"givenName": "Smith"
},
"emails": [
{
"value": "john.smith@outthink.io",
"type": "work"
},
{
"value": "mary.jones@outthink.io",
"type": "other"
}
],
"addresses": [
{
"country": "GB",
"type": "work"
}
],
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"department": "Marketing",
"division": "Southern",
"employeeNumber": "12847A"
},
"roles": [
{
"value": "Marketing Assistant",
"primary": true
}
],
"nickName": "A-12132",
"preferredLanguage": "en-GB"
}
Line Managers
Due to some provider's non-conformance to the SCIM specification, ingestion of end-user line managers (if required) should now be achieved via a GraphAPI integration.