Identifying Resources Using Locally Unique Identifiers (LUIDs)

Resources on Tableau Server typically have a friendly name, such as "Default" for a site name, "Developers" for a group, and "Adam" for a user. These are the names that you see when you work in the Tableau Server user interface.

These resources are also identified internally by Tableau Server using a locally unique identifier (LUID). LUIDs are 32-character hexadecimal strings separated by hyphens in a format like this: 9f8e7d6c5b-4a3f-2e1d-0c9b-8a7f6e5d4c.

Tableau Server uses LUIDs because friendly names might change or be reassigned. For example, you can change the friendly name of a user without affecting the user's permissions or membership in groups, because the LUID for that user does not change. In addition, you might delete a user named Adam because that user has left your company. If you later create a new user named Adam for a new employee, that user identity in Tableau Server should be distinct from the older identity, and using a different LUID for the new user guarantees that.

Getting LUIDs for Resources

When you create a new resource, or if you query the server for a list of resources, the server returns the LUIDs for the resource. For example, Sign In, Create Site, Create User, Get Users in Site, and Query Groups all return LUIDs for resources.

The following example shows the return value for a call to Query Groups, which includes the friendly name for each group as well as the group's LUID:

<?xml version="1.0" encoding="UTF-8"?>
  <tsResponse version-and-namespace-settings >
  <pagination pageNumber="1" pageSize="100" totalAvailable="2"/>
  <groups>
    <group id="1f2f3e4e5-d6d7-c8c9-b0b1-a2a3f4f5e6e" name="Managers">
      <domain name="local"/>
    </group>
    <group id="9a8a7b6b5-c4c3-d2d1-e0e9-a8a7b6b5b4b" name="IT">
      <domain name="local"/>
    </group>
  </groups>
</tsresponse>

Using LUIDs in API Calls

When you specify a resource in a call, you typically need to provide the resource's LUID. For example, all calls except Sign In call require you to include a site LUID in the URI, as in this example of calling Query Groups:

http://my-server/api/3.13/sites/9a8b7c6d5-e4f3-a2b1-c0d9-e8f7a6b5c4d/users

Similarly, if you want to update user information using the Update User API, you include the LUIDs for both the site and the user in the URI, as in this example:

http://my-server/api/3.13/sites/9a8b7c6d5-e4f3-a2b1-c0d9-e8f7a6b5c4d/users/9f9e9d9c8-b8a8-f8e7-d7c7-b7a6f6d6e6d

In the preceding example, 9a8b7c6d5-e4f3-a2b1-c0d9-e8f7a6b5c4d is the site ID, and 9f9e9d9c8-b8a8-f8e7-d7c7-b7a6f6d6e6d is the ID of the user to update.


Thanks for your feedback!