
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
App thumbnail lost in original app with (Re)publish ("overwritten") action. How to add app thumbnail to app with REST API or CLI?
I have a scenario where I need to replace the contents of a large set of published apps from a template app while maintaining items specific to the original app such as bookmarks, tags and the app thumbnail. In this scenario, each published app has a unique thumbnail.
Tags and bookmarks remain, however the thumbnail is lost.
I have tried the following methods:
- Qlik Cloud | Automations: "Publish App to Managed Space" block
- With REST API (and CLI)
- PUT/v1/apps/{appId}/publish
- thumbnail is not an allowed attribute in the payload for this endpoint
- So, after republishing the app with this end point, I added the thumbnail in the republished app's media via: PUT/v1/apps/{appId}/media/files/{path}
- Then, I updated the "item" with: PUT/v1/items/{itemId}. The "thumbnailId" appeared in the item metadata at the item level, however, it did NOT appear then in the "resourceAttribtes.thumbnail", which I'm guessing is how the thumbnail is associate with the app as its app thumbnail.
- PUT/v1/apps/{appId}/publish
I've tried various combinations of apps in Personal, Managed, and Shared spaces and have, so far, been unable to use automation or scripting to change/apply the app's thumbnail or retain the original during republishing (my user and Oauth client have all the needed permissions).
So, I have only been able to retain the thumbnail in the original app by manually opening the app and selecting the image, which is not a great option considering the frequency and number of apps being replaced.
There was a way to do this with the Qlik Sense qrs (qrs/app/{appid}/replace), but I'm not finding a way to replicate this functionality on Qlik Cloud .
Is there a way to achieve this? I'd be grateful for any help on this.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello, @blartyV
Step-by-Step Approach
1. Fetch the Original Thumbnail
Before republishing the app, extract the original app's thumbnail and store it. You can do this using:
GET Thumbnail
http
GET /v1/apps/{appId}/media/files/{path}
Save the thumbnail file locally or in a temporary storage location accessible to your automation.
2. Republish the App
Use the PUT /v1/apps/{appId}/publish API endpoint to replace the app's content. Unfortunately, this action will overwrite the thumbnail, as you’ve observed.
Republish App
http
Copy code
PUT /v1/apps/{appId}/publish
Content-Type: application/json
{
"spaceId": "managed-space-id",
"targetId": "target-space-id"
}
3. Upload the Thumbnail to the Republished App
After republishing, upload the saved thumbnail to the app's media storage.
Upload Thumbnail
http
Copy code
PUT /v1/apps/{appId}/media/files/{path}
Content-Type: multipart/form-data
{binary-data}
Replace {path} with the desired filename for the thumbnail (e.g., thumbnail.jpg).
Ensure the binary data contains the original thumbnail file.
4. Associate the Thumbnail with the App
Update the item metadata to point to the uploaded thumbnail.
Update Thumbnail Metadata
http
PUT /v1/items/{itemId}
Content-Type: application/json
{
"thumbnailId": "{uploaded-thumbnail-id}"
}
Replace {itemId} with the app’s item ID.
Replace {uploaded-thumbnail-id} with the ID or path of the uploaded thumbnail file.
This updates the app's metadata at the item level, which links the thumbnail.
5. Verify and Debug
Ensure the resourceAttributes.thumbnail reflects the correct thumbnail. If it does not update, you may need to force an update using the PATCH /v1/apps/{appId} API, which triggers metadata refresh.
Automation Suggestions
For handling a large set of apps, consider creating an automation script or tool to:
Fetch and back up the original thumbnails.
Republish apps using the API.
Re-upload and associate thumbnails.
Best Regards

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The publishing flow replaces all core parts of the app, and leaves only community content on a republish (as you've said), and we don't have a customizable flow at the moment.
Could you help me understand the need for different app icons? Is it to differentiate those in different published states?
In any case, the most likely path here is to follow the republish flow, then replace the app icon after the republish. This isn't easy to do with qlik-cli, and can't be done with automations. We could do it with raw calls in bash/ node/ some other language though. Would you be able to run a node app to complete this?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for getting back to me on this. In this case, it's not for differentiating published states. The app icons are customer logos.
I would be able to run a node app to complete the icon replacement.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@rosy876 , thanks for the reply.
I tried triggering a metadata refresh with the PATCH /v1/apps/{appId}, as you suggested, but I got a 404 response. I see that it isn't listed as a valid request method for this endpoint in Qlik's documentation.
This is what I tried (python):
HEADERS = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}
payload = {
"attributes": {
"name": app_name,
"description": app_description
}
}
endpoint = f"{base_url}/api/v1/apps/{app_id}"
response = requests.patch(endpoint, headers=HEADERS, json=payload)
Since there is no documentation on the PATCH method for this endpoint, I made a guess at structuring the request.
I also tried PUT /v1/apps/{appId} to see if that might work for triggering the metadata refresh, however it did not associate the item's "thumbnailId" as the app's "attributes.thumbnail" after sending the request.
If you have an example of how this worked for you, please share if possible.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@DaveChannon , do you have a rough idea for when the functionality you referred to of replacing an app's icon with a raw API call might be available?
