List shared assets

Retrieve a list of shared assets: HTML, rich text, subject lines, and visual editor content.

API at a glance

Description: Retrieves shared assets, supporting filters and pagination.

Key query parameters:

  • asset_type[] (html, rich_text, visual_editor, subject)
  • display_name (substring match)
  • archived (0 = active, 1 = archived, omit = all)
  • Pagination with page and per_page

Authentication & testing

Testing the API on this page

How to try it here

  • Use your User API Key as the Username (leave Password blank).
  • User API Key Location
  • Select the appropriate API endpoint based on your Blueshift region.
  • API - Select 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_value

You 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

If no query parameters are applied, the API retrieves all shared assets in the account, including both active and archived assets across all supported types (html, rich_text, visual_editor, and subject).


Request parameters

Check out the request parameters
NameTypeRequiredDescriptionExample
asset_type[]array of stringsNoFilter by one or more asset types. Repeat the parameter for multiple values. Allowed values: html, rich_text, visual_editor, subject.asset_type[]=html&asset_type[]=visual_editor
display_namestringNoReturns assets whose display name contains the specified substring. An empty string returns all.Banner
archivedintegerNoArchived status filter. Use 0 for active/unarchived, 1 for archived, or omit to include both. In the response, this field is returned as a boolean (true/false).0
pageintegerNoWhich page of results to fetch. Zero-based index. Example: page=0&per_page=25 returns the first 25 results, page=1&per_page=25 returns the next 25.0
per_pageintegerNoThe number of results to return per page.25

Example requests & responses

Example 1 — Get active HTML + Visual Editor assets

Intent: Fetch only active shared assets of types html and visual_editor, limited to 2 results from the first page.

curl --location --globoff \
'https://api.getblueshift.com/api/v1/shared_assets.json?asset_type[]=html&asset_type[]=visual_editor&archived=0&per_page=2&page=0&order_by=updated_at&reverse=true' \
--header 'accept: application/json' \
--header 'authorization: Basic <API_KEY>'

[
  {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-1234567890ef",
    "asset_type": "html",
    "shareable_name": "footer_block",
    "display_name": "Footer Block",
    "archived": false,
    "author": "Content Team",
    "email": "[email protected]",
    "templates": [],
    "template_count": 0,
    "updated_at": "2025-08-28T12:00:00.000Z",
    "content": "<table><tr><td>Footer HTML content</td></tr></table>",
    "locked_parents": [],
    "lockable_children": []
  },
  {
    "uuid": "b2c3d4e5-f6a7-8901-bcde-2345678901fg",
    "asset_type": "visual_editor",
    "shareable_name": "promo_banner",
    "display_name": "Promo Banner",
    "archived": false,
    "author": "Design Team",
    "email": "[email protected]",
    "templates": [],
    "template_count": 0,
    "updated_at": "2025-08-28T15:30:00.000Z",
    "content": "<div style=\"text-align:center;\">Big Sale</div>",
    "locked_parents": [],
    "lockable_children": []
  }
]

Example 2 — Get subject assets matching a display name

Intent: Return subject-type assets with a display name containing “Welcome”, newest first.

curl --location --globoff \
'https://api.getblueshift.com/api/v1/shared_assets.json?asset_type[]=subject&display_name=Welcome&per_page=2&page=0&order_by=updated_at&reverse=true' \
--header 'accept: application/json' \
--header 'authorization: Basic <API_KEY>'

[
  {
    "uuid": "c3d4e5f6-a7b8-9012-cdef-3456789012gh",
    "asset_type": "subject",
    "shareable_name": "welcome_subject_v2",
    "display_name": "Welcome Subject v2",
    "archived": false,
    "author": "Copy Team",
    "email": "[email protected]",
    "templates": [],
    "template_count": 0,
    "updated_at": "2025-08-29T09:45:00.000Z",
    "content": "Welcome aboard! Here’s your quick start.",
    "locked_parents": [],
    "lockable_children": []
  },
  {
    "uuid": "d4e5f6a7-b8c9-0123-def4-4567890123hi",
    "asset_type": "subject",
    "shareable_name": "welcome_subject_offer",
    "display_name": "Welcome Subject – Special Offer",
    "archived": false,
    "author": "Copy Team",
    "email": "[email protected]",
    "templates": [],
    "template_count": 0,
    "updated_at": "2025-08-29T08:20:00.000Z",
    "content": "Thanks for joining! Enjoy 15% off your first purchase.",
    "locked_parents": [],
    "lockable_children": []
  }
]

API error responses
Status codeDescription
400Bad request – The request is invalid.
404Not found – The requested resource does not exist or is unavailable.
409Conflict – The request conflicts with the current state of the resource. Retry with exponential backoff.
413Payload too large – The request size exceeds the server limit.
429Too many requests – Rate limit exceeded. Retry with exponential backoff.
500Internal server error – An unexpected error occurred on the server.
502Bad gateway – Temporary error. Retry with exponential backoff.
503Service unavailable – The service is temporarily unavailable. Retry with exponential backoff.
504Gateway timeout – The server took too long to respond. Retry with exponential backoff.
Language
Credentials
Basic
base64
:
URL
Click Try It! to start a request and see the response here!