SCIM API reference
The SCIM API is RESTful and the endpoint URLs are different than other Slack API endpoints.
- v1.1
- v2.0
| Endpoint | Description |
|---|---|
GET /ServiceProviderConfigs | Returns Slack's configuration details for our SCIM API |
GET /Schemas/Users | Returns Slack's configuration details for how users are formatted |
GET /Schemas/Groups | Returns Slack's configuration details for how groups are formatted |
GET /Users | Returns a paginated list of users |
GET /Users/<id> | Retrieves a single user resource |
POST /Users | Creates a user |
PATCH /Users/<id> | Updates an existing user resource, overwriting specified values |
PUT /Users/<id> | Updates an existing user resource, overwriting all values |
DELETE /Users/<id> | Sets a Slack user to deactivated |
GET /Groups/ | Returns a paginated list of groups |
GET /Groups/<id> | Retrieves a single group resource |
POST /Groups | Creates a new group |
PATCH /Groups/<id> | Updates an existing group resource |
PUT /Groups/<id> | Updates an existing group resource, overwriting all values |
DELETE /Groups/<id> | Permanently removes a group |
| Endpoint | Description |
|---|---|
GET /ServiceProviderConfig | Returns Slack's configuration details for our SCIM API |
GET /ResourceTypes | Returns Slack's type of resources available |
GET /Schemas/Users | Returns Slack's configuration details for how users are formatted |
GET /Schemas/Groups | Returns Slack's configuration details for how groups are formatted |
GET /Users | Returns a paginated list of users |
GET /Users/<id> | Retrieves a single user resource |
POST /Users | Creates a user |
PATCH /Users/<id> | Updates an existing user resource, overwriting specified values |
PUT /Users/<id> | Updates an existing user resource, overwriting all values |
DELETE /Users/<id> | Sets a Slack user to deactivated |
GET /Groups/ | Returns a paginated list of groups |
GET /Groups/<id> | Retrieves a single group resource |
POST /Groups | Creates a new group |
PATCH /Groups/<id> | Updates an existing group resource |
PUT /Groups/<id> | Updates an existing group resource, overwriting all values |
DELETE /Groups/<id> | Permanently removes a group |
Service Provider Configuration
| Endpoint | Description |
|---|---|
GET /ServiceProviderConfigs | Returns Slack's configuration details for our SCIM API |
GET /ServiceProviderConfigs
Returns Slack's configuration details for our SCIM API, including which operations are supported.
Resource types
- v1.1
- v2.0
Not applicable to SCIM v1.1.
| Endpoint | Description |
|---|---|
GET /ResourceTypes | Returns Slack's configuration details for our SCIM API |
GET /ResourceTypes
Returns Slack's type of resources available.
Schemas
Slack currently supports schemas for users and groups. Querying the schemas will provide the most up-to-date rendering of the supported SCIM attributes.
- v1.1
- v2.0
| Endpoint | Description |
|---|---|
GET /Schemas/Users | Returns Slack's configuration details for how users are formatted |
GET /Schemas/Groups | Returns Slack's configuration details for how groups are formatted |
GET /Schemas/Users
Returns Slack's configuration details for how users are formatted.
Multi-channel guest user schema
Slack also supports a custom extension, called urn:scim:schemas:extension:slack:guest:1.0, that can be used to designate a user as a multi-channel guest. The details of this schema are also returned as part of the GET /scim/v1/Schemas/Users payload.
GET /Schemas/Groups
Returns Slack's configuration details for how groups are formatted.
| Endpoint | Description |
|---|---|
GET /Schemas | Returns a list of Slack supported schemas along with Slack's configuration details |
GET /Schemas/Users | Returns Slack's configuration details for how users are formatted |
GET /Schemas/Groups | Returns Slack's configuration details for how groups are formatted |
Get /Schemas
Returns a list of Slack supported schemas along with Slack's configuration details.
GET /Schemas/Users
Returns Slack's configuration details for how users are formatted.
Multi-channel guest user schema
Slack also supports a custom extension, called urn:scim:schemas:extension:slack:guest:2.0:User, that can be used to designate a user as a multi-channel guest. The details of this schema are also returned as part of the GET /scim/v2/Schemas/Users payload.
GET /Schemas/Groups
Returns Slack's configuration details for how groups are formatted.
Users
Users map to the individuals of your team across a workspace or Enterprise organization. Each user contains properties called attributes, like userName and title. You can list users, filter by attribute, add new users, update a user's profile information, or remove a user entirely.
- v1.1
- v2.0
| Endpoint | Description |
|---|---|
GET /Users | Returns a paginated list of users |
GET /Users/<id> | Retrieves a single user resource |
POST /Users | Creates a user |
PATCH /Users/<id> | Updates an existing user resource, overwriting specified values |
PUT /Users/<id> | Updates an existing user resource, overwriting all values |
DELETE /Users/<id> | Sets a Slack user to deactivated |
User attributes
Attributes are the details associated with a user's account. These are the details that someone would typically set in their profile (for example, by clicking the Edit Profile button in the Slack application).
The following tables map SCIM attributes to the profile fields that Slack uses. Most of these profile fields are exposed directly in a person's profile in the Slack UI. Sometimes, multiple SCIM attributes map to a single Slack profile field. For example, Slack's Display name field will populate from either the displayName or the userName SCIM attribute, depending on which is set. If both are set, it will use displayName.
When you sync some user attributes to Slack via SCIM, these fields become locked in Slack and you can no longer delete them or edit them. However, you may choose to hide them from user profiles.
Attribute values will vary by identity provider. For example, some may use a single field for a user's full name, others may provide sub-attributes such as givenName and familyName, still others may provide both. Either is acceptable, but they should only describe the same name (i.e. sub-attributes should not contain additional or optional information, such as a nickname).
Not every attribute will be displayed in a user's profile. For example, active does not appear as a field but can be used to determine if a user's account is active.
| Slack Profile Field | SCIM Attribute | Attribute Type | Notes |
|---|---|---|---|
| Username | userName | Singular | Required Max of 21 characters. Support periods ., underscores _, and hyphens -. All other special characters are converted to underscores. |
| Full Name | name, familyName | Singular | |
| Nickname | nickName | Singular | |
| Display Name | displayName, userName | Singular | Support periods ., underscores _, and hyphens -. All other special characters are converted to underscores. Max of 80 characters. |
emails[0]['value'] | Multi-Valued | Required | |
| Profile URL | profileUrl | Singular | |
| Profile Photo | photos[0]['values'] | Multi-Valued | |
| Groups | groups | Multi-Valued | |
| Title | title | Singular | |
| Timezone | timezone | Singular | |
| Active | active | Singular | |
| Password | password | Singular | Never returned but can be used to set the initial password for a user if the team is not using an identity manager. |
| Start Date | profile.startDate | Singular | Date should be in the ISO 8601 format, such as 2024-04-10T00:00:00+0000. Must provide the urn:scim:schemas:extension:slack:profile:1.0 schema in request body. |
Slack will also create profile fields if the following SCIM attributes are present:
| Custom Profile Field | SCIM Attribute | Attribute Type |
|---|---|---|
| Addresses | addresses | Multi-Valued |
| City | addresses[primary]['locality'] | Singular |
| Cost Center | enterprise.costCenter | Singular |
| Country | addresses[primary]['country'] | Singular |
| Department | enterprise.department | Singular |
| Division | enterprise.division | Singular |
| Employee ID | enterprise.employeeNumber | Singular |
| Honorific Prefix | name.honorificPrefix | Singular |
| Locale | locale | Singular |
| Manager | enterprise.manager.managerId | Singular |
| Organization | enterprise.organization | Singular |
| Phone | phoneNumbers[0]['values'] | Multi-Valued |
| Preferred Language |