Use the following API methods to request details about users.
get_user
Returns an existing user.
GET index.php?/api/v2/get_user/{user_id}
Parameters
Name | Type | Required | Description |
---|---|---|---|
user_id | integer | true | The ID of the user |
Response content (TestRail Professional)
{
"id": 1,
"email": "john.doe@gurock.io",
"email_notifications": true,
"is_active": true,
"is_admin": false,
"name": "John Doe",
"role_id": 3,
"role": "Tester",
"group_ids": [1, 2, 3],
"mfa_required": false
}
Response content (TestRail Enterprise)
{
"id": 1,
"email": "john.doe@gurock.io",
"email_notifications": true,
"is_active": true,
"is_admin": false,
"name": "John Doe",
"role_id": 3,
"role": "Tester",
"group_ids": [1, 2, 3],
"mfa_required": false,
"sso_enabled": true,
"assigned_projects": [1, 3]
}
The following fields are included in the response:
Name | Type | Description |
---|---|---|
assigned_projects | array | An array of project IDs. Each ID is a project to which the user is assigned. See Project Level Administration for more information - requires TestRail Enterprise 7.3 or later |
string | The email address of the user as configured in TestRail | |
email_notifications | boolean | True if email notifications are enabled for the user - requires TestRail 7.3 or later |
id | integer | The unique ID of the user |
is_active | boolean | True if the user is active and false otherwise |
is_admin | boolean | True if the user is a TestRail administrator - requires TestRail 7.3 or later |
group_ids | array | An array of group IDs. Each ID is a group to which the user is assigned - requires TestRail 7.3 or later |
mfa_required | boolean | True if the user profile is configured to require MFA at each login - requires TestRail 7.3 or later |
name | string | The full name of the user |
role_id | integer | The unique ID of the user’s globally assigned role – requires TestRail 6.4 or later |
role | string | The Name of the user’s globally assigned role – requires TestRail 6.4 or later |
sso_enabled | boolean | True if the user’s profile has Single-Sign-On enabled - requires TestRail Enterprise 7.3 or later |
Any user can retrieve his/her own account information. Retrieving information for any other use requires administrator access.
Response codes
Status Code | Description |
---|---|
200 | Success (the user is returned as part of the response) |
400 | Invalid or unknown user |
429 | TestRail Cloud only—Too many requests (see API rate limit) |
get_current_user
This endpoint requires TestRail 6.6 or later.
Returns user details for the TestRail user making the API request.
GET index.php?/api/v2/get_current_user/{user_id}
Parameters
Name | Type | Required | Description |
---|---|---|---|
user_id | integer | true | The ID of the user |
Response content
{
"id": 1,
"email": "john.doe@gurock.io",
"is_active": true,
"name": "John Doe",
"role_id": 3,
"role": "Tester"
}
The following fields are included in the response:
Name | Type | Description |
---|---|---|
string | The email address of the user as configured in TestRail | |
id | integer | The unique ID of the user |
is_active | boolean | True if the user is active and false otherwise |
name | string | The full name of the user |
role_id | integer | The unique ID of the user’s globally assigned role – requires TestRail 6.4 or later |
role | string | The Name of the user’s globally assigned role – requires TestRail 6.4 or later |
Any user can retrieve his/her own account information. Retrieving information for any other use requires administrator access.
Response codes
Status Code | Description |
---|---|
200 | Success (the user is returned as part of the response) |
400 | Invalid or unknown user |
429 | TestRail Cloud only—Too many requests (see API rate limit) |
get_user_by_email
Returns an existing user by his/her email address.
GET index.php?/api/v2/get_user_by_email&email={email}
Parameters
Name | Type | Required | Description |
---|---|---|---|
string | true | The email address to get the user for |
This method uses the same response format as get_user.
Any user can retrieve his/her own account information. Retrieving information for any other use requires administrator access.
Response codes
Status Code | Description |
---|---|
200 | Success (the user is returned as part of the response) |
400/404 | Invalid or unknown email address |
429 | TestRail Cloud only—Too many requests (see API rate limit) |
get_users
Returns a list of users.
GET index.php?/api/v2/get_users
GET index.php?/api/v2/get_users/{project_id}
As of TestRail 6.6, only administrators can use get_users without a project_id parameter. Non-administrators are required to use the project_id parameter.
Parameters
Name | Type | Required | Description |
---|---|---|---|
project_id | integer | true | The ID of the project for which you would like to retrieve user information. (Required for non-administrators.) – requires TestRail 6.6 or later |
Please Note:
- Non-administrators must include a project_id parameter.
- When a project_id is omitted, all user information is returned.
- get_users/{project_id} only retrieves users with explicit project access and does not list users with global access.
When a project_id parameter is used:
- The role and role_id values returned will correspond to the user’s project-level access.
- Inactive users are not included in the response.
- Users without access to the project are not included in the response.
Response content
[
{
"id": 1,
"name": "John Doe",
},
{
"id": 2,
"name": "Alexis Gonzalez",
},
]
The response includes an array of users. Each user in this list follows the same format as get_user.
Response codes
Status Code | Description |
---|---|
200 | Success (the users are returned as part of the response) |
400 |
Invalid project_id |
403 |
Insufficient permissions |
429 | TestRail Cloud only—Too many requests (see API rate limit) |
add_user
This endpoint requires TestRail 7.3 or later.
POST index.php?/api/v2/add_user
Request example
{
"name": "John Doe",
"email": "john.doe@gurock.io"
}
The following fields are included in the response:
Name | Type | Description |
---|---|---|
assigned_projects | array | An array of project IDs to assign to a Project Level Administrator. See Project Level Administration for more information. |
string | The email address of the user. (Required) | |
email_notifications | boolean | False to disable email notifications for the user. Default: True. |
is_active | boolean | True if the user is active or not. Default: False. |
is_admin | boolean | True to make the user a TestRail Administrator. Default: False. |
group_ids | array | Array of group IDs to assign the user to |
mfa_required | boolean | True to require Multi-Factor Authentication for the user. Default value matches the MFA setting of the instance |
name | string | The name of the user. (Required) |
role_id | integer | The ID of the global role to assign to the user |
sso_enabled | boolean | True to enable SSO for the user. Default value matches the SSO setting of the instance |
Response content
If successful, this method returns the new user using the same response format as get_user.
Response codes
Status Code | Description |
---|---|
200 | Success (the user was created) |
400 |
Invalid field value, such as an email address |
403 |
No permission to create users |
update_user
Updates an existing user.
POST index.php?/api/v2/update_user/:user_id
Parameters
Name | Type | Required | Description |
---|---|---|---|
user_id | integer | true | The ID of the user |
Request fields
This endpoint supports the same fields as add_user.
Response content
If successful, this method returns the updated user using the same response format as get_user.
Response codes
Status Code | Description |
---|---|
200 | Success (the user was updated) |
400 | Invalid field value, such as an email address |
403 |
No permission to update users |