TeamCity 2021.1 Help

Manage Users

This article lists REST API requests concerning users.

Get Users

To get a list of all users, use:

GET http://<TeamCity Server host>:<port>/app/rest/users

The endpoint responds with a Users entity which contains instances of a User entity.

Get Specific User Details

GET http://<TeamCity Server host>:<port>/app/rest/users/<userLocator>

Here, userLocator is typed as UserLocator. For example, to get a user by username, use:

GET http://<TeamCity Server host>:<port>/app/rest/users/username:MyUsername

Create User

To create a user, POST a User entity to:

POST http://<TeamCity Server host>:<port>/app/rest/users

Example payload:

<user email="string" name="string" username="string" password="string"> <roles> <role roleId="SYSTEM_ADMIN" scope="g"/> </roles> <groups> <group key="MyCustomGroupKey"/> </groups> </user>
{ "username": "username", "password": "password", "email": "email", "roles": { "role": [ { "roleId": "SYSTEM_ADMIN", "scope": "g", } ] }, "groups": { "group": [ { "key": "MyCustomGroupKey" } ] } }

Update/Remove Specific User

To update a user definition, PUT an updated User entity to:

PUT http://<TeamCity Server host>:<port>/app/rest/users/<userLocator>

To delete a user, use:

DELETE http://<TeamCity Server host>:<port>/app/rest/users/<userLocator>

Handle Groups

To retrieve groups for a specific user, run the following request:

GET http://<TeamCity Server host>:<port>/app/rest/users/<userLocator>/groups

To update the group ownership, send an updated Groups entity to:

PUT http://<TeamCity Server host>:<port>/app/rest/users/<userLocator>/groups

Example payload:

<groups> <group key="MyCustomGroupKey"/> </groups>
{ "group": [ { "key": "MyCustomGroupKey" } ] }

To delete user from a given group, use:

DELETE http://<TeamCity Server host>:<port>/app/rest/users/{userLocator}/groups/{groupLocator}

Here, groupLocator is typed as UserGroupLocator.

Manage User Roles

To get user roles for a specific user, run the following request:

GET http://<TeamCity Server host>:<port>/app/rest/users/<userLocator>/roles

Similarly to updating the user entity, you can update them all by sending a PUT request:

PUT http://<TeamCity Server host>:<port>/app/rest/users/<userLocator>/roles

Example payload:

<roles> <role roleId="SYSTEM_ADMIN" scope="g"/> </roles>
{ "role": [ { "roleId": "SYSTEM_ADMIN", "scope": "g", } ] }

Alternatively, you can add a new role by this PUT request:

PUT http://<TeamCity Server host>:<port>/app/rest/users/{userLocator}/roles/<roleId>/<scope>

or delete an existing role:

DELETE http://<TeamCity Server host>:<port>/app/rest/users/{userLocator}/roles/<roleId>/<scope>

Manage Access Tokens

User can create tokens only for own account, regardless of their level of permissions. To get a list of owned tokens, use:

GET http://<TeamCity Server host>:<port>/app/rest/users/<userLocator>/tokens

To create a new access token, use:

POST http://<TeamCity Server host>:<port>/app/rest/users/<userLocator>/tokens/<tokenName>

To delete an access token, use:

DELETE http://<TeamCity Server host>:<port>/app/rest/users/<userLocator>/tokens/<tokenName>
Last modified: 14 October 2021