# AI Commerce Search API API

> AI Commerce Search API API on Apizie: 48 endpoints (Completes the specified prefix with keyword suggestions. This feature is only available for users who have…, Exports analytics metrics. `Operation.response` is of type `ExportAnalyticsMetricsResponse`.…, Gets the latest state of a long-running operation. Clients can use this method to poll the operation result…, Updates a ServingConfig., …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://apizie.tech/v1/analytics:googleapis-retail/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `analytics:googleapis-retail`
- Category: Analytics
- Status: byok
- Source: https://cloud.google.com/recommendations
- Page: https://apizie.tech/api/analytics/googleapis-retail
- OpenAPI: https://apizie.tech/api/analytics/googleapis-retail/openapi.json

The AI Commerce Search API is made up of Retail Search, Browse and Recommendations. These discovery AI solutions help you implement personalized search, browse and recommendations, based on machine learning models,…

## Endpoints

### Completes the specified prefix with keyword suggestions. This feature is only available for users who have…
`GET https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-complete-query` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| catalog | string | yes | Required. Catalog for which the completion is performed. Full resource name of catalog, such as… |
| dataset | string | no | Determines which dataset to use for fetching completion. "user-data" will use the dataset imported through… |
| deviceType | string | no | The device type context for completion suggestions. We recommend that you leave this field empty. It can apply different suggestions on… |
| enableAttributeSuggestions | boolean | no | If true, attribute suggestions are enabled and provided in the response. This field is only available for the `cloud-retail` dataset. |
| entity | string | no | The entity for customers who run multiple entities, domains, sites, or regions, for example, `Google US`, `Google Ads`, `Waymo`,… |
| languageCodes | string | no | Note that this field applies for `user-data` dataset only. For requests with `cloud-retail` dataset, setting this field has no effect. The… |
| maxSuggestions | integer | no | Completion max suggestions. If left unset or set to 0, then will fallback to the configured value CompletionConfig.max_suggestions. The… |
| query | string | no | Required. The query used to generate suggestions. The maximum number of allowed characters is 255. |
| visitorId | string | no | Recommended field. A unique identifier for tracking visitors. For example, this could be implemented with an HTTP cookie, which should be… |

### Exports analytics metrics. `Operation.response` is of type `ExportAnalyticsMetricsResponse`.…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-export-analytics-metrics` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| catalog | string | yes | Required. Full resource name of the parent catalog. Expected format: `projects/*/locations/*/catalogs/*` |
| body | object | yes | JSON request body |

### Gets the latest state of a long-running operation. Clients can use this method to poll the operation result…
`GET https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-operations-get` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | The name of the operation resource. |

### Updates a ServingConfig.
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-serving-configs-patch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Immutable. Fully qualified name `projects/*/locations/global/catalogs/*/servingConfig/*` |
| updateMask | string | no | Indicates which fields in the provided ServingConfig to update. The following are NOT supported: * ServingConfig.name If not set, all… |
| body | object | yes | JSON request body |

### Deletes a ServingConfig. Returns a NotFound error if the ServingConfig does not exist.
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-serving-configs-delete` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Required. The resource name of the ServingConfig to delete. Format:… |

### Returns the conversational search customization config for a given catalog.
`GET https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-get-conversational-search` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Required. Resource name of the parent catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog} |

### Get which branch is currently default branch set by CatalogService.SetDefaultBranch method under a specified…
`GET https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-get-default-branch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| catalog | string | yes | The parent catalog resource name, such as `projects/*/locations/global/catalogs/default_catalog`. |

### Manages overal generative question feature state -- enables toggling feature on and off.
`GET https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-get-generative-question-f` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| catalog | string | yes | Required. Resource name of the parent catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog} |

### Manages overal generative question feature state -- enables toggling feature on and off.
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-update-generative-questio` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| catalog | string | yes | Required. Resource name of the affected catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog} |
| updateMask | string | no | Optional. Indicates which fields in the provided GenerativeQuestionsFeatureConfig to update. If not set or empty, all supported fields are… |
| body | object | yes | JSON request body |

### Lists all the Catalogs associated with the project.
`GET https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| pageSize | integer | no | Maximum number of Catalogs to return. If unspecified, defaults to 50. The maximum allowed value is 1000. Values above 1000 will be coerced… |
| pageToken | string | no | A page token ListCatalogsResponse.next_page_token, received from a previous CatalogService.ListCatalogs call. Provide this to retrieve the… |
| parent | string | yes | Required. The account resource name with an associated location. If the caller does not have permission to list Catalogs under this… |

### Set a specified branch id as default branch. API methods such as SearchService.Search,…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-set-default-branch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| catalog | string | yes | Full resource name of the catalog, such as `projects/*/locations/global/catalogs/default_catalog`. |
| body | object | yes | JSON request body |

### Updates the conversational search customization config for a given catalog.
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-update-conversational-sea` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| catalog | string | yes | Required. Resource name of the catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog} |
| updateMask | string | no | Optional. Indicates which fields in the provided ConversationalSearchCustomizationConfig to update. If not set or empty, all supported… |
| body | object | yes | JSON request body |

### Allows management of individual questions.
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-update-generative-questio-2` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| catalog | string | yes | Required. Resource name of the catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog} |
| updateMask | string | no | Optional. Indicates which fields in the provided GenerativeQuestionConfig to update. The following are NOT supported: *… |
| body | object | yes | JSON request body |

### Adds the specified CatalogAttribute to the AttributesConfig. If the CatalogAttribute to add already exists,…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-attributes-config-add-cat` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| attributesConfig | string | yes | Required. Full AttributesConfig resource name. Format:… |
| body | object | yes | JSON request body |

### Removes the specified CatalogAttribute from the AttributesConfig. If the CatalogAttribute to remove does not…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-attributes-config-remove` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| attributesConfig | string | yes | Required. Full AttributesConfig resource name. Format:… |
| body | object | yes | JSON request body |

### Replaces the specified CatalogAttribute in the AttributesConfig by updating the catalog attribute with the…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-attributes-config-replace` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| attributesConfig | string | yes | Required. Full AttributesConfig resource name. Format:… |
| body | object | yes | JSON request body |

### We recommend that you use the ProductService.AddLocalInventories method instead of the…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-branches-products-add-ful` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| product | string | yes | Required. Full resource name of Product, such as… |
| body | object | yes | JSON request body |

### Updates local inventory information for a Product at a list of places, while respecting the last update…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-branches-products-add-loc` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| product | string | yes | Required. Full resource name of Product, such as… |
| body | object | yes | JSON request body |

### Gets a list of Products.
`GET https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-branches-products-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | string | no | A filter to apply on the list results. Supported features: * List all the products under the parent branch if filter is unset. * List… |
| pageSize | integer | no | Maximum number of Products to return. If unspecified, defaults to 100. The maximum allowed value is 1000. Values above 1000 will be… |
| pageToken | string | no | A page token ListProductsResponse.next_page_token, received from a previous ProductService.ListProducts call. Provide this to retrieve the… |
| parent | string | yes | Required. The parent branch resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/0`. Use `default_branch`… |
| readMask | string | no | The fields of Product to return in the responses. If not set or empty, the following fields are returned: * Product.name * Product.id *… |

### Creates a Product.
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-branches-products-create` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent | string | yes | Required. The parent catalog resource name, such as `projects/*/locations/global/catalogs/default_catalog/branches/default_branch`. |
| productId | string | no | Required. The ID to use for the Product, which will become the final component of the Product.name. If the caller does not have permission… |
| body | object | yes | JSON request body |

### Bulk import of multiple Products. Request processing may be synchronous. Non-existing items are created.…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-branches-products-import` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent | string | yes | Required. `projects/1234/locations/global/catalogs/default_catalog/branches/default_branch` If no updateMask is specified, requires… |
| body | object | yes | JSON request body |

### Permanently deletes all selected Products under a branch. This process is asynchronous. If the request is…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-branches-products-purge` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent | string | yes | Required. The resource name of the branch under which the products are created. The format is… |
| body | object | yes | JSON request body |

### We recommend that you use the ProductService.RemoveLocalInventories method instead of the…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-branches-products-remove` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| product | string | yes | Required. Full resource name of Product, such as… |
| body | object | yes | JSON request body |

### Remove local inventory information for a Product at a list of places at a removal timestamp. This process is…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-branches-products-remove-2` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| product | string | yes | Required. Full resource name of Product, such as… |
| body | object | yes | JSON request body |

### Updates inventory information for a Product while respecting the last update timestamps of each inventory…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-branches-products-set-inv` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Immutable. Full resource name of the product, such as… |
| body | object | yes | JSON request body |

### Bulk import of processed completion dataset. Request processing is asynchronous. Partial updating is not…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-completion-data-import` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent | string | yes | Required. The catalog which the suggestions dataset belongs to. Format: `projects/1234/locations/global/catalogs/default_catalog`. |
| body | object | yes | JSON request body |

### Lists all Controls by their parent Catalog.
`GET https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-controls-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | string | no | Optional. A filter to apply on the list results. Supported features: * List all the products under the parent branch if filter is unset. *… |
| pageSize | integer | no | Optional. Maximum number of results to return. If unspecified, defaults to 50. Max allowed value is 1000. |
| pageToken | string | no | Optional. A page token, received from a previous `ListControls` call. Provide this to retrieve the subsequent page. |
| parent | string | yes | Required. The catalog resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}` |

### Creates a Control. If the Control to create already exists, an ALREADY_EXISTS error is returned.
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-controls-create` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| controlId | string | no | Required. The ID to use for the Control, which will become the final component of the Control's resource name. This value should be 4-63… |
| parent | string | yes | Required. Full resource name of parent catalog. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}` |
| body | object | yes | JSON request body |

### Allows management of multiple questions.
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-generative-question-batch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent | string | yes | Optional. Resource name of the parent catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog} |
| body | object | yes | JSON request body |

### Returns all questions for a given catalog.
`GET https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-generative-questions-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent | string | yes | Required. Resource name of the parent catalog. Format: projects/{project}/locations/{location}/catalogs/{catalog} |

### Lists all the models linked to this event store.
`GET https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-models-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| pageSize | integer | no | Optional. Maximum number of results to return. If unspecified, defaults to 50. Max allowed value is 1000. |
| pageToken | string | no | Optional. A page token, received from a previous `ListModels` call. Provide this to retrieve the subsequent page. |
| parent | string | yes | Required. The parent for which to list models. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}` |

### Creates a new model.
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-models-create` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| dryRun | boolean | no | Optional. Whether to run a dry run to validate the request (without actually creating the model). |
| parent | string | yes | Required. The parent resource under which to create the model. Format:… |
| body | object | yes | JSON request body |

### Pauses the training of an existing model.
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-models-pause` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Required. The name of the model to pause. Format:… |
| body | object | yes | JSON request body |

### Resumes the training of an existing model.
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-models-resume` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Required. The name of the model to resume. Format:… |
| body | object | yes | JSON request body |

### Tunes an existing model.
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-models-tune` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Required. The resource name of the model to tune. Format:… |
| body | object | yes | JSON request body |

### Lists operations that match the specified filter in the request. If the server doesn't support this method,…
`GET https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-operations-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| filter | string | no | The standard list filter. |
| name | string | yes | The name of the operation's parent resource. |
| pageSize | integer | no | The standard list page size. |
| pageToken | string | no | The standard list page token. |
| returnPartialSuccess | boolean | no | When set to `true`, operations that are reachable are returned as normal, and those that are unreachable are returned in the… |

### Performs a conversational search. This feature is only available for users who have Conversational Search…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-serving-configs-conversat` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placement | string | yes | Required. The resource name of the search engine placement, such as… |
| body | object | yes | JSON request body |

### Makes a recommendation prediction.
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-serving-configs-predict` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placement | string | yes | Required. Full resource name of the format: `{placement=projects/*/locations/global/catalogs/default_catalog/servingConfigs/*}` or… |
| body | object | yes | JSON request body |

### Performs a search. This feature is only available for users who have Retail Search enabled. Enable Retail…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-serving-configs-search` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placement | string | yes | Required. The resource name of the Retail Search serving config, such as… |
| body | object | yes | JSON request body |

### Enables a Control on the specified ServingConfig. The control is added in the last position of the list of…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-serving-configs-add-contr` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| servingConfig | string | yes | Required. The source ServingConfig resource name . Format:… |
| body | object | yes | JSON request body |

### Lists all ServingConfigs linked to this catalog.
`GET https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-serving-configs-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| pageSize | integer | no | Optional. Maximum number of results to return. If unspecified, defaults to 100. If a value greater than 100 is provided, at most 100… |
| pageToken | string | no | Optional. A page token, received from a previous `ListServingConfigs` call. Provide this to retrieve the subsequent page. |
| parent | string | yes | Required. The catalog resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}` |

### Creates a ServingConfig. A maximum of 100 ServingConfigs are allowed in a Catalog, otherwise a…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-serving-configs-create` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent | string | yes | Required. Full resource name of parent. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}` |
| servingConfigId | string | no | Required. The ID to use for the ServingConfig, which will become the final component of the ServingConfig's resource name. This value… |
| body | object | yes | JSON request body |

### Disables a Control on the specified ServingConfig. The control is removed from the ServingConfig. Returns a…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-serving-configs-remove-co` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| servingConfig | string | yes | Required. The source ServingConfig resource name . Format:… |
| body | object | yes | JSON request body |

### Writes a single user event from the browser. For larger user event payload over 16 KB, the POST method…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-user-events-collect` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent | string | yes | Required. The parent catalog name, such as `projects/1234/locations/global/catalogs/default_catalog`. |
| body | object | yes | JSON request body |

### Bulk import of User events. Request processing might be synchronous. Events that already exist are skipped.…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-user-events-import` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent | string | yes | Required. `projects/1234/locations/global/catalogs/default_catalog` |
| body | object | yes | JSON request body |

### Deletes permanently all user events specified by the filter provided. Depending on the number of events…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-user-events-purge` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent | string | yes | Required. The resource name of the catalog under which the events are created. The format is… |
| body | object | yes | JSON request body |

### Starts a user-event rejoin operation with latest product catalog. Events are not annotated with detailed…
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-user-events-rejoin` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent | string | yes | Required. The parent catalog resource name, such as `projects/1234/locations/global/catalogs/default_catalog`. |
| body | object | yes | JSON request body |

### Writes a single user event.
`POST https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-user-events-write` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent | string | yes | Required. The parent catalog resource name, such as `projects/1234/locations/global/catalogs/default_catalog`. |
| writeAsync | boolean | no | If set to true, the user event will be written asynchronously after validation, and the API will respond without waiting for the write.… |
| body | object | yes | JSON request body |

## Example
```
curl "https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-complete-query" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the AI Commerce Search API API?
Create a free Apizie key, then send GET https://apizie.tech/v1/analytics:googleapis-retail/retail-projects-locations-catalogs-complete-query with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the AI Commerce Search API API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. AI Commerce Search API itself also needs your own key from googleapis.com.

### Can AI agents use the AI Commerce Search API API?
Yes. Add the Apizie MCP server (https://apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key analytics:googleapis-retail.

### What is the status of the AI Commerce Search API API?
Needs your own provider key (bring your own key)
