Skilljar Domains > Catalog Pages API

The Domains > Catalog Pages API from Skilljar — 2 operation(s) for domains > catalog pages.

OpenAPI Specification

skilljar-domains-catalog-pages-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Skilljar Assets Domains > Catalog Pages API
  version: 1.0.0
  description: 'The Skilljar API provides comprehensive access to our customer education platform, enabling you to programmatically manage courses, users, enrollments, and more.


    This interactive documentation is automatically generated from our codebase and stays current with the latest features and endpoints.


    ## Getting Started


    New to the Skilljar API? Check out these essential resources:


    - **[API Getting Started Guide](https://support.gainsight.com/Skilljar/Develop_and_Customize/API/Getting_started_with_the_Skilljar_API)** - Authentication, basic concepts, and your first API call

    - **[Token-based SSO](https://support.gainsight.com/Skilljar/Develop_and_Customize/Single_Sign_on_(SSO)/Configuring_Token-Based_Single_Sign-On_(SSO))** - Seamlessly integrate user authentication

    - **[Webhooks](https://support.gainsight.com/Skilljar/Develop_and_Customize/API/Using_Webhooks_API)** - Real-time notifications for platform events

    '
tags:
- name: Domains > Catalog Pages
paths:
  /v1/domains/{domain_name}/catalog-pages:
    get:
      operationId: domains_catalog_pages_list
      description: Retrieve a paginated list of all catalog pages for the specified domain.
      parameters:
      - in: path
        name: domain_name
        schema:
          type: string
          pattern: ^[-:\.0-9a-z]+$
        required: true
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      tags:
      - Domains > Catalog Pages
      security:
      - OrganizationApiKey: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCatalogPageList'
          description: ''
    post:
      operationId: domains_catalog_pages_create
      description: Create a new catalog page within the specified domain.
      parameters:
      - in: path
        name: domain_name
        schema:
          type: string
          pattern: ^[-:\.0-9a-z]+$
        required: true
      tags:
      - Domains > Catalog Pages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CatalogPageCreateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CatalogPageCreateRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CatalogPageCreateRequest'
        required: true
      security:
      - OrganizationApiKey: []
      - tokenAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogPageCreate'
          description: ''
  /v1/domains/{domain_name}/catalog-pages/{catalog_page_id}:
    get:
      operationId: domains_catalog_pages_retrieve
      description: Retrieve detailed information for a specific catalog page within the domain.
      parameters:
      - in: path
        name: catalog_page_id
        schema:
          type: string
          pattern: ^[0-9a-z]+$
        required: true
      - in: path
        name: domain_name
        schema:
          type: string
          pattern: ^[-:\.0-9a-z]+$
        required: true
      tags:
      - Domains > Catalog Pages
      security:
      - OrganizationApiKey: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogPage'
          description: ''
    put:
      operationId: domains_catalog_pages_update
      description: 'Update a specific catalog page within the domain.


        Allows partial updates to catalog page fields such as text fields, visibility, etc.'
      parameters:
      - in: path
        name: catalog_page_id
        schema:
          type: string
          pattern: ^[0-9a-z]+$
        required: true
      - in: path
        name: domain_name
        schema:
          type: string
          pattern: ^[-:\.0-9a-z]+$
        required: true
      tags:
      - Domains > Catalog Pages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CatalogPageRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CatalogPageRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CatalogPageRequest'
      security:
      - OrganizationApiKey: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogPage'
          description: ''
    patch:
      operationId: domains_catalog_pages_partial_update
      description: 'Partially update a specific catalog page within the domain.


        Allows partial updates to catalog page fields such as text fields, visibility, etc.'
      parameters:
      - in: path
        name: catalog_page_id
        schema:
          type: string
          pattern: ^[0-9a-z]+$
        required: true
      - in: path
        name: domain_name
        schema:
          type: string
          pattern: ^[-:\.0-9a-z]+$
        required: true
      tags:
      - Domains > Catalog Pages
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedCatalogPageRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedCatalogPageRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedCatalogPageRequest'
      security:
      - OrganizationApiKey: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogPage'
          description: ''
    delete:
      operationId: domains_catalog_pages_destroy
      description: Delete a catalog page from the domain.
      parameters:
      - in: path
        name: catalog_page_id
        schema:
          type: string
          pattern: ^[0-9a-z]+$
        required: true
      - in: path
        name: domain_name
        schema:
          type: string
          pattern: ^[-:\.0-9a-z]+$
        required: true
      tags:
      - Domains > Catalog Pages
      security:
      - OrganizationApiKey: []
      - tokenAuth: []
      responses:
        '204':
          description: No response body
components:
  schemas:
    PaginatedCatalogPageList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=4
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?page=2
        results:
          type: array
          items:
            $ref: '#/components/schemas/CatalogPage'
    SearchBehaviorEnum:
      enum:
      - GLOBAL
      - LOCAL
      - FEDERATED
      - NONE
      type: string
      description: '* `GLOBAL` - Global: Search spans all visible catalog pages

        * `LOCAL` - Local: Search is limited to the current page / container

        * `FEDERATED` - Federated search

        * `NONE` - No search'
    CatalogPageCreate:
      type: object
      description: Serializer for creating catalog pages in api only
      properties:
        id:
          type: string
          readOnly: true
        page_title:
          type: string
          description: Title of the catalog page
        slug:
          type: string
          description: URL slug of the catalog page.
          pattern: ^[-a-zA-Z0-9_]+$
        short_description:
          type: string
          description: Short description of the catalog page.
          maxLength: 300
        tile_callout:
          type: string
          description: Tile callout text for the catalog page when embedded on another catalog page.
          maxLength: 15
        hidden:
          type: boolean
          default: false
          description: Whether the catalog page is hidden by default.
        strict_enforce_group_visibility:
          type: boolean
          default: false
          description: Whether to strictly enforce group visibility.
        is_classic:
          type: boolean
          default: true
          description: Whether the catalog page is classic, containing only course content, vs. a Builder page containing additional fields.
        url:
          type: string
          description: Returns the URL of the catalog page.
          readOnly: true
        header_html:
          type: string
          description: HTML page header for classic pages.
        tile_sort_method:
          allOf:
          - $ref: '#/components/schemas/TileSortMethodEnum'
          default: catalog_settings_order
          description: 'Tile sort method for classic pages.


            * `catalog_settings_order` - Default Catalog Settings Ordering

            * `registered_first_completed_last_order` - Registered, Unregistered, then Completed Courses

            * `alphabetically_a_to_z` - Sort alphabetically A to Z

            * `alphabetically_z_to_a` - Sort alphabetically Z to A'
        search_location:
          allOf:
          - $ref: '#/components/schemas/SearchLocationEnum'
          default: HEADER_RIGHT
          description: 'Where the search bar is located for classic pages. The in-place-of-header option requires federated search to be enabled for the domain.


            * `HEADER_RIGHT` - Display search box in the header.

            * `LEFT_NAV_TOP` - Display search box in the left nav.

            * `HIDDEN` - Do not display search box.

            * `IN_PLACE_OF_HEADER` - In place of HTML header'
        search_behavior:
          allOf:
          - $ref: '#/components/schemas/SearchBehaviorEnum'
          default: GLOBAL
          description: 'Behavior of search bar for classic pages. The federated and no-search options require federated search to be enabled for the domain.


            * `GLOBAL` - Global: Search spans all visible catalog pages

            * `LOCAL` - Local: Search is limited to the current page / container

            * `FEDERATED` - Federated search

            * `NONE` - No search'
        item_layout:
          allOf:
          - $ref: '#/components/schemas/ItemLayoutEnum'
          default: TILE
          description: 'Layout of items for classic pages.


            * `TILE` - Tile view: Catalog items are displayed as tiles.

            * `LIST` - List view: Catalog items are displayed full-width, one per line.'
      required:
      - page_title
    SearchLocationEnum:
      enum:
      - HEADER_RIGHT
      - LEFT_NAV_TOP
      - HIDDEN
      - IN_PLACE_OF_HEADER
      type: string
      description: '* `HEADER_RIGHT` - Display search box in the header.

        * `LEFT_NAV_TOP` - Display search box in the left nav.

        * `HIDDEN` - Do not display search box.

        * `IN_PLACE_OF_HEADER` - In place of HTML header'
    CatalogPageCreateRequest:
      type: object
      description: Serializer for creating catalog pages in api only
      properties:
        page_title:
          type: string
          minLength: 1
          description: Title of the catalog page
        slug:
          type: string
          minLength: 1
          description: URL slug of the catalog page.
          pattern: ^[-a-zA-Z0-9_]+$
        short_description:
          type: string
          minLength: 1
          description: Short description of the catalog page.
          maxLength: 300
        tile_callout:
          type: string
          minLength: 1
          description: Tile callout text for the catalog page when embedded on another catalog page.
          maxLength: 15
        hidden:
          type: boolean
          default: false
          description: Whether the catalog page is hidden by default.
        strict_enforce_group_visibility:
          type: boolean
          default: false
          description: Whether to strictly enforce group visibility.
        is_classic:
          type: boolean
          default: true
          description: Whether the catalog page is classic, containing only course content, vs. a Builder page containing additional fields.
        header_html:
          type: string
          minLength: 1
          description: HTML page header for classic pages.
        tile_sort_method:
          allOf:
          - $ref: '#/components/schemas/TileSortMethodEnum'
          default: catalog_settings_order
          description: 'Tile sort method for classic pages.


            * `catalog_settings_order` - Default Catalog Settings Ordering

            * `registered_first_completed_last_order` - Registered, Unregistered, then Completed Courses

            * `alphabetically_a_to_z` - Sort alphabetically A to Z

            * `alphabetically_z_to_a` - Sort alphabetically Z to A'
        search_location:
          allOf:
          - $ref: '#/components/schemas/SearchLocationEnum'
          default: HEADER_RIGHT
          description: 'Where the search bar is located for classic pages. The in-place-of-header option requires federated search to be enabled for the domain.


            * `HEADER_RIGHT` - Display search box in the header.

            * `LEFT_NAV_TOP` - Display search box in the left nav.

            * `HIDDEN` - Do not display search box.

            * `IN_PLACE_OF_HEADER` - In place of HTML header'
        search_behavior:
          allOf:
          - $ref: '#/components/schemas/SearchBehaviorEnum'
          default: GLOBAL
          description: 'Behavior of search bar for classic pages. The federated and no-search options require federated search to be enabled for the domain.


            * `GLOBAL` - Global: Search spans all visible catalog pages

            * `LOCAL` - Local: Search is limited to the current page / container

            * `FEDERATED` - Federated search

            * `NONE` - No search'
        item_layout:
          allOf:
          - $ref: '#/components/schemas/ItemLayoutEnum'
          default: TILE
          description: 'Layout of items for classic pages.


            * `TILE` - Tile view: Catalog items are displayed as tiles.

            * `LIST` - List view: Catalog items are displayed full-width, one per line.'
      required:
      - page_title
    CatalogPage:
      type: object
      properties:
        id:
          type: string
          readOnly: true
        page_title:
          type: string
          description: Title of the catalog page
        slug:
          type: string
          description: URL slug of the catalog page.
          pattern: ^[-a-zA-Z0-9_]+$
        short_description:
          type: string
          description: Short description of the catalog page.
          maxLength: 300
        tile_callout:
          type: string
          description: Tile callout text for the catalog page when embedded on another catalog page.
          maxLength: 15
        hidden:
          type: boolean
          default: false
          description: Whether the catalog page is hidden by default.
        strict_enforce_group_visibility:
          type: boolean
          default: false
          description: Whether to strictly enforce group visibility.
        is_classic:
          type: boolean
          description: Whether the catalog page is classic, containing only course content, vs. a Builder page containing additional fields.
          readOnly: true
        url:
          type: string
          description: Returns the URL of the catalog page.
          readOnly: true
        header_html:
          type: string
          description: HTML page header for classic pages.
        tile_sort_method:
          allOf:
          - $ref: '#/components/schemas/TileSortMethodEnum'
          default: catalog_settings_order
          description: 'Tile sort method for classic pages.


            * `catalog_settings_order` - Default Catalog Settings Ordering

            * `registered_first_completed_last_order` - Registered, Unregistered, then Completed Courses

            * `alphabetically_a_to_z` - Sort alphabetically A to Z

            * `alphabetically_z_to_a` - Sort alphabetically Z to A'
        search_location:
          allOf:
          - $ref: '#/components/schemas/SearchLocationEnum'
          default: HEADER_RIGHT
          description: 'Where the search bar is located for classic pages. The in-place-of-header option requires federated search to be enabled for the domain.


            * `HEADER_RIGHT` - Display search box in the header.

            * `LEFT_NAV_TOP` - Display search box in the left nav.

            * `HIDDEN` - Do not display search box.

            * `IN_PLACE_OF_HEADER` - In place of HTML header'
        search_behavior:
          allOf:
          - $ref: '#/components/schemas/SearchBehaviorEnum'
          default: GLOBAL
          description: 'Behavior of search bar for classic pages. The federated and no-search options require federated search to be enabled for the domain.


            * `GLOBAL` - Global: Search spans all visible catalog pages

            * `LOCAL` - Local: Search is limited to the current page / container

            * `FEDERATED` - Federated search

            * `NONE` - No search'
        item_layout:
          allOf:
          - $ref: '#/components/schemas/ItemLayoutEnum'
          default: TILE
          description: 'Layout of items for classic pages.


            * `TILE` - Tile view: Catalog items are displayed as tiles.

            * `LIST` - List view: Catalog items are displayed full-width, one per line.'
    TileSortMethodEnum:
      enum:
      - catalog_settings_order
      - registered_first_completed_last_order
      - alphabetically_a_to_z
      - alphabetically_z_to_a
      type: string
      description: '* `catalog_settings_order` - Default Catalog Settings Ordering

        * `registered_first_completed_last_order` - Registered, Unregistered, then Completed Courses

        * `alphabetically_a_to_z` - Sort alphabetically A to Z

        * `alphabetically_z_to_a` - Sort alphabetically Z to A'
    PatchedCatalogPageRequest:
      type: object
      properties:
        page_title:
          type: string
          minLength: 1
          description: Title of the catalog page
        slug:
          type: string
          minLength: 1
          description: URL slug of the catalog page.
          pattern: ^[-a-zA-Z0-9_]+$
        short_description:
          type: string
          minLength: 1
          description: Short description of the catalog page.
          maxLength: 300
        tile_callout:
          type: string
          minLength: 1
          description: Tile callout text for the catalog page when embedded on another catalog page.
          maxLength: 15
        hidden:
          type: boolean
          default: false
          description: Whether the catalog page is hidden by default.
        strict_enforce_group_visibility:
          type: boolean
          default: false
          description: Whether to strictly enforce group visibility.
        header_html:
          type: string
          minLength: 1
          description: HTML page header for classic pages.
        tile_sort_method:
          allOf:
          - $ref: '#/components/schemas/TileSortMethodEnum'
          default: catalog_settings_order
          description: 'Tile sort method for classic pages.


            * `catalog_settings_order` - Default Catalog Settings Ordering

            * `registered_first_completed_last_order` - Registered, Unregistered, then Completed Courses

            * `alphabetically_a_to_z` - Sort alphabetically A to Z

            * `alphabetically_z_to_a` - Sort alphabetically Z to A'
        search_location:
          allOf:
          - $ref: '#/components/schemas/SearchLocationEnum'
          default: HEADER_RIGHT
          description: 'Where the search bar is located for classic pages. The in-place-of-header option requires federated search to be enabled for the domain.


            * `HEADER_RIGHT` - Display search box in the header.

            * `LEFT_NAV_TOP` - Display search box in the left nav.

            * `HIDDEN` - Do not display search box.

            * `IN_PLACE_OF_HEADER` - In place of HTML header'
        search_behavior:
          allOf:
          - $ref: '#/components/schemas/SearchBehaviorEnum'
          default: GLOBAL
          description: 'Behavior of search bar for classic pages. The federated and no-search options require federated search to be enabled for the domain.


            * `GLOBAL` - Global: Search spans all visible catalog pages

            * `LOCAL` - Local: Search is limited to the current page / container

            * `FEDERATED` - Federated search

            * `NONE` - No search'
        item_layout:
          allOf:
          - $ref: '#/components/schemas/ItemLayoutEnum'
          default: TILE
          description: 'Layout of items for classic pages.


            * `TILE` - Tile view: Catalog items are displayed as tiles.

            * `LIST` - List view: Catalog items are displayed full-width, one per line.'
    ItemLayoutEnum:
      enum:
      - TILE
      - LIST
      type: string
      description: '* `TILE` - Tile view: Catalog items are displayed as tiles.

        * `LIST` - List view: Catalog items are displayed full-width, one per line.'
    CatalogPageRequest:
      type: object
      properties:
        page_title:
          type: string
          minLength: 1
          description: Title of the catalog page
        slug:
          type: string
          minLength: 1
          description: URL slug of the catalog page.
          pattern: ^[-a-zA-Z0-9_]+$
        short_description:
          type: string
          minLength: 1
          description: Short description of the catalog page.
          maxLength: 300
        tile_callout:
          type: string
          minLength: 1
          description: Tile callout text for the catalog page when embedded on another catalog page.
          maxLength: 15
        hidden:
          type: boolean
          default: false
          description: Whether the catalog page is hidden by default.
        strict_enforce_group_visibility:
          type: boolean
          default: false
          description: Whether to strictly enforce group visibility.
        header_html:
          type: string
          minLength: 1
          description: HTML page header for classic pages.
        tile_sort_method:
          allOf:
          - $ref: '#/components/schemas/TileSortMethodEnum'
          default: catalog_settings_order
          description: 'Tile sort method for classic pages.


            * `catalog_settings_order` - Default Catalog Settings Ordering

            * `registered_first_completed_last_order` - Registered, Unregistered, then Completed Courses

            * `alphabetically_a_to_z` - Sort alphabetically A to Z

            * `alphabetically_z_to_a` - Sort alphabetically Z to A'
        search_location:
          allOf:
          - $ref: '#/components/schemas/SearchLocationEnum'
          default: HEADER_RIGHT
          description: 'Where the search bar is located for classic pages. The in-place-of-header option requires federated search to be enabled for the domain.


            * `HEADER_RIGHT` - Display search box in the header.

            * `LEFT_NAV_TOP` - Display search box in the left nav.

            * `HIDDEN` - Do not display search box.

            * `IN_PLACE_OF_HEADER` - In place of HTML header'
        search_behavior:
          allOf:
          - $ref: '#/components/schemas/SearchBehaviorEnum'
          default: GLOBAL
          description: 'Behavior of search bar for classic pages. The federated and no-search options require federated search to be enabled for the domain.


            * `GLOBAL` - Global: Search spans all visible catalog pages

            * `LOCAL` - Local: Search is limited to the current page / container

            * `FEDERATED` - Federated search

            * `NONE` - No search'
        item_layout:
          allOf:
          - $ref: '#/components/schemas/ItemLayoutEnum'
          default: TILE
          description: 'Layout of items for classic pages.


            * `TILE` - Tile view: Catalog items are displayed as tiles.

            * `LIST` - List view: Catalog items are displayed full-width, one per line.'
  securitySchemes:
    OrganizationApiKey:
      type: http
      scheme: basic
      description: API key authentication using HTTP Basic Auth. Use your API key as the username and leave password empty.
    tokenAuth:
      type: http
      scheme: bearer