Product catalogs and recommendations tools

search_catalogs

Searches the v2 catalogs in a project, or fetches one by ID. Catalogs store product or generic data that's used for recommendations and personalization. Omit catalog_id to list all catalogs — you get summary records: name, display name, type (generic, product, or variant), and metadata. Pass catalog_id to fetch the full definition of a single catalog, including every field's name and data type.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.
catalog_idstr | nullNoThe catalog ID for direct lookup. Omit to list all; provide to fetch one.

Response parameters

The tool returns a CatalogsResponse when catalog_id is omitted, or a CatalogResponse when it's provided.

The CatalogsResponse object has the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
datalist[CatalogSummary]The catalog summaries.
errorstr | nullError message if the request failed.

The CatalogSummary object has the following fields:

FieldTypeDescription
idstrThe catalog's unique ID.
namestrThe machine-readable catalog name (lowercase with underscores).
display_namestr | nullThe human-readable display name.
descriptionstr | nullA description of the catalog.
typestr | nullThe catalog type: generic, product, or variant.
createdany | nullUnix timestamp of when the catalog 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.

The CatalogResponse object has the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
dataCatalog | nullThe full catalog definition.
errorstr | nullError message if the request failed.

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

FieldTypeDescription
fieldslist[CatalogFieldDef]The field definitions for this catalog. Each entry has a name, a type (string, number, boolean, date, and so on), and a searchable flag.

search_catalog_items

Searches and lists items inside a catalog. Items are the Elasticsearch-backed records used for recommendations and Discovery. Each item is returned as a flat dictionary of field values keyed by field name. You can search across all fields or restrict the search to a specific field.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.
catalog_idstrYesThe catalog ID returned by search_catalogs.
querystrNoSearch text. Defaults to an empty string. When field is not set, the search runs across all fields.
fieldstr | nullNoA specific field name to search within. Omit to search all fields.
skipintNoPagination offset. Defaults to 0.
countintNoNumber of items to return. Defaults to 20. Maximum 1,000.

Response parameters

The tool returns a CatalogItemsResponse object with the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
datalist[dict[str, any]]The catalog items, each as a flat dictionary keyed by field name.
totalintThe total number of items in the catalog.
matchedintThe number of items matching the search query.
limitintThe maximum number of items returned.
skipintThe pagination offset that was applied.
errorstr | nullError message if the request failed.

get_catalog_item

Returns a single item from a catalog by its item ID. The item is returned as a flat dictionary of field values; the item ID is in the _id field. If no item matches, success is false and the response includes an error message.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.
catalog_idstrYesThe catalog ID returned by search_catalogs.
item_idstrYesThe item's ID, for example A5 or prod-12345.

Response parameters

The tool returns a CatalogItemResponse object with the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
datadict[str, any] | nullThe catalog item fields as a flat dictionary. The item ID is in the _id field.
errorstr | nullError message if the request failed or the item was not found.

get_catalog_configuration

Returns the attribute schema for a catalog: custom attributes the user has defined (with name, type, and the catalog column they map to) and reserved system attributes (such as product_id, title, and price). Also returns a configuration_hash you can use to detect schema drift between snapshots.

Returns a 404 if the catalog has no configuration yet, for example because no configuration-update job has run.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.
catalog_idstrYesThe catalog ID returned by search_catalogs.

Response parameters

The tool returns a CatalogConfigurationResponse object with the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
dataCatalogConfigurationData | nullThe catalog's attribute schema.
errorstr | nullError message if the request failed.

The CatalogConfigurationData object has the following fields:

FieldTypeDescription
catalog_idstrThe catalog's ID.
project_idstrThe project ID.
configuration_hashstrA SHA256 hash of the configuration. Useful for detecting schema drift between versions.
custom_attribute_definitionslist[CatalogAttributeDefinition]User-defined attribute definitions, sorted alphabetically by name.
reserved_attribute_mappingslist[CatalogAttributeDefinition]System reserved attribute mappings (such as product_id, title, price, and brand), sorted in their standard order.

The CatalogAttributeDefinition object has the following fields:

FieldTypeDescription
namestrThe attribute's name.
record_field_namestrThe catalog record field this attribute maps to.
searchablebool | nullWhether the attribute is included in full-text search.
attribute_value_definitionCatalogAttributeValueDefinitionType information for the attribute.

The CatalogAttributeValueDefinition object has the following fields:

FieldTypeDescription
typestrOne of String, Integer, Float, Boolean, Date, Datetime, List.String, List.Integer, or List.Float.

list_catalog_jobs

Lists the job history for a catalog. Jobs represent data ingestion and update operations: imports, parses, items-updates, configuration-updates, and so on. Useful for checking data freshness or diagnosing upload failures.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.
catalog_idstrYesThe catalog ID returned by search_catalogs.
skipintNoPagination offset. Defaults to 0.
countintNoNumber of jobs to return. Defaults to 20. Maximum 1,000.

Response parameters

The tool returns a CatalogJobsResponse object with the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
datalist[CatalogJob]The catalog jobs, most recent first.
totalintThe total number of jobs for this catalog.
matchedintThe number of jobs matching the query.
matched_limitedboolWhether the match count was capped by a server limit.
limitintThe maximum number of jobs returned.
skipintThe pagination offset that was applied.
errorstr | nullError message if the request failed.

The CatalogJob object has the following fields:

FieldTypeDescription
idstrThe job's unique ID.
catalog_idstrThe catalog ID.
project_idstrThe project ID.
typestrThe job type: import, parse, download, items-update, configuration-update, or delete-catalog.
statestrThe job state: pending, running, success, fail, or canceled.
status_codeintThe status code: 102 (processing), 200 (success), 210 (success with warnings), 305 (no-op), 310 (skipped), 400 (bad definition), 440 (pre-condition failure), 450 (post-condition failure), 500 (error), or 550 (fatal).
statsdict[str, any]Job statistics such as records_total, items_total, records_added_total, records_deleted_total, items_updated_total, items_deleted_total, feed_total_ops, and feed_total_bytes.
propertiesdict[str, any]Job properties. The shape varies by job type.
logslist[any]Job log entries.
detailslist[any]Job detail messages.
createdstr | nullISO 8601 timestamp of when the job was created.
created_by_idstrThe user ID of the person who created the job.
created_by_display_namestrDisplay name of the job's creator.
editedstr | nullISO 8601 timestamp of the last edit.
startedstr | nullISO 8601 timestamp of when the job started running.
requested_cancelstr | nullISO 8601 timestamp of when cancellation was requested.
runnablestr | nullISO 8601 timestamp of when the job became runnable.

get_catalog_usages

Returns the cross-references for a catalog: which scenarios, recommendation engines, email campaigns, SMS campaigns, banners, experiments, in-app messages, and surveys reference it, plus whether the catalog is used in the project's custom data mapping.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.
catalog_idstrYesThe catalog ID returned by search_catalogs.

Response parameters

The tool returns a CatalogUsagesResponse object with the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
used_byCatalogUsedByCross-references grouped by resource type.
used_by_data_mappingboolWhether the catalog is referenced in the project's custom data mapping.
errorstr | nullError message if the request failed.

The CatalogUsedBy object has the following fields:

FieldTypeDescription
scenarioslist[CatalogUsageEntry]Scenarios using this catalog.
recommendationslist[CatalogUsageEntry]Recommendation engines using this catalog.
email_campaignslist[CatalogUsageEntry]Email campaigns using this catalog.
sms_campaignslist[CatalogUsageEntry]SMS campaigns using this catalog.
bannerslist[CatalogUsageEntry]Weblayer banners using this catalog.
experimentslist[CatalogUsageEntry]A/B experiments using this catalog.
in_app_messageslist[CatalogUsageEntry]In-app messages using this catalog.
surveyslist[CatalogUsageEntry]Surveys using this catalog.
otherlist[CatalogUsageEntry]Other resources using this catalog.

The CatalogUsageEntry object has the following fields:

FieldTypeDescription
idstrThe resource's ID.
namestrThe resource's display name.

search_recommendations

Searches the recommendation engines in a project, or fetches one by ID. Recommendation engines power personalized product suggestions using collaborative filtering, neural models, or rule-based algorithms. Omit recommendation_id to list all engines — you get summary records: name, status, tags, archived flag, and initiative assignment. Pass recommendation_id to fetch the full configuration of a single engine: algorithm type, the catalog it reads from, event mapping, filters, and output settings.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.
recommendation_idstr | nullNoThe recommendation engine ID for direct lookup. Omit to list all; provide to fetch one.

Response parameters

The tool returns a RecommendationsResponse when recommendation_id is omitted, or a RecommendationResponse when it's provided.

The RecommendationsResponse object has the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
datalist[RecommendationSummary]The recommendation engine summaries.
errorstr | nullError message if the request failed.

The RecommendationSummary object has the following fields:

FieldTypeDescription
idstrThe recommendation engine's unique ID.
namestrThe engine's display name.
statusstrOne of draft, active, or inactive.
archivedboolWhether the engine has been archived.
tagslist[str]User-defined tags.
initiative_idstr | nullThe initiative this engine belongs to, if any.
createdany | nullUnix timestamp of when the engine 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.

The RecommendationResponse object has the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
dataRecommendation | nullThe full engine definition.
errorstr | nullError message if the request failed.

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

FieldTypeDescription
definitionany | nullThe engine configuration: model type (collaborative filtering, neural, or rule-based), the catalog, event mapping, filters, and output settings.

get_customer_recommendations

Runs a recommendation engine for a single customer and returns the ranked list of products the engine suggests. Use it to check what an engine actually recommends for a named customer, for example to sanity-check results after a catalog update, or to compare two engines on the same customer.

This tool invokes the engine but doesn't change its definition, and it never tracks impression events, so the calls are diagnostic. Identify the engine with engine_id from search_recommendations, and identify the customer with customer_id plus its id_type. The customer_id is an external identifier, not the internal customer ID used by other customer tools.

This tool is in alpha, so its API or response shape may change.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.
engine_idstrYesThe recommendation engine ID to run, returned by search_recommendations.
customer_idstrYesThe customer's external identifier value, for example user-1234 or [email protected]. This is an external ID, not the internal customer ID used by other tools.
id_typestrNoThe external identifier type that customer_id belongs to, as defined on the project, for example registered, email, or cookie. Defaults to registered.
sizeintNoThe maximum number of items to return. Defaults to 10. Range 1–100.
strategystrNoOverrides the engine's strategy: winner, mix, or priority. Omit to use the engine's configured strategy.
diversity_levelintNoThe diversity tuning level from 1 (least diverse) to 5 (most diverse). Omit to use the engine default.
use_casestrNoThe recommendation use-case preset, for example homepage, product_detail_page, or email_abandoned_cart. Omit to use the engine default.

Response parameters

The tool returns a CustomerRecommendationsResponse object with the following parameters:

ParameterTypeDescription
successboolWhether the request succeeded.
datalist[RecommendedItem]The ranked list of recommended catalog items for the customer.
errorstr | nullError message if the request failed.

The RecommendedItem object has the following fields:

FieldTypeDescription
item_idstrThe catalog item ID of the recommended product.
product_idstr | nullThe product ID. Defaults to item_id when it isn't present in the catalog properties.
recommendation_idstr | nullThe ID of the recommendation engine that produced this item.
recommendation_variant_idstr | nullThe A/B test variant ID, if the engine is under experiment.
engine_namestr | nullThe name of the model or sub-engine that selected this item, for example cf, random, custom, or pinned.
recommendation_sourcestr | nullHow the item was chosen: model_personalized, model_non_personalized, model_fallback, fallback, pinned, or pinned_adjusted.

Each item also passes through any additional catalog attributes, such as title, image, and price, flattened alongside the fields above.



Did this page help you?

© Bloomreach, Inc. All rights reserved.