Using the Tableau SCIM API’s Users methods, you can perform the following tasks:
- Add a user to a site
- Get a user and list all users on the site
- Update a user, change the site role and license status of a user
- Remove a user from the site
Note: The SCIM API only processes attributes that are required by Tableau Cloud to create, modify, and remove users. If other attributes are passed, they will be ignored.
Add User
Adds a user to the site.
URI
POST https://scim.online.tableau.com/pods/pod-id/sites/site-id/scim/v2/Users
Parameter Values
| Parameter | Description |
|---|---|
pod-id |
First portion of a Tableau Cloud site’s URL. For example, if a site’s URL is prod-ca-a.online.tableau.com, the pod ID is prod-ca-a. |
site-id |
ID of the site. The site ID is included in the response of a successful Sign In request. |
Request Body (JSON)
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:tableau:3.0"
],
"userName": "user-name",
"name": {
"familyName": "familyName",
"givenName": "givenName"
},
"active": true,
"entitlements": [{"value": "site-role"}],
"urn:ietf:params:scim:schemas:extension:tableau:3.0": {
"siteRoles": ["site-role"]
}
}
Attribute Values
| Attribute | Description |
|---|---|
schemas |
(Required) Schemas to include in the request body:urn:ietf:params:scim:schemas:core:2.0:Userurn:ietf:params:scim:schemas:extension:tableau:3.0 |
userName |
(Required) The username (in email address format) that the user uses to sign in to Tableau Cloud. |
familyName |
Claim for retrieving the user’s family or last name. Claim value is familyName. |
givenName |
Claim for retrieving the user’s given or first name. Claim value is givenName. |
active |
License status of the user. Specify true for a licensed user and false for an unlicensed user.All site roles can be in a licensed or unlicensed license status. |
value |
Role to assign the user when siteRoles, entitlements, or both siteRoles and entitlements attributes are specified.The siteRoles attribute is evaluated before the entitlements attribute if both attributes are specified. You can assign one or more of the following roles but only the highest role is evaluated. Role values are case sensitive.CreatorExplorerExplorerCanPublishSiteAdministratorExplorerSiteAdministratorCreatorUnlicensedViewer |
Permissions
This method can only be called by Tableau Cloud site admins.
Response Code
201 - Created.
400 - Bad request. The userName value is not valid.
400 - Bad request. The siteRole value is not valid.
409 - Conflict. User with the same username already exists.
Response Body (JSON)
{
"active": true,
"emails": [
{
"primary": true,
"value": "alanw@example.com"
}
],
"entitlements": [
{
"value": "Explorer"
}
],
"groups": [
{
"display": "All Users",
"value": "34b0979c-8416-4dd6-9650-6a8e00430510"
}
],
"id": "7e6cccc3-0b00-4e26-98de-12e5c16b8b76-00uj8jz0bownmVX5h5d7",
"meta": {
"resourceType": "User"
},
"name": {
"familyName": "Wang",
"givenName": "Alan"
},
"roles": [
{
"value": "Explorer"
}
],
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:tableau:3.0:User",
"urn:ietf:params:scim:schemas:extension:tableau:3.0"
],
"urn:ietf:params:scim:schemas:extension:tableau:3.0": {
"siteRoles": [
"Explorer"
]
},
"urn:ietf:params:scim:schemas:extension:tableau:3.0:User": {
"siteRoles": [
"Explorer"
]
},
"userName": "alanw@example.com"
}
Get User
Returns the specified user on the site.
URI
GET https://scim.online.tableau.com/pods/pod-id/sites/site-id/scim/v2/Users/user-id
GET https://scim.online.tableau.com/pods/pod-id/sites/site-id/scim/v2/Users?filter=userName eq 'user-name'
Parameter Values
| Parameter | Description |
|---|---|
pod-id |
First portion of a Tableau Cloud site’s URL. For example, if a site’s URL is prod-ca-a.online.tableau.com, the pod ID is prod-ca-a. |
site-id |
ID of the site. The site ID is included in the response of a successful Sign In request. |
user-id |
ID of the user to query. To get the user ID, see List Users. |
user-name |
(Optional) Username (in email address format) of the user to filter on. |
Request Body
None
Permissions
This method can only be called by Tableau Cloud site admins.
Response Code
200 - OK.
404 - Not Found. User with specified user ID does not exist.
Response Body (JSON)
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:tableau:3.0:User",
"urn:ietf:params:scim:schemas:extension:tableau:3.0"
],
"id": "7e6cccc3-0b00-4e26-98de-12e5c16b8b76",
"meta": {
"resourceType": "User"
},
"userName": "alanw@example.com",
"name": {
"familyName": "Williams",
"givenName": "Alan"
},
"active": true,
"emails": [
{
"value": "alanw@example.com",
"primary": true
}
],
"groups": [
{
"value": "34b0979c-8416-4dd6-9650-6a8e00430510",
"display": "Marketing IT Admins"
}
],
"entitlements": [
{
"value": "Creator"
}
],
"roles": [
{
"value": "Creator"
}
],
"urn:ietf:params:scim:schemas:extension:tableau:3.0:User": {
"siteRoles": [
"Creator"
]
},
"urn:ietf:params:scim:schemas:extension:tableau:3.0": {
"siteRoles": [
"Creator"
]
}
}
List Users
Returns users on the site.
URI
GET https://scim.online.tableau.com/pods/pod-id/sites/site-id/scim/v2/Users
GET https://scim.online.tableau.com/pods/pod-id/sites/site-id/scim/v2/Users?startIndex=index&count=count
Parameter Values
| Parameter | Description |
|---|---|
pod-id |
First portion of a Tableau Cloud site’s URL. For example, if a site’s URL is prod-ca-a.online.tableau.com, the pod ID is prod-ca-a. |
site-id |
ID of the site. The site ID is included in the response of a successful Sign In request. |
index |
(Optional) Starting point in the list of users. |
count |
(Optional) Number of users to return. |
Request Body
None
Permissions
This method can only be called by Tableau Cloud site admins.
Response Code
200 - OK.
Response Body (JSON)
List users
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
],
"totalResults": 2,
"Resources": [
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:tableau:3.0:User",
"urn:ietf:params:scim:schemas:extension:tableau:3.0"
],
"id": "4038f45c-5803-4152-895e-19ab21e2f95e",
"meta": {
"resourceType": "User"
},
"userName": "alanw@example.com",
"name": {
"familyName": "Williams",
"givenName": "Alan"
},
"active": true,
"emails": [
{
"value": "alanw@example.com",
"primary": true
}
],
"groups": [
{
"value": "34b0979c-8416-4dd6-9650-6a8e00430510",
"display": "All Users"
}
],
"entitlements": [
{
"value": "Creator"
}
],
"roles": [
{
"value": "Creator"
}
],
"urn:ietf:params:scim:schemas:extension:tableau:3.0:User": {
"siteRoles": [
"Creator"
]
},
"urn:ietf:params:scim:schemas:extension:tableau:3.0": {
"siteRoles": [
"Creator"
]
}
},
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:tableau:3.0:User",
"urn:ietf:params:scim:schemas:extension:tableau:3.0"
],
"id": "4eb80283-f2f1-4d29-bcca-9f210c2fa28b",
"meta": {
"resourceType": "User"
},
"userName": "susann@example.com",
"name": {
"familyName": "Nguyen",
"givenName": "Susan"
},
"active": true,
"emails": [
{
"value": "susann@example.com",
"primary": true
}
],
"groups": [
{
"value": "34b0979c-8416-4dd6-9650-6a8e00430510",
"display": "All Users"
}
],
"entitlements": [
{
"value": "SiteAdministratorCreator"
}
],
"roles": [
{
"value": "SiteAdministratorCreator"
}
],
"urn:ietf:params:scim:schemas:extension:tableau:3.0:User": {
"siteRoles": [
"SiteAdministratorCreator"
]
},
"urn:ietf:params:scim:schemas:extension:tableau:3.0": {
"siteRoles": [
"SiteAdministratorCreator"
]
}
}
],
"startIndex": 1,
"itemsPerPage": 15
}
List specific number of users from the specified point
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
],
"totalResults": 2,
"Resources": [
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:tableau:3.0:User",
"urn:ietf:params:scim:schemas:extension:tableau:3.0"
],
"id": "4eb80283-f2f1-4d29-bcca-9f210c2fa28b",
"meta": {
"resourceType": "User"
},
"userName": "alanw@example.com",
"name": {
"familyName": "Alan",
"givenName": "Williams"
},
"active": true,
"emails": [
{
"value": "alanw@example.com",
"primary": true
}
],
"groups": [
{
"value": "34b0979c-8416-4dd6-9650-6a8e00430510",
"display": "All Users"
}
],
"entitlements": [
{
"value": "SiteAdministratorCreator"
}
],
"roles": [
{
"value": "SiteAdministratorCreator"
}
],
"urn:ietf:params:scim:schemas:extension:tableau:3.0:User": {
"siteRoles": [
"SiteAdministratorCreator"
]
},
"urn:ietf:params:scim:schemas:extension:tableau:3.0": {
"siteRoles": [
"SiteAdministratorCreator"
]
}
}
],
"startIndex": 2,
"itemsPerPage": 1
}
Update User
Modifies the user.
Depending on your identity provider (IdP), you might use the Change User Site Role and Change User License Status methods to update the user instead.
URI
PUT https://scim.online.tableau.com/pods/pod-id/sites/site-id/scim/v2/Users/user-id
Parameter Values
| Parameter | Description |
|---|---|
pod-id |
First portion of a Tableau Cloud site’s URL. For example, if a site’s URL is prod-ca-a.online.tableau.com, the pod ID is prod-ca-a. |
site-id |
ID of the site. The site ID is included in the response of a successful Sign In request. |
user-id |
ID of the user to update. To get the user ID, see List Users. |
Request Body (JSON)
Update user site role
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:tableau:3.0"
],
"id": "user-id",
"urn:ietf:params:scim:schemas:extension:tableau:3.0": {
"siteRoles": [
"site-role",
"site-role"
]
}
}
Update user license status
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"id": "aa9160d6-4c7f-49a2-98ff-3b57ef9a559c",
"active": status,
"entitlements": [
{
"value": "site-role"
},
{
"value": "site-role"
}
]
}
Attribute Values
| Attribute | Description |
|---|---|
schemas |
(Required) Schemas to include in the request body:urn:ietf:params:scim:schemas:core:2.0:Userurn:ietf:params:scim:schemas:extension:tableau:3.0 |
id |
(Required) ID of the user to update. For example, 6eee3d6f-2ab6-44c4-9c49-9b017c41e921. To get the user ID, see List Users. |
siteRoles |
Role to assign the user. You can assign one or more of the following roles but only the highest role is evaluated. Role values are case sensitive. CreatorExplorerExplorerCanPublishSiteAdministratorExplorerSiteAdministratorCreatorUnlicensedViewer |
active |
License status of the user. Specify true for a licensed user and false for an unlicensed user. All site roles can be associated with a licensed or unlicensed license status. |
value |
Role to assign the user. You can assign one or more of the following roles but only the highest role is evaluated. Role values are case sensitive. CreatorExplorerExplorerCanPublishSiteAdministratorExplorerSiteAdministratorCreatorUnlicensedViewer |
Permissions
This method can only be called by Tableau Cloud site admins.
Response Code
200 - OK.
400 - Not found. User with specified user ID does not exist.
500 - Unexpected error. The site role value is not valid.
Response Body (JSON)
Update user site role
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:tableau:3.0:User",
"urn:ietf:params:scim:schemas:extension:tableau:3.0"
],
"id": "aa9160d6-4c7f-49a2-98ff-3b57ef9a559c",
"meta": {
"resourceType": "User"
},
"userName": "ashleyg@example.com",
"name": {
"familyName": "Garcia",
"givenName": "Ashley"
},
"active": true,
"emails": [
{
"value": "ashleyg@example.com",
"primary": true
}
],
"groups": [
{
"value": "34b0979c-8416-4dd6-9650-6a8e00430510",
"display": "All Users"
}
],
"entitlements": [
{
"value": "Creator"
}
],
"roles": [
{
"value": "Creator"
}
],
"urn:ietf:params:scim:schemas:extension:tableau:3.0:User": {
"siteRoles": [
"Creator",
"Explorer"
]
},
"urn:ietf:params:scim:schemas:extension:tableau:3.0": {
"siteRoles": [
"Creator"
]
}
}
Update user license status
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:tableau:3.0:User",
"urn:ietf:params:scim:schemas:extension:tableau:3.0"
],
"id": "aa9160d6-4c7f-49a2-98ff-3b57ef9a559c",
"meta": {
"resourceType": "User"
},
"userName": "ashleyg@example.com",
"name": {
"familyName": "Garcia",
"givenName": "Ashley"
},
"active": false,
"emails": [
{
"value": "ashleyg@example.com",
"primary": true
}
],
"groups": [
{
"value": "34b0979c-8416-4dd6-9650-6a8e00430510",
"display": "All Users"
}
],
"entitlements": [
{
"value": "Unlicensed"
}
],
"roles": [
{
"value": "Unlicensed"
}
],
"urn:ietf:params:scim:schemas:extension:tableau:3.0:User": {
"siteRoles": [
"Unlicensed"
]
},
"urn:ietf:params:scim:schemas:extension:tableau:3.0": {
"siteRoles": [
"Unlicensed"
]
}
}
Delete User
Permanently removes the user from the site.
You can only remove the user if they do not own any content (projects, workbooks, views, data sources, collections, or data alerts for example). If you attempt to remove a user who owns content, the user’s site role is set to “unlicensed” and is not removed.
Note: The user must also be removed from the IdP.
URI
DELETE https://scim.online.tableau.com/pods/pod-id/sites/site-id/scim/v2/Users/user-id
Parameter Values
| Parameter | Description |
|---|---|
pod-id |
First portion of a Tableau Cloud site’s URL. For example, if a site’s URL is prod-ca-a.online.tableau.com, the pod ID is prod-ca-a. |
site-id |
ID of the site. The site ID is included in the response of a successful Sign In request. |
user-id |
ID of the user to delete. To get the user ID, see List Users. |
Permissions
This method can only be called by Tableau Cloud site admins.
Response Code
204 - No content.
404 - Not found. User with specified user ID does not exist.
Response Body
None
Change User Site Role
Modifies the user by changing their site role.
Depending on your identity provider (IdP), you might use the Update User method to change the site role of a user instead.
URI
PATCH https://scim.online.tableau.com/pods/pod-id/sites/site-id/scim/v2/Users/user-id
Parameter Values
| Parameter | Description |
|---|---|
pod-id |
First portion of a Tableau Cloud site’s URL. For example, if a site’s URL is prod-ca-a.online.tableau.com, the pod ID is prod-ca-a. |
site-id |
The ID of the site. The site ID is included in the response of a successful Sign In request. |
user-id |
The ID of the user to update. To get the user ID, see List Users. |
Request Body (JSON)
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
],
"Operations": [
{
"op": "replace",
"path": "urn:ietf:params:scim:schemas:extension:tableau:3.0:User:siteRoles",
"value": [
{
"value": "site-role"
},
{
"value": "site-role"
}
]
}
]
}
Attribute Values
| Attribute | Description |
|---|---|
schemas |
(Required) Schema to include in the request body:urn:ietf:params:scim:api:messages:2.0:PatchOp |
op |
(Required) Operation type to specify: replace |
path |
(Required) Path value to include in the request body:urn:ietf:params:scim:schemas:extension:tableau:3.0:User:siteRoles |
value |
Role to assign the user. You can assign one or more of the following roles. Only the highest role is evaluated. Role values are case sensitive. CreatorExplorerExplorerCanPublishSiteAdministratorExplorerSiteAdministratorCreatorUnlicensedViewer |
Permissions
This method can only be called by Tableau Cloud site admins.
Response Code
200 - OK.
400 - Bad Request. Operation type is not valid.
400 - Bad Request. Site role value is not specified.
400 - Bad Request. Path value is incorrect.
404 - Not found. User with specified user ID does not exist.
Response Body (JSON)
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:tableau:3.0:User",
"urn:ietf:params:scim:schemas:extension:tableau:3.0"
],
"id": "aa9160d6-4c7f-49a2-98ff-3b57ef9a559c",
"meta": {
"resourceType": "User"
},
"userName": "susann@example.com",
"name": {
"familyName": "Nguyen",
"givenName": "Susan"
},
"active": true,
"emails": [
{
"value": "susann@example2.com",
"primary": true
}
],
"groups": [
{
"value": "34b0979c-8416-4dd6-9650-6a8e00430510",
"display": "All Users"
}
],
"entitlements": [
{
"value": "SiteAdministratorExplorer"
}
],
"roles": [
{
"value": "SiteAdministratorExplorer"
}
],
"urn:ietf:params:scim:schemas:extension:tableau:3.0:User": {
"siteRoles": [
"SiteAdministratorExplorer"
]
},
"urn:ietf:params:scim:schemas:extension:tableau:3.0": {
"siteRoles": [
"SiteAdministratorExplorer"
]
}
}
Change User License Status
Modifies the user by changing their license status to “unlicensed” or “licensed”.
Depending on your identity provider (IdP), you might use the Update User method to change the license status of the user.
URI
PATCH https://scim.online.tableau.com/pods/pod-id/sites/site-id/scim/v2/Users/user-id
Parameter Values
| Parameter | Description |
|---|---|
pod-id |
The first portion of a Tableau Cloud site’s URL. For example, if a site’s URL is prod-ca-a.online.tableau.com, the pod ID is prod-ca-a. |
site-id |
The ID of the site. The site ID is included in the response of a successful Sign In request. |
user-id |
The ID of the user to update. To get the user ID, see List Users. |
Request Body (JSON)
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [
{
"op": "replace",
"value": {
"active": false
}
}
]
}
Attribute Values
| Attribute | Description |
|---|---|
schema |
(Required) Schema to include in the request body:urn:ietf:params:scim:api:messages:2.0:PatchOp |
op |
(Required) Operation type to specify: replace |
active |
License status of the user. Specify true for a licensed user and false for an unlicensed user. All site roles can be associated with a licensed or unlicensed license status. |
Response Code
204 - OK.
400 - Bad request. Operation type is not valid.
404 - Not found. User with specified user ID does not exist.
Response Body (JSON)
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:tableau:3.0:User",
"urn:ietf:params:scim:schemas:extension:tableau:3.0"
],
"id": "aa9160d6-4c7f-49a2-98ff-3b57ef9a559c",
"meta": {
"resourceType": "User"
},
"userName": "susann@example.com",
"name": {
"familyName": "Nguyen",
"givenName": "Susan"
},
"active": false,
"emails": [
{
"value": "susann@example2.com",
"primary": true
}
],
"groups": [
{
"value": "34b0979c-8416-4dd6-9650-6a8e00430510",
"display": "All Users"
}
],
"entitlements": [
{
"value": "Unlicensed"
}
],
"roles": [
{
"value": "Unlicensed"
}
],
"urn:ietf:params:scim:schemas:extension:tableau:3.0:User": {
"siteRoles": [
"Unlicensed"
]
},
"urn:ietf:params:scim:schemas:extension:tableau:3.0": {
"siteRoles": [
"Unlicensed"
]
}
}