Every organization has an add URL for catalogs. An organization administrator or catalog author can create a catalog by POSTing an AdminCatalog element to this URL

A newly-created Catalog object is an empty container for references to vApp templates and media images.

Verify that you are logged in as a system administrator, an organization administrator, or a user with the Catalog Author role.

1

Retrieve the XML representation of the organization to which you want to add the catalog.

Use a request like this one:

GET https://vcloud.example.com/api/admin/org/26
2

Examine the response to locate the Link element that contains the URL for adding catalogs to the organization.

This element has a rel attribute value of add and a type attribute value of application/vnd.vmware.admin.catalog+xml, as shown here:

<Link
   href="https://vcloud.example.com/api/admin/org/5/catalogs"
   rel="add" 
   type="application/vnd.vmware.admin.catalog+xml"/>
3

Create an AdminCatalog element.

See the request portion of Example: Create a Catalog.

4

POST the AdminCatalog element to the organization's add URL for catalogs.

See the request portion of Example: Create a Catalog.

The server creates an empty catalog. See the response portion of Example: Create a Catalog.

This example adds a catalog to the organization created in Example: Create an Organization.

Request:

POST https://vcloud.example.com/api/admin/org/26/catalogs
Content-Type: application/vnd.vmware.admin.catalog+xml
...
<?xml version="1.0" encoding="UTF-8"?>
<AdminCatalog
   xmlns="http://www.vmware.com/vcloud/v1.5"
   name="Example Catalog">
   <Description>New Catalog for Example Org</Description>
</AdminCatalog>

The response contains information extracted from the request, and includes these additions that the server creates:

A URL, in the value of the href attribute of the response body, that references the new catalog.

Links that you can use to add an item to the catalog, edit catalog properties, or remove the catalog.

A link to an alternate view of this catalog. All users can access the catalog at this URL.

An empty CatalogItems element.

A Task that tracks the creation of the catalog.

An IsPublished element whose content is the string false, indicating that the catalog is not published.

Response:

201 Created
Content-Type: application/vnd.vmware.admin.catalog+xml
...
<AdminCatalog
   xmlns:vcloud="http://www.vmware.com/vcloud/v1.5"
   name="Example Catalog"
   id="urn:vcloud:catalog:32"
   type="application/vnd.vmware.admin.catalog+xml"
   href="https://vcloud.example.com/api/admin/catalog/32">
   <Link
      rel="up"
      type="application/vnd.vmware.admin.organization+xml"
      href="https://vcloud.example.com/api/admin/org/26" />
   <Link
      rel="alternate"
      type="application/vnd.vmware.vcloud.catalog+xml"
      href="https://vcloud.example.com/api/catalog/32" />
   <Link
      rel="down"
      type="application/vnd.vmware.vcloud.owner+xml"
      href="https://vcloud.example.com/api/admin/catalog/32/owner" />
   <Link
      rel="add"
      type="application/vnd.vmware.vcloud.catalogItem+xml"
      href="https://vcloud.example.com/api/catalog/32/catalogItems" />
   <Link
      rel="edit"
      type="application/vnd.vmware.admin.catalog+xml"
      href="https://vcloud.example.com/api/admin/catalog/32" />
   <Link
      rel="remove"
      href="https://vcloud.example.com/api/admin/catalog/32" />
   <Link
      rel="publish"
      type="application/vnd.vmware.admin.publishCatalogParams+xml"
      href="https://vcloud.example.com/api/admin/catalog/32/action/publish" />
   <Tasks>
      <Task ...>
         ...
      <Task>
   <Tasks>
   <Description>New Catalog for Example Org</Description>
   <CatalogItems/>
   <IsPublished>false</IsPublished>
</AdminCatalog>

Add CatalogItem elements to the catalog. See Add an Item to a Catalog.