Important: Recommendations AI has migrated to the Retail API, which is now generally available.

The Recommendations AI API (service endpoint and this documentation set remain available, but they will no longer be updated. We recommend migrating your recommendations to the Retail API (service endpoint See the new documentation:

Recommendations AI

Recommendations AI service enables customers to build end-to-end personalized recommendation systems without requiring a high level of expertise in machine learning, recommendation system, or Google Cloud.


To call this service, we recommend that you use the Google-provided client libraries. If your application needs to use your own libraries to call this service, use the following information when you make the API requests.

Discovery document

A Discovery Document is a machine-readable specification for describing and consuming REST APIs. It is used to build client libraries, IDE plugins, and other tools that interact with Google APIs. One service may provide multiple discovery documents. This service provides the following discovery document:

Service endpoint

A service endpoint is a base URL that specifies the network address of an API service. One service might have multiple service endpoints. This service has the following service endpoint and all URIs below are relative to this service endpoint:


REST Resource: v1beta1.projects.locations.catalogs

list GET /v1beta1/{parent=projects/*/locations/*}/catalogs
Lists all the catalog configurations associated with the project.
patch PATCH /v1beta1/{*/locations/*/catalogs/*}
Updates the catalog configuration.

REST Resource: v1beta1.projects.locations.catalogs.catalogItems

create POST /v1beta1/{parent=projects/*/locations/*/catalogs/*}/catalogItems
Creates a catalog item.
delete DELETE /v1beta1/{name=projects/*/locations/*/catalogs/*/catalogItems/**}
Deletes a catalog item.
get GET /v1beta1/{name=projects/*/locations/*/catalogs/*/catalogItems/**}
Gets a specific catalog item.
import POST /v1beta1/{parent=projects/*/locations/*/catalogs/*}/catalogItems:import
Bulk import of multiple catalog items.
list GET /v1beta1/{parent=projects/*/locations/*/catalogs/*}/catalogItems
Gets a list of catalog items.
patch PATCH /v1beta1/{name=projects/*/locations/*/catalogs/*/catalogItems/**}
Updates a catalog item.

REST Resource: v1beta1.projects.locations.catalogs.eventStores.operations

get GET /v1beta1/{name=projects/*/locations/*/catalogs/*/eventStores/*/operations/*}
Gets the latest state of a long-running operation.
list GET /v1beta1/{name=projects/*/locations/*/catalogs/*/eventStores/*}/operations
Lists operations that match the specified filter in the request.

REST Resource: v1beta1.projects.locations.catalogs.eventStores.placements

predict POST /v1beta1/{name=projects/*/locations/*/catalogs/*/eventStores/*/placements/*}:predict
Makes a recommendation prediction.

REST Resource: v1beta1.projects.locations.catalogs.eventStores.predictionApiKeyRegistrations

create POST /v1beta1/{parent=projects/*/locations/*/catalogs/*/eventStores/*}/predictionApiKeyRegistrations
Register an API key for use with predict method.
delete DELETE /v1beta1/{name=projects/*/locations/*/catalogs/*/eventStores/*/predictionApiKeyRegistrations/*}
Unregister an apiKey from using for predict method.
list GET /v1beta1/{parent=projects/*/locations/*/catalogs/*/eventStores/*}/predictionApiKeyRegistrations
List the registered apiKeys for use with predict method.

REST Resource: v1beta1.projects.locations.catalogs.eventStores.userEvents

collect GET /v1beta1/{parent=projects/*/locations/*/catalogs/*/eventStores/*}/userEvents:collect
Writes a single user event from the browser.
import POST /v1beta1/{parent=projects/*/locations/*/catalogs/*/eventStores/*}/userEvents:import
Bulk import of User events.
list GET /v1beta1/{parent=projects/*/locations/*/catalogs/*/eventStores/*}/userEvents
Gets a list of user events within a time range, with potential filtering.
purge POST /v1beta1/{parent=projects/*/locations/*/catalogs/*/eventStores/*}/userEvents:purge
Deletes permanently all user events specified by the filter provided.
rejoin POST /v1beta1/{parent=projects/*/locations/*/catalogs/*/eventStores/*}/userEvents:rejoin
Triggers a user event rejoin operation with latest catalog data.
write POST /v1beta1/{parent=projects/*/locations/*/catalogs/*/eventStores/*}/userEvents:write
Writes a single user event.

REST Resource: v1beta1.projects.locations.catalogs.operations

get GET /v1beta1/{name=projects/*/locations/*/catalogs/*/operations/*}
Gets the latest state of a long-running operation.
list GET /v1beta1/{name=projects/*/locations/*/catalogs/*}/operations
Lists operations that match the specified filter in the request.