Skip to main content

/user/createBackendUser

Creates a backend user Returns: array

/user/createFrontendGroup

Creates a Frontend Group. Note: To add members to your Frontend Group, use the addUserToGroup API endpoint. Example Request: POST [your_domain]/api/v1/User/createFrontendGroup?apikey=[your_api_key_here]&name=[group_name_here]
Returns: array Example Response:

/user/createFrontendUser

Creates a single frontend (i.e. Curator) user. This does not create any platform-specific users, and there is no bulk/CSV equivalent — to create many frontend users at once, script repeated calls to this endpoint or to the usermgmt:frontendusercreate artisan command.
If Curator authenticates against an external identity provider (SAML, OIDC/OAuth, Tableau Server, or Power BI), you most likely do not need this endpoint at all. Frontend User accounts are created automatically the first time each user signs in — see Just-in-time (JIT) Provisioning. Creating users in advance is only necessary when JIT provisioning has been turned off (Settings > Security > Authentication Settings > Customization > Disable Just-in-time Provisioning of Curator Users), or when the authentication type is Curator Users.
Parameters:
  • full_name (string, required) - The full name for the new Curator user.
  • username (string, required) - The username for the new Curator user.
  • email (string, required) - The email address for the new Curator user.
  • password (string, required) - The desired password for the new Curator user.
  • domain (string, optional) - Domain of the user, e.g. domain\username or username@domain. If omitted, Curator derives the domain from the username or email address where possible.
  • send_user_created_curator_email (bool, optional) - Send the Curator signup email to the new user. 1 = send, 0 = suppress. Defaults to 0.
Example Request: The query string below is shown wrapped for readability; send it as a single URL.
Returns: array Example Response:

/user/fetchUser

Returns the currently logged in user’s information. Returns: array

/user/getManageablePermissions

Gets a listing of available manageable permissions Returns: array Example Response:

/user/addUserToGroup

Adds a user to a group (syncs with Tableau if possible) Returns: array

/user/listGroups

Lists groups. Returns: array

/user/listUsers

Lists users and the groups they belong to. Parameters:
  • num (integer, optional) - Number of users to return per page. Defaults to 50.
  • pg (integer, optional) - Page number. Defaults to 1.
  • site (string, optional) - Tableau Site content URL to filter by; only users with a connected Tableau user on that site are returned.
Example Request: GET [your_domain]/api/v1/User/listUsers?apikey=[your_api_key_here]&num=50&pg=1 Returns: array Each user object includes frontend_user_id, name, full_name, email, analytics_id, last_login_at (the time the user last signed in, or null if they never have), and a groups array. Example Response:

/user/removeUserFromGroup

Removes a user from a group (syncs with Tableau if possible) Returns: array

/User/syncGroup

Kicks off a schedule which synchronizes a single Frontend Group’s membership. Specify the Group’s groupName OR the Group’s id (the id is used if both are provided). Parameters:
  • groupName (string, optional) - The name of the Frontend Group as shown on the backend under Settings > Users > Frontend Groups.
  • id (integer, optional) - The ID of the Frontend Group. One of groupName or id is required.
Example Request: GET [your_domain]/api/v1/User/syncGroup?apikey=[your_api_key_here]&groupName=[group_name_here] Returns: array Example Response:

/User/syncGroups

Kicks off a schedule which synchronizes platform group memberships to all configured Frontend Groups. Internally this calls FrontendGroup::syncSchedule to enqueue a sync for every Frontend Group. Example Request: GET [your_domain]/api/v1/User/syncGroups?apikey=[your_api_key_here] Returns: array Example Response:
Note: Both /User/syncGroup and /User/syncGroups enqueue jobs asynchronously - the API call returns as soon as the sync is queued. The actual membership sync runs through the queued process scheduler (curator:runschedule), so the work is not complete the moment the response is received.