The SCIM API allows clients to utilize SCIM to manage Users and Groups as well as allows clients to search and retrieve learner training history data for a specific interval and based on filters. Training history data includes all in progress and completed statuses for courses and completion transcripts for Learning Initiatives.
To get started you will need to contact your BizLibrary Client Success Manager
The BizLibrary team will complete setup and provide you with the following the two items that you will need to interact with the API.
- Billing ID
- API Key
API Endpoint/URL
https://scim-api.bizlibrary.com/prod
Technical Documentation
https://scim-api.bizlibrary.com/prod/about/index.html
The documentation is publicly available. It contains a method for testing the SCIM API without writing any
code once you have your Billing ID and API Key.
Base Data Format
The SCIM API uses the JSON:API format (http://jsonapi.org.) Common JSON:API implementations are available (http://jsonapi.org/implementations)
Security & Throttling
Controlling Access
Security to the SCIM API requires you to supply your API Key as the “x-api-key” header
value.
API Rotation
We rotate API Keys based on internal security policies and needs. Our Technical Support
team will notify you 15 days in advance of a required key rotation.
Service Limits
BizLibrary monitors and limits requests per day, throttles request rates per second, and
allows a burst rate requests at a higher level. If you run into errors due to throttling,
please contact our Technical Support team (support@bizlibrary.com) for assistance.
Data Functions
All Methods
- billing_id is part of the URL as supplied by Technical Support
- The header “x-api-key” or oAuth bearer token should be included on all requests
- All QueryString values should be URL encoded
SCIM Representation
GET - /{billing_id}/scim/v2/ResourceTypes
GET- /{billing_id}/scim/v2/Schemas
GET- /{billing_id}/scim/v2/ServiceProviderConfig
SCIM
GET - /{billing_id}/scim/v2/{resource_type}
*** (Currently traininghistory is only supported in POST search)
POST - /{billing_id}/scim/v2/{resource_type}
POST - /{billing_id}/scim/v2/{resource_type}/.search
GET - /{billing_id}/scim/v2/{resource_type}/{id}
PUT - /{billing_id}/scim/v2/{resource_type}/{id}
PATCH- /{billing_id}/scim/v2/{resource_type}/{id}
SCIM OAUTH
GET - /{billing_id}/scim/v2/oauth/{resource_type}
POST - /{billing_id}/scim/v2/oauth/{resource_type}
POST - /{billing_id}/scim/v2/oauth/{resource_type}/.search
GET - /{billing_id}/scim/v2/oauth/{resource_type}/{id}
PUT - /{billing_id}/scim/v2/oauth/{resource_type}/{id}
PATCH- /{billing_id}/scim/v2/oauth/{resource_type}/{id}
Times should be passed in as ISO 8601 compliant datetimes.
All times inbound and outbound should be UTC.
| Parameter | Data Type | Data Description |
| billing_id | string | Provided by Technical Support. |
| resource_type | string | A type of resource that is managed by a service provider e.g. "users” or “groups” or “traininghistory”. |
| id | string | A unique identifier for a SCIM resource as defined by the service provider. |
| filter | string | Filtering is an OPTIONAL parameter for SCIM service providers. When specified, only those resources matching the filter expression SHALL be returned. |
| count | int | Number of records returned in result. |
| sortOrder | string | By ascending or descending. |
| startIndex | int | Used in pagination. Start index 1 = default. |
| sortBy | string | Sorting Field. |
Example Create User
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"userName": "example@noreply.com",
"name": {
"givenName": "Franklin",
"middleName": "Michael",
"familyName": "Myers"
},
"active": true,
"externalId": "PH7TH547-E643-7K73-F213-34E34H1A9874",
"addresses": [
{
"type": "work",
"streetAddress": "123 Maple Ave",
"locality": "St. Louis",
"region": "Missouri",
"postalCode": "63143",
"country": "United States",
"primary": true
}
],
"emails": [
{
"type": "work",
"value": "example@noreply.com",
"primary": true
}
],
"phoneNumbers": [
{
"type": "work",
"value": "555-456-7891",
"primary": true
}
],
"title": "HR Director",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"organization": "BizLibrary",
"department": "Operations",
"costCenter": "STL Facility",
"division": "STL",
"employeeNumber": "123456",
"manager": {
"value": "Bob White"
}
},
"jobCode": "OP456",
"hireDate": "05/01/2022",
"billingId": "xyz01",
"groups": [
{
"value": "BD7BN547-E297-4Z81-X213-34E34F1A5878"
}
]
}
Example Create Group
{
"schemas": "urn:ietf:params:scim:schemas:core:2.0:Group",
"externalId": "BP6JH547-E643-7K73-F213-34E34H1A1702",
"displayName": "Mitch Smith",
"Members": [
{
"value": "AD7BH547-E643-7K73-F213-34E34H1A7527"
}
]
}
Example Deprovision User
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"name": {
"givenName": "Franklin",
"middleName": "Michael",
"familyName": "Myers"
},
"active": false
}
Example Training History for a 5-minute period
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:TrainingHistory"
],
"filter": "activityStatusStart eq \"2022-05-04T15:30:00.000Z\" and activityStatusEnd eq \"2022-05-04T15:35:00.000Z\"",
"sortBy": "activityDateTime",
"sortOrder": "descending",
"startIndex": 1,
"count": 10
}