Product catalogs and recommendations tools

list_catalogs

Lists every v2 catalog in a project. Catalogs store product or generic data that's used for recommendations and personalization. The response gives you the name, display name, type (generic, product, or variant), and metadata. Field definitions are not included here — use get_catalog for those.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.

Response parameters

The tool returns a CatalogsResponse object with 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.

get_catalog

Returns 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_idstrYesThe catalog ID returned by list_catalogs.

Response parameters

The tool returns a CatalogResponse object with 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.

list_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 list_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 list_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 list_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 list_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 list_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.

list_recommendations

Lists every recommendation engine in a project. Recommendation engines power personalized product suggestions using collaborative filtering, neural models, or rule-based algorithms. The response gives you the name, status, tags, archived flag, and initiative assignment. The engine configuration is not included here — use get_recommendation for that.

Request parameters

NameTypeRequired?Description
project_idstrYesThe project ID returned by list_projects.

Response parameters

The tool returns a RecommendationsResponse object with 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.

get_recommendation

Returns the full configuration of a single recommendation 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_idstrYesThe recommendation engine ID returned by list_recommendations.

Response parameters

The tool returns a RecommendationResponse object with 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.


© Bloomreach, Inc. All rights reserved.