Zuora Catalog Groups API

A catalog group is used to group a list of product rate plans with a specific grade.

Operations 5

POST /v1/catalog-groups Create a catalog group #
GET /v1/catalog-groups List all catalog groups #
GET /v1/catalog-groups/{catalog-group-key} Retrieve a catalog group #
PUT /v1/catalog-groups/{catalog-group-key} Update a catalog group #
DELETE /v1/catalog-groups/{catalog-group-key} Delete a catalog group #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/zuora-catalog-groups-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

zuora-catalog-groups-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: '2023-12-15'
  title: Reference Catalog Groups API
  description: '# Introduction


    Welcome to the REST API reference for the Zuora Billing, Payments, and Central Platform!'
  contact:
    email: docs@zuora.com
servers:
- url: https://rest.zuora.com/
tags:
- name: Catalog Groups
  description: A catalog group is used to group a list of product rate plans with a specific grade.
paths:
  /v1/catalog-groups:
    post:
      summary: Create a catalog group
      operationId: POST_CreateCatalogGroup
      description: '**Note**: This operation is in the Early Adopter phase. We are actively soliciting feedback from a small set of early adopters before releasing it as generally available. If you want to join this early adopter program, submit a request at Zuora Global Support.


        Creates a catalog group which groups a list of product rate plans.'
      tags:
      - Catalog Groups
      parameters:
      - $ref: '#/components/parameters/GLOBAL_HEADER_Idempotency_Key'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Accept_Encoding'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Content_Encoding'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Authorization_OAuth_optional'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Track_Id'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Entity_Ids_Single'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Org_Ids'
      responses:
        '200':
          headers:
            Content-Encoding:
              description: "This header is returned if you specify the `Accept-Encoding: gzip` request header and the response contains over 1000 bytes of data.\n\nNote that only the following MIME types support gzipped responses:\n  - `application/json`\n  - `application/xml`\n  - `text/html`\n  - `text/csv`\n  - `text/plain`\n"
              schema:
                type: string
            RateLimit-Limit:
              description: 'The request limit quota for the time window closest to exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: string
            RateLimit-Remaining:
              description: 'The number of requests remaining in the time window closest to quota exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: number
            RateLimit-Reset:
              description: 'The number of seconds until the quota resets for the time window closest to quota exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: number
            Zuora-Request-Id:
              description: 'The Zuora internal identifier of the API call. You cannot control the value of this header.

                '
              schema:
                type: string
                maxLength: 36
                minLength: 36
            Zuora-Track-Id:
              description: 'A custom identifier for tracing the API call. If you specified a tracing identifier in the request headers, Zuora returns the same tracing identifier. Otherwise, Zuora does not set this header.

                '
              schema:
                type: string
                maxLength: 64
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogGroupResponse'
              example:
                id: 4028e5ab7f1b600c017f1b7a5e8901d2
                name: test
                description: some description
                catalogGroupNumber: CG-00000001
                type: Grading
                productRatePlans:
                - id: 4028e5ab7f1b600c017f1b787d5d01cf
                  status: Active
                  name: '222'
                  description: null
                  effectiveStartDate: '2022-02-21'
                  effectiveEndDate: '2023-02-21'
                  grade: 1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/POSTCatalogGroupRequest'
        required: true
    get:
      summary: List all catalog groups
      operationId: GET_ListAllCatalogGroups
      description: '**Note**: This operation is in the Early Adopter phase. We are actively soliciting feedback from a small set of early adopters before releasing it as generally available. If you want to join this early adopter program, submit a request at Zuora Global Support.


        Retrieves basic information about all catalog groups.'
      tags:
      - Catalog Groups
      parameters:
      - $ref: '#/components/parameters/GLOBAL_HEADER_Accept_Encoding'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Content_Encoding'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Authorization_OAuth_optional'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Track_Id'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Entity_Ids_Single'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Org_Ids'
      - $ref: '#/components/parameters/GLOBAL_REQUEST_pageSize'
      - $ref: '#/components/parameters/GLOBAL_REQUEST_page'
      responses:
        '200':
          headers:
            Content-Encoding:
              description: "This header is returned if you specify the `Accept-Encoding: gzip` request header and the response contains over 1000 bytes of data.\n\nNote that only the following MIME types support gzipped responses:\n  - `application/json`\n  - `application/xml`\n  - `text/html`\n  - `text/csv`\n  - `text/plain`\n"
              schema:
                type: string
            RateLimit-Limit:
              description: 'The request limit quota for the time window closest to exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: string
            RateLimit-Remaining:
              description: 'The number of requests remaining in the time window closest to quota exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: number
            RateLimit-Reset:
              description: 'The number of seconds until the quota resets for the time window closest to quota exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: number
            Zuora-Request-Id:
              description: 'The Zuora internal identifier of the API call. You cannot control the value of this header.

                '
              schema:
                type: string
                maxLength: 36
                minLength: 36
            Zuora-Track-Id:
              description: 'A custom identifier for tracing the API call. If you specified a tracing identifier in the request headers, Zuora returns the same tracing identifier. Otherwise, Zuora does not set this header.

                '
              schema:
                type: string
                maxLength: 64
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAllCatalogGroupsResponse'
              example:
                catalogGroups:
                - id: 4028e5ab7f1b600c017f1b7a5e8901d2
                  name: test
                  description: some description
                  catalogGroupNumber: CG-00000001
                  type: Grading
                  productRatePlans:
                  - id: 4028e5ab7f1b600c017f1b787d5d01cf
                    status: Active
                    name: '222'
                    description: null
                    effectiveStartDate: '2022-02-21'
                    effectiveEndDate: '2023-02-21'
                    grade: 1
                nextPage: false
  /v1/catalog-groups/{catalog-group-key}:
    get:
      summary: Retrieve a catalog group
      operationId: GET_RetrieveCatalogGroup
      description: '**Note**: This operation is in the Early Adopter phase. We are actively soliciting feedback from a small set of early adopters before releasing it as generally available. If you want to join this early adopter program, submit a request at Zuora Global Support.


        Retrieves basic information about a catalog group.'
      tags:
      - Catalog Groups
      parameters:
      - $ref: '#/components/parameters/GLOBAL_HEADER_Accept_Encoding'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Content_Encoding'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Authorization_OAuth_optional'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Track_Id'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Entity_Ids_Single'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Org_Ids'
      - name: catalog-group-key
        in: path
        description: 'The unique number or ID of the catalog group to be retrieved.

          '
        required: true
        schema:
          type: string
      responses:
        '200':
          headers:
            Content-Encoding:
              description: "This header is returned if you specify the `Accept-Encoding: gzip` request header and the response contains over 1000 bytes of data.\n\nNote that only the following MIME types support gzipped responses:\n  - `application/json`\n  - `application/xml`\n  - `text/html`\n  - `text/csv`\n  - `text/plain`\n"
              schema:
                type: string
            RateLimit-Limit:
              description: 'The request limit quota for the time window closest to exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: string
            RateLimit-Remaining:
              description: 'The number of requests remaining in the time window closest to quota exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: number
            RateLimit-Reset:
              description: 'The number of seconds until the quota resets for the time window closest to quota exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: number
            Zuora-Request-Id:
              description: 'The Zuora internal identifier of the API call. You cannot control the value of this header.

                '
              schema:
                type: string
                maxLength: 36
                minLength: 36
            Zuora-Track-Id:
              description: 'A custom identifier for tracing the API call. If you specified a tracing identifier in the request headers, Zuora returns the same tracing identifier. Otherwise, Zuora does not set this header.

                '
              schema:
                type: string
                maxLength: 64
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogGroupResponse'
              example:
                id: 4028e5ab7f1b600c017f1b7a5e8901d2
                name: test
                description: some description
                catalogGroupNumber: CG-00000001
                type: Grading
                productRatePlans:
                - id: 4028e5ab7f1b600c017f1b787d5d01cf
                  status: Active
                  name: '222'
                  description: null
                  effectiveStartDate: '2022-02-21'
                  effectiveEndDate: '2023-02-21'
                  grade: 1
    put:
      summary: Update a catalog group
      operationId: PUT_UpdateCatalogGroup
      description: '**Note**: This operation is in the Early Adopter phase. We are actively soliciting feedback from a small set of early adopters before releasing it as generally available. If you want to join this early adopter program, submit a request at Zuora Global Support.


        Updates a catalog group by its unique number or ID.


        ### Notes

        - It is best practice to only specify the fields that you want to change in the request body.

        - If you specify an empty value for a field in the request body, the corresponding field in the catalog group is emptied.

        - The catalog group type cannot be changed.'
      tags:
      - Catalog Groups
      parameters:
      - $ref: '#/components/parameters/GLOBAL_HEADER_Accept_Encoding'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Content_Encoding'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Authorization_OAuth_optional'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Track_Id'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Entity_Ids_Single'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Org_Ids'
      - name: catalog-group-key
        in: path
        required: true
        description: "The unique number or ID of the catalog group to be updated. \n"
        schema:
          type: string
      responses:
        '200':
          headers:
            Content-Encoding:
              description: "This header is returned if you specify the `Accept-Encoding: gzip` request header and the response contains over 1000 bytes of data.\n\nNote that only the following MIME types support gzipped responses:\n  - `application/json`\n  - `application/xml`\n  - `text/html`\n  - `text/csv`\n  - `text/plain`\n"
              schema:
                type: string
            RateLimit-Limit:
              description: 'The request limit quota for the time window closest to exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: string
            RateLimit-Remaining:
              description: 'The number of requests remaining in the time window closest to quota exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: number
            RateLimit-Reset:
              description: 'The number of seconds until the quota resets for the time window closest to quota exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: number
            Zuora-Request-Id:
              description: 'The Zuora internal identifier of the API call. You cannot control the value of this header.

                '
              schema:
                type: string
                maxLength: 36
                minLength: 36
            Zuora-Track-Id:
              description: 'A custom identifier for tracing the API call. If you specified a tracing identifier in the request headers, Zuora returns the same tracing identifier. Otherwise, Zuora does not set this header.

                '
              schema:
                type: string
                maxLength: 64
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogGroupResponse'
              example:
                id: 4028e5ab7f1b600c017f1b7a5e8901d2
                name: test
                description: some description
                catalogGroupNumber: CG-00000001
                type: Grading
                productRatePlans:
                - id: 4028e5ab7f1b600c017f1b787d5d01cf
                  status: Active
                  name: '222'
                  description: null
                  effectiveStartDate: '2022-02-21'
                  effectiveEndDate: '2023-02-21'
                  grade: 1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PUTCatalogGroup'
        required: true
    delete:
      summary: Delete a catalog group
      operationId: DELETE_CatalogGroup
      description: '**Note**: This operation is in the Early Adopter phase. We are actively soliciting feedback from a small set of early adopters before releasing it as generally available. If you want to join this early adopter program, submit a request at Zuora Global Support.


        Deletes a catalog group.'
      tags:
      - Catalog Groups
      parameters:
      - $ref: '#/components/parameters/GLOBAL_HEADER_Accept_Encoding'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Content_Encoding'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Authorization_OAuth_optional'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Track_Id'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Entity_Ids_Single'
      - $ref: '#/components/parameters/GLOBAL_HEADER_Zuora_Org_Ids'
      - name: catalog-group-key
        in: path
        description: 'The unique number or ID of the catalog group to be deleted.

          '
        required: true
        schema:
          type: string
      responses:
        '200':
          headers:
            Content-Encoding:
              description: "This header is returned if you specify the `Accept-Encoding: gzip` request header and the response contains over 1000 bytes of data.\n\nNote that only the following MIME types support gzipped responses:\n  - `application/json`\n  - `application/xml`\n  - `text/html`\n  - `text/csv`\n  - `text/plain`\n"
              schema:
                type: string
            RateLimit-Limit:
              description: 'The request limit quota for the time window closest to exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: string
            RateLimit-Remaining:
              description: 'The number of requests remaining in the time window closest to quota exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: number
            RateLimit-Reset:
              description: 'The number of seconds until the quota resets for the time window closest to quota exhaustion. See [rate limits](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits#Rate_limits) for more information.

                '
              schema:
                type: number
            Zuora-Request-Id:
              description: 'The Zuora internal identifier of the API call. You cannot control the value of this header.

                '
              schema:
                type: string
                maxLength: 36
                minLength: 36
            Zuora-Track-Id:
              description: 'A custom identifier for tracing the API call. If you specified a tracing identifier in the request headers, Zuora returns the same tracing identifier. Otherwise, Zuora does not set this header.

                '
              schema:
                type: string
                maxLength: 64
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonResponseType'
              example:
                success: 'true'
components:
  parameters:
    GLOBAL_HEADER_Idempotency_Key:
      name: Idempotency-Key
      in: header
      required: false
      description: "Specify a unique idempotency key if you want to perform an idempotent POST or PATCH request. Do not use this header in other request types. \n\nWith this header specified, the Zuora server can identify subsequent retries of the same request using this value, which prevents the same operation from being performed multiple times by accident. \n"
      schema:
        type: string
        maxLength: 255
    GLOBAL_HEADER_Authorization_OAuth_optional:
      name: Authorization
      in: header
      required: false
      description: 'The value is in the `Bearer {token}` format where {token} is a valid OAuth token generated by calling [Create an OAuth token](/api-references/api/operation/createToken).

        '
      schema:
        type: string
    GLOBAL_HEADER_Accept_Encoding:
      name: Accept-Encoding
      in: header
      required: false
      description: "Include the `Accept-Encoding: gzip` header to compress responses as a gzipped file. It can significantly reduce the bandwidth required for a response. \n\nIf specified, Zuora automatically compresses responses that contain over 1000 bytes of data, and the response contains a `Content-Encoding` header with the compression algorithm so that your client can decompress it.\n"
      schema:
        type: string
    GLOBAL_HEADER_Content_Encoding:
      name: Content-Encoding
      in: header
      required: false
      description: 'Include the `Content-Encoding: gzip` header to compress a request. With this header specified, you should upload a gzipped file for the request payload instead of sending the JSON payload.

        '
      schema:
        type: string
    GLOBAL_HEADER_Zuora_Track_Id:
      name: Zuora-Track-Id
      in: header
      required: false
      description: 'A custom identifier for tracing the API call. If you set a value for this header, Zuora returns the same value in the response headers. This header enables you to associate your system process identifiers with Zuora API calls, to assist with troubleshooting in the event of an issue.


        The value of this field must use the US-ASCII character set and must not include any of the following characters: colon (`:`), semicolon (`;`), double quote (`"`), and quote (`''`).

        '
      schema:
        type: string
        maxLength: 64
    GLOBAL_REQUEST_pageSize:
      name: pageSize
      in: query
      required: false
      description: 'The number of records returned per page in the response.

        '
      schema:
        type: integer
        default: 20
        maximum: 40
    GLOBAL_REQUEST_page:
      name: page
      in: query
      required: false
      description: 'The index number of the page that you want to retrieve. This parameter is dependent on `pageSize`. You must set `pageSize` before specifying `page`. For example, if you set `pageSize` to `20` and `page` to `2`, the 21st to 40th records are returned in the response.

        '
      schema:
        type: integer
        default: 1
        minimum: 1
    GLOBAL_HEADER_Zuora_Entity_Ids_Single:
      name: Zuora-Entity-Ids
      in: header
      required: false
      description: 'An entity ID. If you have [Zuora Multi-entity](https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Multi-entity) enabled and the OAuth token is valid for more than one entity, you must use this header to specify which entity to perform the operation in. If the OAuth token is only valid for a single entity, or you do not have Zuora Multi-entity enabled, you do not need to set this header.

        '
      schema:
        type: string
    GLOBAL_HEADER_Zuora_Org_Ids:
      name: Zuora-Org-Ids
      in: header
      required: false
      description: "Comma separated IDs. If you have <a href=\"https://knowledgecenter.zuora.com/Zuora_Central_Platform/Multi-Org\" target=\"_blank\">Zuora Multi-Org</a> enabled, \nyou can use this header to specify which orgs to perform the operation in. If you do not have Zuora Multi-Org enabled, you should not set this header.\n\nThe IDs must be a sub-set of the user's accessible orgs. If you specify an org that the user does not have access to, the operation fails.\n\nIf the header is not set, the operation is performed in scope of the user's accessible orgs.\n"
      schema:
        type: string
  schemas:
    GETCatalogGroupProductRatePlanResponse:
      properties:
        description:
          description: 'The description of the product rate plan.

            '
          type: string
        effectiveEndDate:
          description: 'The effective end Date of the product rate plan.

            '
          type: string
        effectiveStartDate:
          description: 'The effective start date of the product rate plan.

            '
          type: string
        grade:
          description: 'The grade of the product rate plan.

            '
          type: number
        id:
          description: 'The ID of the product rate plan.

            '
          type: string
        name:
          description: 'The name of the product rate plan.

            '
          type: string
        organizationLabels:
          description: "The organization(s) that the object belongs to. \n\nNote: This field is available only when the Multi-Org feature is enabled.            \n"
          items:
            properties:
              organizationId:
                description: 'The organization ID.

                  '
                type: string
              organizationName:
                description: 'The organization name.

                  '
                type: string
            type: object
          type: array
        status:
          description: 'The status of the product rate plan.

            '
          enum:
          - Active
          - Expired
          - NotStarted
          type: string
      title: productRatePlans
      type: object
    PUTCatalogGroupRemoveProductRatePlan:
      allOf:
      - properties:
          id:
            description: 'The unique ID of the product rate plan to be removed from the catalog group.

              '
            type: string
        type: object
      example:
        id: 4028e5ab7f1b600c017f1b787d5d01cf
      title: remove
    POSTorPUTCatalogGroupAddProductRatePlan:
      allOf:
      - properties:
          grade:
            description: "The grade that is assigned for the product rate plan. The value of this field must be a positive integer. The greater the value, the higher the grade.\n\nA product rate plan to be added to a Grading catalog group must have one grade. You can specify a grade for a product rate plan in this request or update the product rate plan individually. \n"
            type: number
          id:
            description: 'The unique ID of the product rate plan.

              '
            type: string
        type: object
      example:
        grade: 3
        id: 4028e5ab7f1b600c017f1b787d5d01cf
      title: productRatePlans
    ListAllCatalogGroupsResponse:
      properties:
        catalogGroups:
          description: 'The list of catalog groups that are retrieved..

            '
          items:
            $ref: '#/components/schemas/CatalogGroupResponse'
          type: array
        nextPage:
          description: 'URL to retrieve the next page of the response if it exists; otherwise absent.

            '
          format: URL
          type: string
      type: object
    POSTCatalogGroupRequest:
      allOf:
      - properties:
          description:
            description: 'The description of the catalog group.

              '
            type: string
          name:
            description: 'The unique name of the catalog group.

              '
            type: string
          productRatePlans:
            description: 'The list of product rate plans to be added to the catalog group.

              '
            items:
              $ref: '#/components/schemas/POSTorPUTCatalogGroupAddProductRatePlan'
            type: array
          type:
            default: Grading
            description: "The type of the catalog group. \n"
            enum:
            - Grading
            - Display
            type: string
        type: object
      example:
        description: description
        name: Example
        productRatePlans:
        - grade: 3
          id: 4028e5ab7f1b600c017f1b787d5d01cf
        - grade: 2
          id: 4028e5ab7f1b600c017f1b787d5d01ac
        type: Grading
    CommonResponseType:
      properties:
        processId:
          description: 'The Id of the process that handle the operation.

            '
          type: string
        reasons:
          items:
            properties:
              code:
                description: 'The error code of response.

                  '
                type: string
              message:
                description: 'The detail information of the error response

                  '
                type: string
            type: object
          type: array
        success:
          description: 'Indicates whether the call succeeded.

            '
          type: boolean
      type: object
    PUTCatalogGroup:
      allOf:
      - properties:
          add:
            description: 'The list of product rate plans to be added to the catalog group.

              '
            items:
              $ref: '#/components/schemas/POSTorPUTCatalogGroupAddProductRatePlan'
            title: add
            type: array
          description:
            description: 'The description of the catalog group.

              '
            type: string
          name:
            description: 'The unique name of the catalog group.

              '
            type: string
          remove:
            description: 'The list of product rate plans to be removed from the catalog group.

              '
            items:
              $ref: '#/components/schemas/PUTCatalogGroupRemoveProductRatePlan'
            type: array
        type: object
      example:
        add:
        - grade: 3
          id: 4028e5ab7f1b600c017f1b787d5d01cf
        - grade: 2
          id: 4028e5ab7f1b600c017f1b787d5d01ac
        description: description
        name: name
        remove:
        - id: 4028e5ab7f1b600c017f1b787d5d01cf
        - id: 4028e5ab7f1b600c017f1b787d5d01ac
    CatalogGroupResponse:
      properties:
        catalogGroupNumber:
          description: 'The automatically generated number of the catalog group with the CG- perfix. For example, CG-00000001.

            '
          type: string
        description:
          description: 'The description of the catalog group.

            '
          type: string
        id:
          description: 'The ID of the catalog group.

            '
          type: string
        name:
          description: 'The name of the catalog group.

            '
          type: string
        productRatePlans:
          description: 'The list of product rate plans in the catalog group.

            '
          items:
            $ref: '#/components/schemas/GETCatalogGroupProductRatePlanResponse'
          type: array
        type:
          description: 'The type of the catalog group.

            '
          enum:
          - Grading
          - Display
          type: string
      title: catalogGroups
      type: object
x-tagGroups:
- name: Authentication
  tags:
  - OAuth
- name: Products
  tags:
  - Products
  - Catalog
  - Catalog Groups
  - Offers
  - Price Book Items
  - Product Rate Plans
  - Product Rate Plan Definitions
  - Product Rate Plan Charges
  - Product Charge Definitions
  - Product Rate Plan Charge Tiers
  - Zuora Revenue Integration
- name: Customer Accounts
  tags:
  - Accounts
  - Contacts
  - Contact Snapshots
- name: Orders and Subscriptions
  tags:
  - Sign Up
  - Orders
  - Order Actions
  - Order Line Items
  - Fulfillments
  - Ramps
  - Subscriptions
  - Rate Plans
- name: Advanced Consumption Billing
  tags:
  - Prepaid with Drawdown
- name: Usage
  tags:
  - Usage
- name: Billing Documents
  tags:
  - Delivery Adjustments


# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zuora/refs/heads/main/openapi/zuora-catalog-groups-api-openapi.yml