> For the complete documentation index, see [llms.txt](https://docs.archisketch.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.archisketch.com/guide/dev-en/api-sdk/api/user.md).

# User

## Update User Information

> Updates the user's name or role.\
> \
> \### Use Cases\
> \- Change user name\
> \- Change user role\
> \
> \### Constraints\
> \- At least one of name or role is required\
> \- name: 1 to 100 characters (if null, it will not be changed)\
> \- role: choose from USER, DESIGNER, MANAGER, ADMIN (if null, it will not be changed)<br>

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"User"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"paths":{"/api/v1/users/{id}":{"put":{"tags":["User"],"summary":"Update User Information","description":"Updates the user's name or role.\n\n### Use Cases\n- Change user name\n- Change user role\n\n### Constraints\n- At least one of name or role is required\n- name: 1 to 100 characters (if null, it will not be changed)\n- role: choose from USER, DESIGNER, MANAGER, ADMIN (if null, it will not be changed)\n","operationId":"updateUser","parameters":[{"name":"id","in":"path","description":"User ID","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"User information to update","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserRequest"}}},"required":true},"responses":{"200":{"description":"All responses return 200 (including success and failure) (5xx is exposed only in error conditions)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseUnit"}}}}}}}}}
```

## Change User Status

> Changes the user's activation status.\
> \
> \### Use Cases\
> \- Activate user account (ACTIVE)\
> \- Deactivate user account (DELETE)\
> \
> \### Status Values\
> \- ACTIVE: Activates the user.\
> \- DELETE: Deactivates the user.<br>

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"User"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"paths":{"/api/v1/users/{id}":{"patch":{"tags":["User"],"summary":"Change User Status","description":"Changes the user's activation status.\n\n### Use Cases\n- Activate user account (ACTIVE)\n- Deactivate user account (DELETE)\n\n### Status Values\n- ACTIVE: Activates the user.\n- DELETE: Deactivates the user.\n","operationId":"changeUserStatus","parameters":[{"name":"id","in":"path","description":"User ID","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Status to change","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserStatusRequest"}}},"required":true},"responses":{"200":{"description":"All responses return 200 (including success and failure) (5xx is exposed only in error conditions)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseUnit"}}}}}}}}}
```

## Get User List

> Retrieves the user list.\
> \
> \### Use Cases\
> \- Retrieve list of users belonging to the enterprise\
> \- Filter users by role and category\
> \- User search and management\
> \
> \### Pagination\
> \- Offset-based paging (starts from 0)\
> \- limit: page size (min 1, max 100)\
> \- Check existence of the next page using hasNext in the response\
> \
> \### Filter Conditions\
> \- email: Email filter\
> \- name: Name filter\
> \- roles: Role filter (USER, DESIGNER, MANAGER, ADMIN)\
> \- categoryId: Category ID filter\
> \- sortType: Sort criteria (default: ID\_DESC)

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"User"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"paths":{"/api/v1/users":{"get":{"tags":["User"],"summary":"Get User List","description":"Retrieves the user list.\n\n### Use Cases\n- Retrieve list of users belonging to the enterprise\n- Filter users by role and category\n- User search and management\n\n### Pagination\n- Offset-based paging (starts from 0)\n- limit: page size (min 1, max 100)\n- Check existence of the next page using hasNext in the response\n\n### Filter Conditions\n- email: Email filter\n- name: Name filter\n- roles: Role filter (USER, DESIGNER, MANAGER, ADMIN)\n- categoryId: Category ID filter\n- sortType: Sort criteria (default: ID_DESC)","operationId":"getUsers","parameters":[{"name":"email","in":"query","description":"Email","required":false,"schema":{"type":"string"}},{"name":"name","in":"query","description":"Name","required":false,"schema":{"type":"string"}},{"name":"roles","in":"query","description":"Roles","required":false,"schema":{"type":"array","items":{"type":"string","description":"User Permissions","enum":["USER","DESIGNER","MANAGER","ADMIN"]}}},{"name":"categoryId","in":"query","description":"Category ID","required":false,"schema":{"type":"string"}},{"name":"sortType","in":"query","description":"Sort Type","required":false,"schema":{"type":"string","default":"ID_DESC","description":"Sort Type","enum":["ID_DESC","ID_ASC","NAME_ASC","NAME_DESC","UPDATED_ASC","UPDATED_DESC"]}},{"name":"offset","in":"query","description":"Page number (starts from 0, offset paging)","required":true,"schema":{"type":"integer","format":"int32"}},{"name":"limit","in":"query","description":"Page size (min: 1, max: 100)","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"All responses return 200 (including success and failure) (5xx is exposed only in error conditions)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponsePageResponseUserResponse"}}}}}}}}}
```

## Create User

> Creates a user.\
> \
> \### Use Cases\
> \- Register a new enterprise user\
> \- Administrator creates a user account\
> \
> \### Constraints\
> \- Password: 8\~128 characters\
> \- Name: 1\~100 characters\
> \- Role: choose from USER, DESIGNER, MANAGER, ADMIN\
> \- Category ID: Optional<br>

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"User"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"paths":{"/api/v1/users":{"post":{"tags":["User"],"summary":"Create User","description":"Creates a user.\n\n### Use Cases\n- Register a new enterprise user\n- Administrator creates a user account\n\n### Constraints\n- Password: 8~128 characters\n- Name: 1~100 characters\n- Role: choose from USER, DESIGNER, MANAGER, ADMIN\n- Category ID: Optional\n","operationId":"createUser","requestBody":{"description":"User creation request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserRequest"}}},"required":true},"responses":{"200":{"description":"All responses return 200 (including success and failure) (5xx is exposed only in error conditions)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseUnit"}}}}}}}}}
```

## Change User Password

> Changes the user's password.\
> \
> \### Constraints\
> \- Password: 8\~128 characters\
> \- Changeable even for deactivated users

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"User"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[{"open-api-key":[]}],"paths":{"/api/v1/users/{id}/password":{"patch":{"tags":["User"],"summary":"Change User Password","description":"Changes the user's password.\n\n### Constraints\n- Password: 8~128 characters\n- Changeable even for deactivated users","operationId":"updateUserPassword","parameters":[{"name":"id","in":"path","description":"User ID","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Password to change","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserPasswordRequest"}}},"required":true},"responses":{"200":{"description":"All responses return 200 (including success and failure) (5xx is exposed only in error conditions)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseUnit"}}}}}}}}}
```
