Asset manager tools

  • search_email_assets: List the reusable email design templates in a project, or fetch one by ID.
  • search_sms_assets: List the reusable SMS and MMS design templates in a project, or fetch one by ID.
  • search_email_blocks: List the reusable email content blocks in a project, or fetch one by ID.
  • search_custom_rows: List the reusable BEE Editor custom rows in a project, or fetch one by ID.
  • search_snippets: List the reusable snippets in a project, or fetch one by ID.
  • search_app_inbox_designs: List the reusable App Inbox message templates in a project, or fetch one by ID.
  • search_files: Find an uploaded file by name across the library, or fetch one file's metadata.
  • get_directory: Browse the subfolders and files inside one folder of the file library.
  • list_predefined_templates: List the built-in Bloomreach template library. Not scoped to a project.

search_email_assets

Searches the reusable email design templates in a project, or fetches one by ID. These are the templates on the Emails tab of the Asset manager — saved designs you insert into a campaign, rather than the scheduled sends built from them. For the campaigns themselves, use search_email_campaigns.

Omit asset_id to list templates as summary records: name, tags, archived flag, initiative assignment, and creation and edit metadata. Pass asset_id to fetch one template in full, including its design payload with the rendered HTML.

In list mode you can narrow the set with archived, only_mine, tags, and search, and page through the results with offset and limit. When you set search, tags, or only_mine, every page of the library is retrieved before the filter runs, so matches aren't limited to the first page of results.

only_mine resolves your user ID through list_project_users, which requires project-admin access. Without that access the filter falls back to matching your display name, which can miss templates.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.
asset_idstr | nullNoThe email template ID. Omit to list all; provide to fetch one.
archivedbool | nullNoFalse, the default, returns only live templates, matching the UI default. True returns only archived templates. Pass null for both.
only_mineboolNoReturn only templates created by the calling user. Defaults to false.
tagslist | nullNoReturn only templates carrying every tag listed, for example ['newsletter', 'promo'].
searchstr | nullNoA case-insensitive substring match on the template name.
offsetintNoThe number of records to skip, for pagination. Defaults to 0.
limitintNoThe maximum number of records to return. Defaults to 200.

Response parameters

The tool returns an EmailAssetsResponse when asset_id is omitted, or an EmailAssetResponse when it's provided.

The EmailAssetsResponse object has the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
datalist[EmailAssetSummary]The email template summaries.
offsetintThe offset used for this request. Defaults to 0.
limitintThe maximum number of records returned for this request. Defaults to 200.
archived_items_existsbool | nullWhether the project holds any archived templates. Populated only when archived is false, the default.
errorstr | nullError message if the request failed.

The EmailAssetSummary object has the following fields:

FieldTypeDescription
idstrThe template's unique ID.
namestrThe template's display name.
archivedboolWhether the template has been archived.
tagslist[str]User-defined tags.
initiative_idstr | nullThe initiative this template belongs to, if any.
createdany | nullUnix timestamp of when the template was created.
created_by_display_namestr | nullDisplay name of the creator.
editedany | nullUnix timestamp of the last edit.
edited_by_display_namestr | nullDisplay name of the last editor.

When asset_id is provided, the tool returns an EmailAssetResponse object with the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
dataEmailAsset | nullThe full email template record.
errorstr | nullError message if the request failed.

The EmailAsset object adds the following field on top of the summary record:

FieldTypeDescription
designany | nullThe full template design payload, including the rendered HTML.

search_sms_assets

Searches the reusable SMS and MMS design templates in a project, or fetches one by ID. These are the templates on the SMS tab of the Asset manager — saved message designs you insert into a campaign, rather than the scheduled sends built from them. For the campaigns themselves, use search_sms_campaigns.

Omit asset_id to list templates as summary records: name, tags, archived flag, initiative assignment, and creation and edit metadata. Pass asset_id to fetch one template in full, including the message design.

In detail mode, design carries a type of sms or mms, a max_message_parts value, and a translations object keyed by locale. Each translation holds a message, and MMS translations add subject, fallback_sms, and sender. The response also includes a convenience text field with the message text for the default locale. Read design.translations directly for any other locale, or for the MMS-only fields.

The list filters work the same way as search_email_assets, including the only_mine caveat about project-admin access.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.
asset_idstr | nullNoThe SMS template ID. Omit to list all; provide to fetch one.
archivedbool | nullNoFalse, the default, returns only live templates, matching the UI default. True returns only archived templates. Pass null for both.
only_mineboolNoReturn only templates created by the calling user. Defaults to false.
tagslist | nullNoReturn only templates carrying every tag listed, for example ['transactional', 'promo'].
searchstr | nullNoA case-insensitive substring match on the template name.
offsetintNoThe number of records to skip, for pagination. Defaults to 0.
limitintNoThe maximum number of records to return. Defaults to 200.

Response parameters

The tool returns an SmsAssetsResponse when asset_id is omitted, or an SmsAssetResponse when it's provided.

The SmsAssetsResponse object has the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
datalist[SmsAssetSummary]The SMS template summaries.
offsetintThe offset used for this request. Defaults to 0.
limitintThe maximum number of records returned for this request. Defaults to 200.
archived_items_existsbool | nullWhether the project holds any archived templates. Populated only when archived is false, the default.
errorstr | nullError message if the request failed.

The SmsAssetSummary object carries the same fields as EmailAssetSummary: id, name, archived, tags, initiative_id, created, created_by_display_name, edited, and edited_by_display_name.

When asset_id is provided, the tool returns an SmsAssetResponse object with the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
dataSmsAsset | nullThe full SMS template record.
errorstr | nullError message if the request failed.

The SmsAsset object adds the following fields on top of the summary record:

FieldTypeDescription
designany | nullThe message design: a type of sms or mms, a max_message_parts value, and translations keyed by locale. Each translation holds a message, and MMS translations add subject, fallback_sms, and sender.
textstr | nullThe message text for the default locale, as a convenience. Read design.translations for other locales.

search_email_blocks

Searches the reusable email content blocks in a project, or fetches one by ID. HTML blocks are the reusable HTML sections on the Blocks tab of the Asset manager, which you drop into an email design so a shared header, footer, or product row lives in one place.

Omit block_id to list blocks as summary records. Pass block_id to fetch one block in full, including its HTML content.

The list filters work the same way as search_email_assets. One extra caveat applies to only_mine: some blocks, AI-generated ones among them, have no recorded creator, so the filter can't match them.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.
block_idstr | nullNoThe block ID. Omit to list all; provide to fetch one.
archivedbool | nullNoFalse, the default, returns only live blocks, matching the UI default. True returns only archived blocks. Pass null for both.
only_mineboolNoReturn only blocks created by the calling user. Defaults to false.
tagslist | nullNoReturn only blocks carrying every tag listed, for example ['header', 'footer'].
searchstr | nullNoA case-insensitive substring match on the block name.
offsetintNoThe number of records to skip, for pagination. Defaults to 0.
limitintNoThe maximum number of records to return. Defaults to 200.

Response parameters

The tool returns an EmailBlocksResponse when block_id is omitted, or an EmailBlockResponse when it's provided.

The EmailBlocksResponse object has the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
datalist[EmailBlockSummary]The block summaries.
offsetintThe offset used for this request. Defaults to 0.
limitintThe maximum number of records returned for this request. Defaults to 200.
archived_items_existsbool | nullWhether the project holds any archived blocks. Populated only when archived is false, the default.
errorstr | nullError message if the request failed.

The EmailBlockSummary object carries the same fields as EmailAssetSummary: id, name, archived, tags, initiative_id, created, created_by_display_name, edited, and edited_by_display_name.

When block_id is provided, the tool returns an EmailBlockResponse object with the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
dataEmailBlock | nullThe full block record.
errorstr | nullError message if the request failed.

The EmailBlock object adds the following field on top of the summary record:

FieldTypeDescription
htmlstr | nullThe block's rendered HTML content. Read this field rather than reconstructing the markup yourself.

search_custom_rows

Searches the reusable custom rows in a project, or fetches one by ID. Custom rows are the saved row layouts on the Custom rows tab of the Asset manager, which you drag into an email built with the BEE Editor visual builder. See Email editors for how custom rows behave in the editor itself.

Omit row_id to list rows as summary records. Pass row_id to fetch one row in full, including its raw structure and its rendered HTML.

The list filters work the same way as search_email_assets, including the only_mine caveat about project-admin access.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.
row_idstr | nullNoThe custom row ID. Omit to list all; provide to fetch one.
archivedbool | nullNoFalse, the default, returns only live rows, matching the UI default. True returns only archived rows. Pass null for both.
only_mineboolNoReturn only rows created by the calling user. Defaults to false.
tagslist | nullNoReturn only rows carrying every tag listed, for example ['hero', 'product-grid'].
searchstr | nullNoA case-insensitive substring match on the row name.
offsetintNoThe number of records to skip, for pagination. Defaults to 0.
limitintNoThe maximum number of records to return. Defaults to 200.

Response parameters

The tool returns a CustomRowsResponse when row_id is omitted, or a CustomRowResponse when it's provided.

The CustomRowsResponse object has the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
datalist[CustomRowSummary]The custom row summaries.
offsetintThe offset used for this request. Defaults to 0.
limitintThe maximum number of records returned for this request. Defaults to 200.
archived_items_existsbool | nullWhether the project holds any archived rows. Populated only when archived is false, the default.
errorstr | nullError message if the request failed.

The CustomRowSummary object carries the same fields as EmailAssetSummary: id, name, archived, tags, initiative_id, created, created_by_display_name, edited, and edited_by_display_name.

When row_id is provided, the tool returns a CustomRowResponse object with the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
dataCustomRow | nullThe full custom row record.
errorstr | nullError message if the request failed.

The CustomRow object adds the following fields on top of the summary record:

FieldTypeDescription
htmlstr | nullThe row's rendered HTML.
jsonany | nullThe raw row structure as the BEE Editor stores it.

search_snippets

Searches the reusable snippets in a project, or fetches one by ID. Snippets are the code fragments on the Snippets tab of the Asset manager. Each one accepts named input parameters, so you can insert the same fragment into several templates and blocks and pass different values each time. See Using template parameters for how those parameters behave in a template.

Omit snippet_id to list snippets as summary records. Pass snippet_id to fetch one snippet in full, including its code and the input parameters it accepts.

The list filters work the same way as search_email_assets, including the only_mine caveat about project-admin access.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.
snippet_idstr | nullNoThe snippet ID. Omit to list all; provide to fetch one.
archivedbool | nullNoFalse, the default, returns only live snippets, matching the UI default. True returns only archived snippets. Pass null for both.
only_mineboolNoReturn only snippets created by the calling user. Defaults to false.
tagslist | nullNoReturn only snippets carrying every tag listed, for example ['tracking', 'personalization'].
searchstr | nullNoA case-insensitive substring match on the snippet name.
offsetintNoThe number of records to skip, for pagination. Defaults to 0.
limitintNoThe maximum number of records to return. Defaults to 200.

Response parameters

The tool returns a SnippetsResponse when snippet_id is omitted, or a SnippetResponse when it's provided.

The SnippetsResponse object has the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
datalist[SnippetSummary]The snippet summaries.
offsetintThe offset used for this request. Defaults to 0.
limitintThe maximum number of records returned for this request. Defaults to 200.
archived_items_existsbool | nullWhether the project holds any archived snippets. Populated only when archived is false, the default.
errorstr | nullError message if the request failed.

The SnippetSummary object carries the same fields as EmailAssetSummary: id, name, archived, tags, initiative_id, created, created_by_display_name, edited, and edited_by_display_name.

When snippet_id is provided, the tool returns a SnippetResponse object with the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
dataSnippet | nullThe full snippet record.
errorstr | nullError message if the request failed.

The Snippet object adds the following fields on top of the summary record:

FieldTypeDescription
jinja_htmlstr | nullThe snippet's code, as jinja-templated HTML.
paramsany | nullThe named input parameters the snippet accepts.

search_app_inbox_designs

Searches the reusable App Inbox message templates in a project, or fetches one by ID. These are the saved designs on the App Inbox tab of the Asset manager, which you insert into an App Inbox campaign.

Omit design_id to list templates as summary records. Pass design_id to fetch one template in full, including its rendered design content.

The list filters work the same way as search_email_assets, including the only_mine caveat about project-admin access.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.
design_idstr | nullNoThe App Inbox template ID. Omit to list all; provide to fetch one.
archivedbool | nullNoFalse, the default, returns only live templates, matching the UI default. True returns only archived templates. Pass null for both.
only_mineboolNoReturn only templates created by the calling user. Defaults to false.
tagslist | nullNoReturn only templates carrying every tag listed, for example ['onboarding', 'promo'].
searchstr | nullNoA case-insensitive substring match on the template name.
offsetintNoThe number of records to skip, for pagination. Defaults to 0.
limitintNoThe maximum number of records to return. Defaults to 200.

Response parameters

The tool returns an AppInboxDesignsResponse when design_id is omitted, or an AppInboxDesignResponse when it's provided.

The AppInboxDesignsResponse object has the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
datalist[AppInboxDesignSummary]The App Inbox template summaries.
offsetintThe offset used for this request. Defaults to 0.
limitintThe maximum number of records returned for this request. Defaults to 200.
archived_items_existsbool | nullWhether the project holds any archived templates. Populated only when archived is false, the default.
errorstr | nullError message if the request failed.

The AppInboxDesignSummary object carries the same fields as EmailAssetSummary: id, name, archived, tags, initiative_id, created, created_by_display_name, edited, and edited_by_display_name.

When design_id is provided, the tool returns an AppInboxDesignResponse object with the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
dataAppInboxDesign | nullThe full App Inbox template record.
errorstr | nullError message if the request failed.

The AppInboxDesign object adds the following field on top of the summary record:

FieldTypeDescription
designany | nullThe full template design payload, including rendered content.

search_files

Finds an uploaded file by name anywhere in the project's file library, or fetches one file's metadata by ID. The library holds the images, documents, and other files on the Files tab of the Asset manager. See File management for how the library is organized. This tool searches; to walk a folder's contents instead, use get_directory.

Pass exactly one of query or file_id. Passing both, or neither, returns an error. A query is a case-insensitive substring match on the file name and needs at least 3 characters. Add directory_id to confine a name search to one folder and the folders beneath it.

A name search has no archived filter, so archived files and folders can appear among the results. Check the archived and implicitly_archived fields on each record before you use one.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.
querystr | nullNoA case-insensitive substring match on the file name, at least 3 characters. Required unless you pass file_id.
file_idstr | nullNoA file ID, to look one file up directly. Required unless you pass query.
directory_idstr | nullNoLimit a name search to this folder and its subfolders. Ignored when you pass file_id.

Response parameters

The tool returns a MediaFilesResponse when you search by query, or a MediaFileResponse when you pass file_id.

The MediaFilesResponse object has the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
datalist[MediaFileSummary]The matching files.
directorieslist[MediaDirectorySummary]The folders whose names match the query.
pathlist[any]The breadcrumb path from the root folder. Empty for a name search.
errorstr | nullError message if the request failed.

The MediaFileSummary object has the following fields:

FieldTypeDescription
idstrThe file's unique ID.
namestrThe file name.
archivedboolWhether the file itself has been archived.
implicitly_archivedboolWhether the file counts as archived because a parent folder is archived, even when its own flag is false.
tagslist[str]User-defined tags.
parent_idstr | nullThe ID of the folder holding this file. Null at the root.
file_typestrThe file category: image, video, vcard, or other. Documents such as PDFs fall under other.
mime_typestr | nullThe file's MIME type.
variantsany | nullThe available renditions, keyed by name such as original or thumbnail, each with its size, dimensions, and URL.
createdany | nullUnix timestamp of when the file was uploaded.
created_by_display_namestr | nullDisplay name of the uploader.

When file_id is provided, the tool returns a MediaFileResponse object with the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
dataMediaFile | nullThe full file record.
errorstr | nullError message if the request failed.

The MediaFile object adds the following field on top of MediaFileSummary:

FieldTypeDescription
descriptionstr | nullThe file description.

get_directory

Browses one folder of the project's file library and returns its subfolders, its files, and the breadcrumb path from the root. Omit directory_id to browse the root folder. To find a file by name instead of walking the tree, use search_files.

A file or folder can be implicitly archived, meaning it counts as archived because a parent folder is archived even though its own archived flag is false. The archived filter accounts for this, and each record reports its own implicitly_archived value so you can tell the two cases apart.

Set file_type to narrow the files returned to one category. Documents such as PDFs and spreadsheets are categorized as other, not as a document type of their own.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.
directory_idstr | nullNoThe folder to browse. Omit to browse the root folder.
archivedbool | nullNoFalse, the default, returns only live files and folders, matching the UI default. True returns only archived ones. Pass null for both.
file_typestr | nullNoReturn only files in this category: image, video, vcard, or other. Omit to return every category.

Response parameters

The tool returns a MediaFilesResponse object, the same shape search_files returns in search mode:

ParameterTypeDescription
successboolWhether the request succeeded.
datalist[MediaFileSummary]The files directly inside this folder.
directorieslist[MediaDirectorySummary]The subfolders directly inside this folder.
pathlist[any]The breadcrumb path from the root folder down to this folder.
errorstr | nullError message if the request failed.

list_predefined_templates

Lists the built-in Bloomreach template library — the shared, ready-made assets you reach through the Predefined templates option in the Asset manager. See Project and predefined templates for how the two libraries differ. This is a global catalog rather than a project's own saved assets, so the tool takes no project_id. For a project's own library, use the other tools on this page.

Set asset_type to the kind of template you want. Hidden and disabled entries are left out, matching the UI default.

Request parameters

NameTypeRequired?Description
asset_typestrYesThe template category to list: weblayers, snippets, emails/html, emails/beefree, custom-rows, blocks, sms, or in-app-messages.

Response parameters

The tool returns a PredefinedTemplatesResponse object with the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
datalist[PredefinedTemplateSummary]The templates in the category you asked for.
errorstr | nullError message if the request failed.

The PredefinedTemplateSummary object has the following fields:

FieldTypeDescription
idstrThe template's unique ID.
namestrThe template's display name.
typestrThe normalized asset type.
tagslist[str]Catalog tags, for example Christmas or Black Friday.
disabledboolWhether the template is disabled.
hiddenboolWhether the template is hidden.
screenshotstr | nullURL of a preview image. Null for types that carry no screenshot, such as snippets and SMS templates.


Did this page help you?

© Bloomreach, Inc. All rights reserved.