Skip to main content

SCIM API reference

The SCIM API is RESTful and the endpoint URLs are different than other Slack API endpoints.

EndpointDescription
GET /ServiceProviderConfigsReturns Slack's configuration details for our SCIM API
GET /Schemas/UsersReturns Slack's configuration details for how users are formatted
GET /Schemas/GroupsReturns Slack's configuration details for how groups are formatted
GET /UsersReturns a paginated list of users
GET /Users/<id>Retrieves a single user resource
POST /UsersCreates 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 /GroupsCreates 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

EndpointDescription
GET /ServiceProviderConfigsReturns 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

Not applicable to SCIM v1.1.

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.

EndpointDescription
GET /Schemas/UsersReturns Slack's configuration details for how users are formatted
GET /Schemas/GroupsReturns 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

Provisioning multi-channel guest users with the SCIM API is only available to Enterprise plan customers.

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.

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.

EndpointDescription
GET /UsersReturns a paginated list of users
GET /Users/<id>Retrieves a single user resource
POST /UsersCreates 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 FieldSCIM AttributeAttribute TypeNotes
UsernameuserNameSingularRequired Max of 21 characters. Support periods ., underscores _, and hyphens -. All other special characters are converted to underscores.
Full Namename, familyNameSingular
NicknamenickNameSingular
Display NamedisplayName, userNameSingularSupport periods ., underscores _, and hyphens -. All other special characters are converted to underscores. Max of 80 characters.
Emailemails[0]['value']Multi-ValuedRequired
Profile URLprofileUrlSingular
Profile Photophotos[0]['values']Multi-Valued
GroupsgroupsMulti-Valued
TitletitleSingular
TimezonetimezoneSingular
ActiveactiveSingular
PasswordpasswordSingularNever returned but can be used to set the initial password for a user if the team is not using an identity manager.
Start Dateprofile.startDateSingularDate 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 FieldSCIM AttributeAttribute Type
AddressesaddressesMulti-Valued
Cityaddresses[primary]['locality']Singular
Cost Centerenterprise.costCenterSingular
Countryaddresses[primary]['country']Singular
Departmententerprise.departmentSingular
Divisionenterprise.divisionSingular
Employee IDenterprise.employeeNumberSingular
Honorific Prefixname.honorificPrefixSingular
LocalelocaleSingular
Managerenterprise.manager.managerIdSingular
Organizationenterprise.organizationSingular
PhonephoneNumbers[0]['values']Multi-Valued
Preferred Language