# Update User Apps

## PATCH /v1/admin/user/{uid}/app/entitlement/list

> Update unique entitlement of an app for this user. Entitlement can be installation, visibility or product

```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}/app/entitlement/list":{"patch":{"summary":"Update unique entitlement of an app for this user. Entitlement can be installation, visibility or product","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","in":"path","required":true}],"tags":["AppEntitlement"],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAppEntitlementList"}}}},"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/UserAppEntitlementsPatchList"}}},"required":true}}}},"components":{"schemas":{"UserAppEntitlementList":{"type":"array","items":{"$ref":"#/components/schemas/UserAppEntitlement"}},"UserAppEntitlement":{"description":"Application Entitlements for the user","type":"object","required":["appId","listed","install"],"properties":{"appId":{"type":"string","description":"Unique ID for the Application","maxLength":256,"minLength":1},"appName":{"type":"string","description":"Name for this Application","maxLength":50,"minLength":1},"listed":{"type":"boolean","description":"if true, this application will be listed in the appstore for this user.  Otherwise, this application will be hidden in the appstore."},"install":{"type":"boolean","description":"if true, it indicate this application is installed for this user.  Otherwise, this user does not have this application installed."},"products":{"$ref":"#/components/schemas/ProductList"}}},"ProductList":{"type":"array","items":{"$ref":"#/components/schemas/Product"}},"Product":{"description":"Application Product","type":"object","required":["name","type","subscribed"],"properties":{"appId":{"type":"string","description":"App ID for the Product","maxLength":256,"minLength":1},"name":{"type":"string","minLength":1,"maxLength":50,"description":"Product Name"},"sku":{"type":"string","minLength":1,"maxLength":100,"description":"Product SKU"},"subscribed":{"type":"boolean","description":"indicate whether the product is subscribed or not"},"type":{"type":"string","description":"Product Type (default or premium)"}}},"Error":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"}}},"UserAppEntitlementsPatchList":{"description":"Array of app entitlements to patch for a user","type":"array","items":{"$ref":"#/components/schemas/UserAppEntitlementPatch"}},"UserAppEntitlementPatch":{"description":"Application Entitlements to patch for the user","type":"object","required":["appId"],"properties":{"appId":{"type":"string","description":"Unique ID for the Application","maxLength":256,"minLength":1},"listed":{"type":"string","enum":["TRUE","FALSE","KEEP","REMOVE"],"default":"KEEP","description":"If \"TRUE\", this application will be listed in the appstore for this user. If \"FALSE\", this application will be hidden in the appstore. If \"KEEP\" or not set, the current value is kept. If \"REMOVE\", it will be removed from user settings and the pod level setting's value will be used."},"install":{"type":"string","enum":["TRUE","FALSE","KEEP","REMOVE"],"default":"KEEP","description":"If \"TRUE\", this application will be installed for this user. If \"FALSE\", this application will not be installed for this user. If \"KEEP\" or not set, the current value is kept. If \"REMOVE\", it will be removed from user settings and the pod level setting's value will be used."},"product":{"$ref":"#/components/schemas/Product"}}}}}}
```

{% hint style="info" %}
As shown in the example, the request body is structured as an array `[]` of individual apps to be updated.
{% endhint %}

> #### 📘 Info
>
> Unlike [Update All User Apps](/main/apps-entitlements/update-user-apps.md) endpoint, it is not mandatory to provide in the body request all app entitlements for a given app.\
> You can therefore update only one or several of them among the following body params: "install", "listed", or "products".
>
> The "product" field is not required but cannot be set to "null". When provided, please specify all subfields specified such as in the example: "appId", "subscribed", "type", "sku", and "name".


---

# 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/apps-entitlements/partial-update-user-apps.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.
