API at a glance
Description: This API allows you to update an existing HTML or Subject asset. You can modify the display name, content, and plain text settings.
Supported asset types:
htmlsubject
For more information about shared assets, see Shared assets overview.
Authentication & testing
Testing the API on this page
How to try it here
- Use your User API Key as the Username (leave Password blank).
- Select the appropriate API endpoint based on your Blueshift region.
- Enter the necessary parameters and click Try It to run the request.


Authentication using Base64 encoding
Note for developers
API requests require authentication using HTTP Basic Authentication with an API key.
The API key serves as the username, while the password field should be left empty.
The format to encode is: your_api_key: (note the trailing colon).
This string must be Base64-encoded and included in the request's Authorization header as follows:
Authorization: Basic encoded_valueYou can generate the encoded value using a trusted Base64 encoder.
Postman collection
Try it with Postman: Explore the API using Blueshift's Postman collection.
Things to know before you start
- Cannot update
asset_typeorshareable_nameafter creation. These fields are immutable. - For HTML assets: You can update
display_name,content,plain_text, andis_plain_text_custom. - For Subject assets: You can update
display_nameandcontent. Theplain_textandis_plain_text_customfields do not apply. - You must provide the shared asset UUID as a path parameter. This value is returned when you create an asset.
- Use case: Update content in shared assets without needing to recreate them or update references in templates.
Request parameters
Check out the request parameters
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
uuid | string | ✅ Yes | The UUID of the shared asset to update. |
The UUID is returned in the response when you create a shared asset.
You can find the shared asset UUID in the URL when viewing or editing a shared asset in Blueshift.

Body parameters
Note: All body parameters are optional. Include only the fields you want to update.
Parameter | Type | Required | Description |
|---|---|---|---|
|
| ❌ No | Human-readable name for the asset. Can be updated at any time. Note: Updating |
|
| ❌ No | The actual content of the asset.
|
|
| ❌ No | Plain text version of the HTML content. Applicable only for HTML assets. |
|
| ❌ No | Set to Applicable only for HTML assets. |
Field update restrictions
Fields that CANNOT be updated:
asset_type- Once set during creation, it cannot be changedshareable_name- This value is immutable and cannot be updated
Fields that CAN be updated:
display_name- Can be updated for both HTML and Subject assetscontent- Can be updated for both HTML and Subject assetsplain_text- Can be updated for HTML assets onlyis_plain_text_custom- Can be updated for HTML assets only
Example requests & responses
Update HTML asset
{
"display_name": "Updated Welcome Header",
"content": "<h1>Welcome to our updated store!</h1>"
}{
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"asset_type": "html",
"shareable_name": "bsft_Welcome_Email_Header",
"display_name": "Updated Welcome Header",
"author": "John Doe",
"email": "[email protected]",
"content": "<h1>Welcome to our updated store!</h1>",
"plain_text": null,
"is_plain_text_custom": false,
"updated_at": "2026-01-28T09:30:00.000Z",
"tag_data": ""
}Update HTML asset with custom plain text
{
"display_name": "Updated Product Announcement",
"content": "<h2>New Product Launch Updated</h2><p>Check out our latest collection.</p>",
"plain_text": "New Product Launch Updated - Check out our latest collection.",
"is_plain_text_custom": true
}{
"uuid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"asset_type": "html",
"shareable_name": "bsft_Product_Announcement",
"display_name": "Updated Product Announcement",
"author": "John Doe",
"email": "[email protected]",
"content": "<h2>New Product Launch Updated</h2><p>Check out our latest collection.</p>",
"plain_text": "New Product Launch Updated - Check out our latest collection.",
"is_plain_text_custom": true,
"updated_at": "2026-01-28T09:30:00.000Z",
"tag_data": ""
}Update Subject asset
{
"display_name": "Updated Welcome Subject",
"content": "Welcome to our growing community!"
}{
"uuid": "c3d4e5f6-a7b8-9012-cdef-234567890123",
"asset_type": "subject",
"shareable_name": "bsft_Welcome_Subject_Line",
"display_name": "Updated Welcome Subject",
"author": "John Doe",
"email": "[email protected]",
"content": "Welcome to our growing community!",
"plain_text": null,
"is_plain_text_custom": null,
"updated_at": "2026-01-28T09:30:00.000Z",
"tag_data": ""
}Response fields explained
Check out the response fields
| Field | Description |
|---|---|
uuid | Unique identifier for the shared asset. |
asset_type | Type of the asset (html or subject). Cannot be changed after creation. |
shareable_name | Auto-generated unique identifier. Cannot be changed after creation. |
display_name | Human-readable name for the asset. |
author | Name of the user who last updated the asset. |
email | Email of the user who last updated the asset. |
content | The actual content of the asset (HTML or subject line text). |
plain_text | Plain text version of the content. null if not provided for HTML assets or not applicable for Subject assets. |
is_plain_text_custom | Indicates whether plain text is custom (true) or auto-generated (false). null for Subject assets. |
updated_at | Timestamp of when the asset was last updated (ISO 8601 format). |
tag_data | Tags associated with the asset. |
Common error scenarios
Common error scenarios you may encounter
| Status code | Description | Example response |
|---|---|---|
| 401 Unauthorized | API authentication failed due to invalid or missing API key. | HTTP Basic: Access denied. |
| 404 Not Found | The specified shared asset UUID does not exist. | { "message": "Not Found" } |
| 422 Unprocessable Entity | Validation error (e.g., missing content or other required field). | { "errors": [{ "title": "content", "detail": "Content: can't be blank" }], "meta": { "combine_errors": false, "no_toast": false, "unformatted": { "content": ["can't be blank"] } } } |
| 500 Internal Server Error | An unexpected server error occurred. | { "status": "500", "error": "Internal Server Error" } |