SCIM Users API
The SCIM Users API is based on the open standard System for Cross-domain Identity Management (SCIM): Protocol 1.1. SCIM is an open standard used for automating the exchange of user identity information between identity domains or IT systems. Its purpose is to facilitate and ease the management of user identities in cloud based applications. BigPanda uses JSON-based formats for SCIM.
SCIM Users
Authentication
All BigPanda APIs require Bearer Token Authorization in the call headers.
This API uses the User API Key type of Authorization token.
BigPanda recommends adding Authentication headers only in the secure tool you use to make API calls.
curl --request GET \ --url https://api.bigpanda.io/resources/v2.0/scim/ServiceProviderConfigs \ --header 'Authorization: Bearer <User API Key>' \ --header 'accept: application/json'
curl --request GET \ --url https://eu-api.bigpanda.io/resources/v2.0/scim/ServiceProviderConfigs \ --header 'Authorization: Bearer <User API Key>' \ --header 'accept: application/json'
curl --request GET \ --url https://api.bigpanda.io/resources/v2.0/scim/Schemas/urn:scim:schemas:core:1.0:User \ --header 'Authorization: Bearer <User API Key>' \ --header 'accept: application/json'
curl --request GET \ --url https://eu-api.bigpanda.io/resources/v2.0/scim/Schemas/urn:scim:schemas:core:1.0:User \ --header 'Authorization: Bearer <User API Key>' \ --header 'accept: application/json'
curl --request GET \ --url https://api.bigpanda.io/resources/v2.0/scim/schemas \ --header 'Authorization: Bearer <User API Key>' \ --header 'accept: application/json'
curl --request GET \ --url https://eu-api.bigpanda.io/resources/v2.0/scim/schemas \ --header 'Authorization: Bearer <User API Key>' \ --header 'accept: application/json'
curl --request POST \ --url https://api.bigpanda.io/resources/v2.0/scim/Users \ --header 'Authorization: Bearer <User API Key>' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data ' { "phoneNumbers": [ { "value": "+1-555-555-5555", "type": "home" } ], "roles": [ "user" ], "userName": "[email protected]", "displayName": "Becky Sterling", "password": "Password!123", "active": true } '
curl --request POST \ --url https://eu-api.bigpanda.io/resources/v2.0/scim/Users \ --header 'Authorization: Bearer <User API Key>' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data ' { "phoneNumbers": [ { "value": "+1-555-555-5555", "type": "home" } ], "roles": [ "user" ], "userName": "[email protected]", "displayName": "Becky Sterling", "password": "Password!123", "active": true } '
curl --request GET \ --url https://api.bigpanda.io/resources/v2.0/scim/Users/5f82d3495558352a180e51cb \ --header 'Authorization: Bearer <User API Key>' \ --header 'accept: application/json'
curl --request GET \ --url https://eu-api.bigpanda.io/resources/v2.0/scim/Users/5f82d3495558352a180e51cb \ --header 'Authorization: Bearer <User API Key>' \ --header 'accept: application/json'
curl --request GET \ --url https://api.bigpanda.io/resources/v2.0/scim/Users?sortBy=userName&filter=active eq true \ --header 'Authorization: Bearer <User API Key>' \ --header 'accept: application/json'
curl --request GET \ --url https://eu-api.bigpanda.io/resources/v2.0/scim/Users?sortBy=userName&filter=active eq true \ --header 'Authorization: Bearer <User API Key>' \ --header 'accept: application/json'
curl --request PATCH \ --url https://api.bigpanda.io/resources/v2.0/scim/Users/628ed6b59c58cc555125551e \ --header 'Authorization: Bearer <User API Key>' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data ' { "phoneNumbers": [ { "value": "+1-555-555-5555", "type": "home" } ], "roles": [ "user" ], "displayName": "Becky Sterling", "active": true } '
curl --request PATCH \ --url https://eu-api.bigpanda.io/resources/v2.0/scim/Users/628ed6b59c58cc555125551e \ --header 'Authorization: Bearer <User API Key>' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data ' { "phoneNumbers": [ { "value": "+1-555-555-5555", "type": "home" } ], "roles": [ "user" ], "displayName": "Becky Sterling", "active": true } '
curl --request DELETE \ --url https://api.bigpanda.io/resources/v2.0/scim/Users/628ed6b59c58cc555125551e \ --header 'Authorization: Bearer <User API Key>' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data '{ "active": false} '
curl --request DELETE \ --url https://eu-api.bigpanda.io/resources/v2.0/scim/Users/628ed6b59c58cc555125551e \ --header 'Authorization: Bearer <User API Key>' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data '{ "active": false} '
Filtering Results
When retrieving all users, all users in the system will be returned by default, including inactive users. Inactive users are defined as any user who has been deleted.
Add a filter to the endpoint call to restrict returns based on the values of several standard fields.
Filter Syntax:
/scim/Users?filter={field} {SCIM operator} {filter value}
Filters can only apply to a subset of attribute fields within the user object:
displayName
userName
active
All SCIM operators are supported. See the SCIM Parameters documentation for details on available operators.
For example, a filter to retrieve only active users:
https://api.bigpanda.io/resources/v2.0/scim/Users?filter=active eq true
Sort Results
By default, retrieve users results are returned in ascending order, by active field.
Add a sort field and order to the endpoint call to change the order results are listed.
Sort Syntax:
/scim/Users?sortBy={field}&sortOrder={ascending/descending}
SortBy Fields include:
id
userName
displayName
active
SortOrder is alphanumeric for id
, userName
, displayName
. True, then false for active
. SortOrder options are:
ascending
descending
Examples:
https://api.bigpanda.io/resources/v2.0/scim/Users?sortBy=userName
https://api.bigpanda.io/resources/v2.0/scim/Users?sortBy=id&sortOrder=descending
Pagination
By default, the retrieve users call returns the first 1000 users in the list.
Pagination parameters can be used together to "page through" large numbers of returns.
Pagination Syntax:
/scim/Users?startIndex={return #}&count={# of returns}
Example:
To retrieve the first 10 users, set the startIndex to 1, and the count to 10
https://api.bigpanda.io/resources/v2.0/scim/Users?startIndex=1&count=10
To then query the next set of 10, change the startIndex to 11, and send another call.
Pagination
Pagination is not session based. A request for a list of 10 users beginning with a startIndex of 1 may return different results when repeated as a user in the original result could be deleted or new ones could be added in-between requests.