# Update User Features

## POST /v1/admin/user/{uid}/features/update

> Update the list of Symphony feature entitlements for a particular user

```json
{"openapi":"3.1.1","info":{"title":"Pod API","version":"20.17.1"},"servers":[{"url":"http://yourpodURL.symphony.com/pod"}],"paths":{"/v1/admin/user/{uid}/features/update":{"post":{"summary":"Update the list of Symphony feature entitlements for a particular user","parameters":[{"schema":{"type":"string"},"name":"sessionToken","description":"Session authentication token.","in":"header","required":true},{"schema":{"type":"integer","format":"int64"},"name":"uid","description":"User ID as a decimal integer\n","in":"path","required":true}],"tags":["User"],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}},"400":{"description":"Client error, see response body for further details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized: Invalid session token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden: Caller lacks necessary entitlement.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server error, see response body for further details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeatureList"}}},"required":true}}}},"components":{"schemas":{"SuccessResponse":{"type":"object","properties":{"format":{"type":"string","enum":["TEXT","XML"]},"message":{"type":"string"}}},"Error":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"}}},"FeatureList":{"type":"array","items":{"$ref":"#/components/schemas/Feature"}},"Feature":{"description":"Entitlement feature record.","type":"object","properties":{"entitlment":{"type":"string"},"enabled":{"type":"boolean","description":"Whether this entitlement is enabled for the user."}}}}}}
```

### Request Example

```bash
curl -X POST \
https://acme.symphony.com/pod/v1/admin/user/7215545057281/features/update \
-H "sessionToken: SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '[
  {
    "entitlment": "canCreatePublicRoom",
    "enabled": true
  },
  {
    "entitlment": "isExternalRoomEnabled",
    "enabled": true
  },
  {
    "entitlment": "delegatesEnabled",
    "enabled": true
  },
  {
    "entitlment": "isExternalIMEnabled",
    "enabled": true
  },
  {
    "entitlment": "sendFilesEnabled",
    "enabled": true
  },
  {
    "entitlment": "canUpdateAvatar",
    "enabled": true
  }
]'
```

> #### 🚧 Required Permissions
>
> Calling this endpoint requires the User Provisioning role with `ACCESS_USER_PROVISIONING_API` privilege.\
> See [Bot Permissions](https://docs.developers.symphony.com/building-bots-on-symphony/configuration/bot-permissions) for a list of roles and associated privileges.

### Updating User Entitlements in Bulk

* When updating a large number of users, Symphony recommends parallelizing calls to this endpoint, typically to perform up to 300 calls concurrently.
* To reduce the effects of network latency, Symphony recommends executing these calls on a server in close geographic proximity to your pod.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://rest-api.symphony.com/main/user-management/update-features.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
