---
name: account-catalog-custom-private
title: Customizing the IBM Cloud catalog and private catalogs for users in your account
description: Private catalogs provide a way to centrally manage access to products in the IBM Cloud&reg; catalog and your own catalogs. You can customize the public catalog and your private catalogs to make specific solutions available to users in your account. By doing so, you can ensure that your catalogs are relevant to your business.
last-updated: 2026-04-16
---

> ## Documentation Index
> The table of contents for this documentation set is at https://cloud.ibm.com/docs/account?format=markdown
> The index for all IBM Cloud docs is at: https://cloud.ibm.com/docs/llms.txt
> Use these files to discover more information as needed.

# Customizing the IBM Cloud catalog and private catalogs for users in your account
{: #restrict-by-user}

Private catalogs provide a way to centrally manage access to products in the IBM Cloud&reg; catalog and your own catalogs. You can customize the public catalog and your private catalogs to make specific solutions available to users in your account. By doing so, you can ensure that your catalogs are relevant to your business.
{: shortdesc}



## Before you begin
{: #prereq-restrict-ui}
{: ui}

* Verify that you're using a Pay-As-You-Go or Subscription account. See [Viewing your account type](https://cloud.ibm.com/docs/account?topic=account-account_settings&format=markdown#view-acct-type) for more details.
* Make sure you have the [administrator role on the catalog management service](https://cloud.ibm.com/docs/iam?topic=iam-account-services&interface=ui&format=markdown#catalog-management-account-management) to complete this task.

## Before you begin
{: #prereq-restrict-api}
{: api}

* Verify that you're using a Pay-As-You-Go or Subscription account. See [Viewing your account type](https://cloud.ibm.com/docs/account?topic=account-account_settings&format=markdown#view-acct-type) for more details.
* Make sure you have the [administrator role on the catalog management service](https://cloud.ibm.com/docs/iam?topic=iam-account-services&interface=ui&format=markdown#catalog-management-account-management) to complete this task.

## Before you begin
{: #prereq-restrict-cli}
{: cli}

* Verify that you're using a Pay-As-You-Go or Subscription account. See [Viewing your account type](https://cloud.ibm.com/docs/account?topic=account-account_settings&format=markdown#view-acct-type) for more details.
* Make sure you have the [administrator role on the catalog management service](https://cloud.ibm.com/docs/iam?topic=iam-account-services&interface=ui&format=markdown#catalog-management-account-management) to complete this task.
* Run the following command to install the catalogs management plug-in:

   ```bash
   ibmcloud plugin install catalogs-management
   ```
   {: codeblock}

## Before you begin
{: #prereq-restrict-terraform}
{: terraform}

* Verify that you're using a Pay-As-You-Go or Subscription account. See [Viewing your account type](https://cloud.ibm.com/docs/account?topic=account-account_settings&format=markdown#view-acct-type) for more details.
* Make sure you have the [administrator role on the catalog management service](https://cloud.ibm.com/docs/iam?topic=iam-account-services&interface=ui&format=markdown#catalog-management-account-management) to complete this task.
* To customize catalogs by using Terraform, make sure that you have completed the following:

   - Install the Terraform CLI and configure the IBM Cloud Provider plug-in for Terraform. For more information, see the tutorial for [Getting started with Terraform on IBM Cloud&reg;](https://cloud.ibm.com/docs/ibm-cloud-provider-for-terraform?topic=ibm-cloud-provider-for-terraform-getting-started&format=markdown). The plug-in abstracts the IBM Cloud APIs that are used to complete this task.
   - Create a Terraform configuration file to define resources by using HashiCorp Configuration Language. For more information, see the [Terraform documentation](https://developer.hashicorp.com/terraform/language){: external}.

## Creating a private catalog with all products included by using the console
{: #catalog-all-ui}
{: ui}

Complete the following steps to create a catalog that includes all products in the IBM Cloud catalog:

1. Go to **Manage** > **Catalogs**, in the IBM Cloud console, and click **Create a catalog**.
1. Select the Product (default) catalog type.
1. Enter a name and description.
1. Make sure the **All products** option is selected, and click **Create**. The availability is based on the filters set at the account level on the [Settings page](https://cloud.ibm.com/content-mgmt/catalog-settings){: external}.
1. Confirm that the catalog includes all products by clicking the catalog name > **Manage filters**. Then, check that **Include all products in the IBM Cloud catalog** is selected in **Step 1: Select to include or exclude all products in the IBM Cloud catalog**.

## Creating a private catalog with select products included by using the console
{: #catalog-select-ui}
{: ui}

Complete the following steps to create a catalog that includes a specific set of products in the IBM Cloud catalog:

1. Go to **Manage** > **Catalogs**, in the IBM Cloud console, and click **Create a catalog**.
1. Select the Product (default) catalog type.
1. Enter a name and description.
1. Click **Create**.
1. Click the catalog name > **Manage filters**.
1. Select **Exclude all products in the IBM Cloud catalog** in **Step 1: Select to include or exclude all products in the IBM Cloud catalog**.
1. Skip step 2, and click **Add** in **Step 3: Add exceptions to the rules**.
1. Make sure **Include** is selected as the condition, and then individually select the products you want users to access. In the case of our example project, you select watsonx Assistant, Speech to Text, and Text to Speech.

## Setting the visibility of the IBM Cloud catalog by using the console
{: #catalog-off-ui}
{: ui}

Now that you've created your private catalogs, complete the following steps to turn off visibility of the public catalog to all users in your account.

1. Click **Catalogs** in the breadcrumb.
2. Click **Settings**.
3. Set **IBM Cloud catalog** to **Off**.

   If you turn off the visibility of the IBM Cloud catalog, the **Highlights** page will also be hidden. This page helps you find top results across different product categories.
    {: note}

4. Confirm that your filters and settings are correctly applied by going to the public catalog, and expanding the catalog switcher. Only the private catalogs in your account should be displayed in the list.

You can update which products are included or excluded at any time by updating your private catalog's settings.
{: note}

## Branding your private catalog with a custom banner
{: #customer-banner}

You can enhance the look and feel of your private catalog to match your brand by adding a custom image to your private catalog's banner. All users who are given access to your private catalog can see the custom banner when they go to the private catalog to search for products, instead of the default IBM Cloud banner. To add a custom banner image, complete the following steps:

1. Go to **Manage** > **Catalogs**, then click **Private catalogs**.
1. Click the **Overflow menu** icon ![Actions icon](../icons/action-menu-icon.svg "Actions") on the row of the private catalog that you want to add a banner for, then click **Edit**.
1. Add a URL to your custom banner in the **Catalog banner** field, or you can click **Upload** to add an image directly.
   
   The maximum recommended image size is 944 x 260 pixels.
   {: tip}

1. Click **Update**.
1. Then, go to the [catalog](https://cloud.ibm.com/catalog), and select your private catalog from the list to view the updated look and feel of your private catalog.

You can also customize the provider name for private catalog products that you add to your catalogs. By default, they display with `Community` as the provider, which is a filter in the catalog, but you can customize this to be your company or organization's name. For more information, see [Providing catalog entry details](https://cloud.ibm.com/docs/account?topic=account-cm-catalog-details&format=markdown#cm-catalog-entry).
{: tip}

## Authorizing access to private catalogs by using the console
{: #custom-catalog-access-ui}
{: ui}

To authorize users to work with the products in your private catalogs, assign them the [viewer role on the catalog management service](https://cloud.ibm.com/docs/iam?topic=iam-account-services&interface=ui&format=markdown#catalog-management-account-management).

## Deleting a private catalog by using the console
{: #delete-private-catalog-ui}
{: ui}

If you delete a private catalog, all of the products within the catalog are deleted as well. Complete the following steps to delete a private catalog:

1. Go to **Manage** > **Catalogs**, in the IBM Cloud console, and click **Private catalogs**.
1. Click the **Actions** icon ![Actions icon](../icons/actions-icon-vertical.svg "Actions") for the catalog you want to delete, and select **Delete**.

You can [restore a private catalog](https://cloud.ibm.com/docs/account?topic=account-resource-reclamation&interface=cli&format=markdown#restore-resource-cli) within 7 days after you delete it.
{: tip}



## Creating a private catalog with all products included by using the CLI
{: #catalog-all-cli}
{: cli}

Complete the following steps to create a catalog that includes all products in the IBM Cloud catalog:
1. Target a resource group to create a catalog. You can run the `ibmcloud resource groups` command, and then the `ibmcloud target -g "resource group"` command.
1. Use the following command to create a new private catalog in your account.

   ```bash
   ibmcloud catalog create --name CATALOG [--catalog-description "DESCRIPTION"]
   ```
   {: codeblock}

All the IBM Cloud catalog products are visible by default when you create a new private catalog. See the [Catalogs management CLI](https://cloud.ibm.com/docs/cli?topic=cli-manage-catalogs-plugin&format=markdown#prereqs-managecatalogs) for more information.


## Creating a private catalog with select products included by using the CLI
{: #catalog-select-cli}
{: cli}

Complete the following steps to create a catalog that includes a specific set of products in the IBM Cloud catalog:
1. Target a resource group to create a catalog. You can run the `ibmcloud resource groups` command, and then the `ibmcloud target -g "resource group"` command.
1. Create a new private catalog in your account using the following command.
   ```bash
   ibmcloud catalog create --name CATALOG [--catalog-description "DESCRIPTION"]
   ```
   {: codeblock}

1. Update the filter to include or exclude a particular product or products and any applicable pricing plans. Make sure to specify your catalog, or the filter will default to the account level. See [Catalogs management CLI](https://cloud.ibm.com/docs/cli?topic=cli-manage-catalogs-plugin&format=markdown#offering-filter) for more command options.
   ```bash
   ibmcloud catalog filter offering --offering PRODUCT-NAME
   ```
   {: codeblock}

## Setting the visibility of the IBM Cloud catalog by using the CLI
{: #catalog-off-cli}
{: cli}

By default, the IBM Cloud public catalog is visible to all users in the account. You can make products available only to the users you choose by turning off visibility to the IBM Cloud catalog and adding the products to your private catalogs. Use the following command to turn off visibility of the public catalog to all users in your account.
```bash
ibmcloud catalog filter hide-ibm-public-catalog
```
{: codeblock}

## Authorizing access to private catalogs by using the CLI
{: #custom-catalog-access-cli}
{: cli}

To authorize users to work with the products in your private catalogs, assign them the [viewer role on the catalog management service](https://cloud.ibm.com/docs/iam?topic=iam-account-services&interface=cli&format=markdown#cli-acct-mgmt).

## Deleting a private catalog by using the CLI
{: #delete-private-catalog-cli}
{: cli}

If you delete a private catalog, all of the products within the catalog are deleted as well. Run the following command to delete a private catalog:

```bash
ibmcloud catalog delete --catalog CATALOG
```
{: codeblock}

You can [restore a private catalog](https://cloud.ibm.com/docs/account?topic=account-resource-reclamation&interface=cli&format=markdown#restore-resource-cli) within 7 days after you delete it.
{: tip}


## Creating a private catalog with all products included by using the API
{: #catalog-all-api}
{: api}

To create a catalog that includes all products in the IBM Cloud catalog, call the [Catalog Management API](https://cloud.ibm.com/apidocs/resource-catalog/private-catalog?code=go#create-catalog) as shown in the following sample request. Replace variables with the values from your account.

```bash
curl -X 'POST' \
'https://cm.globalcatalog.cloud.ibm.com/api/v1-beta/catalogs' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H "Authorization: ${IC_IAM_TOKEN}" \
-d '{"label": "testcurlcatalog", "short_description": "testing creating a catalog through curl"}'
```
{: codeblock}
{: curl}

```java
ServiceCall<Catalog> createCatalog(CreateCatalogOptions createCatalogOptions)

Example request

String label = "{label}";
String shortDesc = "{shortDesc}";
CreateCatalogOptions createOptions = new CreateCatalogOptions.Builder().label(label).shortDescription(shortDesc).build();
Response<Catalog> response = service.createCatalog(createOptions).execute();
System.out.println(response.getResult());
```
{: java}
{: codeblock}

```node
createCatalog(params, [callback()])

Example request

label = "{label}";
shortDesc = "{shortDesc}";
response = await service.createCatalog({ 'label': label, 'shortDescription': shortDesc });
console.log(response);
```
{: javascript}
{: codeblock}

```python
create_catalog(self, id=None, rev=None, label=None, short_description=None, catalog_icon_url=None, tags=None, url=None, crn=None, offerings_url=None, features=None, disabled=None, created=None, updated=None, resource_group_id=None, owning_account=None, catalog_filters=None, syndication_settings=None, **kwargs)

Exapmle request

label = "{label}"
shortDesc = "{shortDesc}"
response = self.service.create_catalog(label=label, short_description=shortDesc)
print(response)
```
{: python}
{: codeblock}

```go
(catalogManagement *CatalogManagementV1) CreateCatalog(createCatalogOptions *CreateCatalogOptions) (result *Catalog, response *core.DetailedResponse, err error)

Example request

label := "{label}"
shortDesc := "{shortDesc}"
createOptions := service.NewCreateCatalogOptions()
createOptions.SetLabel(label)
createOptions.SetShortDescription(shortDesc)
_, response, _ := service.CreateCatalog(createOptions)
fmt.Println(response)
```
{: go}
{: codeblock}

All the IBM Cloud public catalog products are visible by default when you create a new private catalog. See the [Catalog Management API](https://cloud.ibm.com/apidocs/resource-catalog/private-catalog?code=java#create-catalog) for more information.

## Creating a private catalog with select products included by using the API
{: #catalog-select-api}
{: api}

To create a catalog that includes a specific set of products in the IBM Cloud catalog, call the [Catalog Management API](https://cloud.ibm.com/apidocs/resource-catalog/private-catalog?code=go#create-catalog) as shown in the following sample request. Replace variables with the values from your account.

```bash
curl -X 'POST' \
'https://cm.globalcatalog.cloud.ibm.com/api/v1-beta/catalogs' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H "Authorization: ${IC_IAM_TOKEN}" \
-d '{"label": "testcurlcatalog4", "short_description": "testing creating a catalog through curl", "catalog_filters": { "include_all": false, "id_filters": { "include": { "filter_terms": [ "AdvancedMobileAccess-d6aece47-d840-45b0-8ab9-ad15354deeea" ] } } }}'
```
{: codeblock}

Make sure to exclude all public catalog products by setting the `include_all` field has a boolean value of `false` for each `catalog_filters` object. To specify the products you want to include you can filter by `category_filters` or `id_filters`. Give `filter_terms` the product property or product ID you want to include. In this example, `AdvancedMobileAccess-d6aece47-d840-45b0-8ab9-ad15354deeea` is a product ID.

See the [Catalog Management API](https://cloud.ibm.com/apidocs/resource-catalog/private-catalog?code=node#replace-catalog) for more command options.

## Setting the visibility of the IBM Cloud catalog by using the API
{: #catalog-off-api}
{: api}

To hide the public catalog in an account, make sure the `hide_IBM_cloud_catalog` field has a boolean value of `true`. Alternatively, you can give the `include_all` field a boolean value of `false` for each `account_filters` object. Then only the private catalogs you create should be displayed in your account.

```bash
curl -X "PUT" "https://cm.globalcatalog.cloud.ibm.com/api/v1-beta/catalogaccount"
-H "accept: */*"
-H "Authorization: {iam-bearer-token}"
-d '{"id":"string","hide_IBM_cloud_catalog":true,"account_filters":{"include_all":true,"category_filters":{"additionalProp1":{"include":true,"filter":{"filter_terms":["string"]}},"additionalProp2":{"include":true,"filter":{"filter_terms":["string"]}},"additionalProp3":{"include":true,"filter":{"filter_terms":["string"]}}},"id_filters":{"include":{"filter_terms":["string"]},"exclude":{"filter_terms":["string"]}}}}'
```
{: codeblock}
{: curl}


See the [Catalog Management API](https://cloud.ibm.com/apidocs/resource-catalog/private-catalog#update-catalog-account) for more information.

## Authorizing access to private catalogs by using the API
{: #customcatalog-access-api}
{: api}

To authorize users to work with the products in your private catalogs, assign them the [viewer role on the catalog management service](https://cloud.ibm.com/docs/iam?topic=iam-account-services&interface=ui&format=markdown#api-acct-mgmt).

## Deleting a private catalog by using the API
{: #delete-private-catalog-api}
{: api}

If you delete a private catalog, all of the products within the catalog are deleted as well. Use the following command to delete a private catalog:

```bash
DELETE /catalogs/{catalog_identifier}
```
{: codeblock}
{: curl}

See the [Catalog Management API](https://cloud.ibm.com/apidocs/resource-catalog/private-catalog?code=curl#delete-catalog) for more information.

You can [restore a private catalog](https://cloud.ibm.com/docs/account?topic=account-resource-reclamation&interface=api&format=markdown#restore-resource-api) within 7 days after you delete it.
{: tip}

## Creating a private catalog by using Terraform
{: #catalog-all-terraform}
{: terraform}

You cannot customize the public catalog and your private catalogs to make specific solutions available to users in your account by using Terraform. To customize the public catalog and your private catalogs, switch to the UI, CLI, or API steps.
{: important}

Use the following steps to create a private catalog:

1. Create an argument in your `main.tf` file. The following example creates a catalog by using the `ibm_cm_catalog` resource, where `label` is a display name to identify the catalog.

   ```terraform
   resource "ibm_cm_catalog" "cm_catalog" {
   label = "label"
   short_description = "short_description"
   }
   ```
   {: codeblock}

   For more information, see the argument reference details on the [Terraform Catalog Management](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/resources/cm_catalog){: external} page.

1. After you finish building your configuration file, initialize the Terraform CLI. For more information, see [Initializing Working Directories](https://developer.hashicorp.com/terraform/cli/init){: external}.

   ```terraform
   terraform init
   ```
   {: pre}

1. Provision the resources from the `main.tf` file. For more information, see [Provisioning Infrastructure with Terraform](https://developer.hashicorp.com/terraform/cli/run){: external}.

   1. Run `terraform plan` to generate a Terraform execution plan to preview the proposed actions.

      ```terraform
      terraform plan
      ```
      {: pre}

   1. Run `terraform apply` to create the resources that are defined in the plan.

      ```terraform
      terraform apply
      ```
      {: pre}

## Authorizing access to private catalogs by using Terraform
{: #customcatalog-access-terraform}
{: terraform}

To authorize users to work with the products in your private catalogs, assign them the [viewer role on the catalog management service](https://cloud.ibm.com/docs/iam?topic=iam-account-services&interface=terraform&format=markdown#api-acct-mgmt).