Users
Use the Users API to create, retrieve, update, and delete users, and manage role membership for users.
Dremio Cloud supports two user types:
- Regular users — Human users who authenticate with their email address. Creating a regular user sends an email invitation.
- Service users — Non-human identities used for automated processes. Service users are created directly without an email invitation.
{
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"active": true,
"name": "john.doe@example.com",
"firstName": "John",
"lastName": "Doe",
"identityType": "REGULAR_USER"
}
User Attributes
id String (UUID)
The unique identifier of the user.
Example: f47ac10b-58cc-4372-a567-0e02b2c3d479
active Boolean
Whether the user is active.
Example: true
name String
For regular users, the user's email address. For service users, the service user name.
Example: john.doe@example.com
identityType String
The type of user.
Enum: REGULAR_USER, SERVICE_USER
Example: REGULAR_USER
firstName String
The user's first name. Applies to regular users only.
Example: John
lastName String
The user's last name. Applies to regular users only.
Example: Doe
description String
A description for the user. Applies to service users only.
Example: Service account for ETL pipeline
oauthClientId String (UUID)
The OAuth client ID associated with the service user. Applies to service users only.
Example: c3d4e5f6-7890-1234-abcd-567890abcdef
List Users
List all users in the organization.
Method and URLGET /v0/users
Parameters
filter Query String Optional
A CEL expression to filter results. Filterable attributes: name, firstName, lastName, id, identityType. Supported operators: ==, &&, ||. Supported functions: startsWith, contains.
Example: firstName.contains('John')
maxResults Query Integer Optional
Maximum number of results to return per page. Minimum: 1. Maximum: 1000.
Example: 100
pageToken Query String Optional
Token specifying which page to return. Do not change other query parameters when using pageToken.
orderBy Query String Optional
Attribute to order results by. Defaults to ascending order. For descending order, prefix the attribute name with -.
Example: firstName
Example Requestcurl -X GET 'https://api.dremio.cloud/v0/users' \
-H 'Authorization: Bearer <access token>' \
-H 'Content-Type: application/json'
{
"data": [
{
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"active": true,
"name": "john.doe@example.com",
"firstName": "John",
"lastName": "Doe",
"identityType": "REGULAR_USER"
},
{
"id": "c3d4e5f6-7890-1234-abcd-567890abcdef",
"active": true,
"name": "service-user-1",
"description": "Service user 1",
"identityType": "SERVICE_USER"
}
],
"nextPageToken": "eyJwYWdlIjogMn0=",
"totalResults": 42
}
Response Status Codes
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
Create a User
Create a user in the organization.
For regular users, an invitation email is sent to the specified email address. The user is initially inactive until they complete the invitation flow. Calling this endpoint again for an already invited user resends the invitation email. Sending too many invitations in a short period results in a 429 error.
For service users, the user is created directly with no email invitation required.
Method and URLPOST /v0/users
Parameters
name Body String
For regular users, the user's email address. For service users, the service username.
Example: john.doe@example.com
identityType Body String Optional
The type of user to create. Defaults to REGULAR_USER if not provided.
Enum: REGULAR_USER, SERVICE_USER
Example: REGULAR_USER
description Body String Optional
A description for the user. Applies to service users only.
Example: Service account for ETL pipeline
Example Requestcurl -X POST 'https://api.dremio.cloud/v0/users' \
-H 'Authorization: Bearer <access token>' \
-H 'Content-Type: application/json' \
-d '{"name": "john.doe@example.com", "identityType": "REGULAR_USER"}'
{
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"active": false,
"name": "john.doe@example.com",
"identityType": "REGULAR_USER"
}
Response Status Codes
201 Created
400 Bad Request
401 Unauthorized
403 Forbidden
409 Conflict
429 Too Many Requests
500 Internal Server Error
Retrieve a User by Name
Get a user by name.
Method and URLGET /v0/users/names/{userName}
Parameters
userName Path String
The name of the user to retrieve. For regular users, this is the user's email address.
Example: john.doe@example.com
Example Requestcurl -X GET 'https://api.dremio.cloud/v0/users/names/john.doe@example.com' \
-H 'Authorization: Bearer <access token>' \
-H 'Content-Type: application/json'
{
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"active": true,
"name": "john.doe@example.com",
"firstName": "John",
"lastName": "Doe",
"identityType": "REGULAR_USER"
}
Response Status Codes
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error
Retrieve a User by ID
Get a user by ID.
Method and URLGET /v0/users/{userId}
Parameters
userId Path String (UUID)
The ID of the user to retrieve.
Example: f47ac10b-58cc-4372-a567-0e02b2c3d479
Example Requestcurl -X GET 'https://api.dremio.cloud/v0/users/f47ac10b-58cc-4372-a567-0e02b2c3d479' \
-H 'Authorization: Bearer <access token>' \
-H 'Content-Type: application/json'
{
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"active": true,
"name": "john.doe@example.com",
"firstName": "John",
"lastName": "Doe",
"identityType": "REGULAR_USER"
}
Response Status Codes
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error
Update a User
Update a user. For regular users, only firstName and lastName are updatable.
PUT /v0/users/{userId}
Parameters
userId Path String (UUID)
The ID of the user to update.
Example: f47ac10b-58cc-4372-a567-0e02b2c3d479
id Body String (UUID)
The unique identifier of the user. This should be the same as the userId.
Example: f47ac10b-58cc-4372-a567-0e02b2c3d479
active Body Boolean
Whether the user is active.
Example: true
name Body String
For regular users, the user's email address. For service users, the service username. This should be the same as the current username.
Example: john.doe@example.com
firstName Body String Optional
The user's first name. Applies to regular users only.
Example: John
lastName Body String Optional
The user's last name. Applies to regular users only.
Example: Doe
identityType Body String
The type of user. This should be the same as the existing identityType.
Enum: REGULAR_USER, SERVICE_USER
Example: REGULAR_USER
Example Requestcurl -X PUT 'https://api.dremio.cloud/v0/users/f47ac10b-58cc-4372-a567-0e02b2c3d479' \
-H 'Authorization: Bearer <access token>' \
-H 'Content-Type: application/json' \
-d '{
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"active": true,
"name": "john.doe@example.com",
"firstName": "John",
"lastName": "Doe",
"identityType": "REGULAR_USER"
}'
{
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"active": true,
"name": "john.doe@example.com",
"firstName": "John",
"lastName": "Doe",
"identityType": "REGULAR_USER"
}
Response Status Codes
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error
Delete a User
Delete a user.
Method and URLDELETE /v0/users/{userId}
Parameters
userId Path String (UUID)
The ID of the user to delete.
Example: f47ac10b-58cc-4372-a567-0e02b2c3d479
Example Requestcurl -X DELETE 'https://api.dremio.cloud/v0/users/f47ac10b-58cc-4372-a567-0e02b2c3d479' \
-H 'Authorization: Bearer <access token>' \
-H 'Content-Type: application/json'
No response
Response Status Codes
204 No Content
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error
List Parent Roles for a User
List the roles the user is a direct member of. This does not include transitive role memberships.
Method and URLGET /v0/users/{userId}/parent-roles
Parameters
userId Path String (UUID)
The ID of the user.
Example: f47ac10b-58cc-4372-a567-0e02b2c3d479
maxResults Query Integer Optional
Maximum number of results to return per page. Minimum: 1. Maximum: 1000.
Example: 100
pageToken Query String Optional
Token specifying which page to return. Do not change other query parameters when using pageToken.
curl -X GET 'https://api.dremio.cloud/v0/users/f47ac10b-58cc-4372-a567-0e02b2c3d479/parent-roles' \
-H 'Authorization: Bearer <access token>' \
-H 'Content-Type: application/json'
{
"data": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "DATA_ENGINEER",
"type": "INTERNAL",
"description": "Data Engineers"
}
],
"totalResults": 1
}
Response Status Codes
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
Add a Parent Role to a User
Add a role to the user's list of parent roles.
Method and URLPOST /v0/users/{userId}/parent-roles
Parameters
userId Path String (UUID)
The ID of the user.
Example: f47ac10b-58cc-4372-a567-0e02b2c3d479
id Body String (UUID)
The ID of the role to add.
Example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
Example Requestcurl -X POST 'https://api.dremio.cloud/v0/users/f47ac10b-58cc-4372-a567-0e02b2c3d479/parent-roles' \
-H 'Authorization: Bearer <access token>' \
-H 'Content-Type: application/json' \
-d '{"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"}'
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
Response Status Codes
201 Created
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error
Update Parent Roles for a User
Add and remove parent roles for a user in a single request.
Method and URLPATCH /v0/users/{userId}/parent-roles
Parameters
userId Path String (UUID)
The ID of the user.
Example: f47ac10b-58cc-4372-a567-0e02b2c3d479
addRoles Body Array of String (UUID) Optional
List of role IDs to add to the user's parent roles.
Example: ["a1b2c3d4-e5f6-7890-abcd-ef1234567890"]
removeRoles Body Array of String (UUID) Optional
List of role IDs to remove from the user's parent roles.
Example: ["b2c3d4e5-f6a7-8901-bcde-f23456789012"]
Example Requestcurl -X PATCH 'https://api.dremio.cloud/v0/users/f47ac10b-58cc-4372-a567-0e02b2c3d479/parent-roles' \
-H 'Authorization: Bearer <access token>' \
-H 'Content-Type: application/json' \
-d '{
"addRoles": ["a1b2c3d4-e5f6-7890-abcd-ef1234567890"],
"removeRoles": ["b2c3d4e5-f6a7-8901-bcde-f23456789012"]
}'
{
"addedRoles": ["a1b2c3d4-e5f6-7890-abcd-ef1234567890"],
"removedRoles": ["b2c3d4e5-f6a7-8901-bcde-f23456789012"]
}
Response Status Codes
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error
Remove a Parent Role from a User
Remove a role from the user's list of parent roles.
Method and URLDELETE /v0/users/{userId}/parent-roles/{parentRoleId}
Parameters
userId Path String (UUID)
The ID of the user.
Example: f47ac10b-58cc-4372-a567-0e02b2c3d479
parentRoleId Path String (UUID)
The ID of the parent role to remove.
Example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
Example Requestcurl -X DELETE 'https://api.dremio.cloud/v0/users/f47ac10b-58cc-4372-a567-0e02b2c3d479/parent-roles/a1b2c3d4-e5f6-7890-abcd-ef1234567890' \
-H 'Authorization: Bearer <access token>' \
-H 'Content-Type: application/json'
No response
Response Status Codes
204 No Content
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Internal Server Error