Skilljar Domains > Published Courses API

The Domains > Published Courses API from Skilljar — 2 operation(s) for domains > published courses.

OpenAPI Specification

skilljar-domains-published-courses-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Skilljar Assets Domains > Published Courses 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 > Published Courses
paths:
  /v1/domains/{domain_name}/published-courses:
    get:
      operationId: domains_published_courses_list
      description: 'List all courses published to this domain.


        Returns a paginated list of published courses for the domain.

        Supports filtering by course ID and searching by keyword.'
      parameters:
      - in: query
        name: course__id
        schema:
          type: string
        description: Filter by course id, e.g. `course__id=abcd1234`
      - in: path
        name: domain_name
        schema:
          type: string
          pattern: ^[-:\.0-9a-z]+$
        required: true
      - in: query
        name: include_searchable_content
        schema:
          type: boolean
        description: If set to True, the response also includes the following fields ('lesson_list', 'tags', 'short_description', 'long_description_html', 'search_keywords')
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - in: query
        name: search
        schema:
          type: string
        description: URL encoded string, return the results and the order as if a catalog search
      tags:
      - Domains > Published Courses
      security:
      - OrganizationApiKey: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedPublishedCourseList'
          description: ''
    post:
      operationId: domains_published_courses_create
      description: 'Publish a course to this domain.


        Makes a course available to learners on the specified domain.

        The course must not already be published to this domain.'
      parameters:
      - in: path
        name: domain_name
        schema:
          type: string
          pattern: ^[-:\.0-9a-z]+$
        required: true
      tags:
      - Domains > Published Courses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublishedCourseCreateRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PublishedCourseCreateRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PublishedCourseCreateRequest'
        required: true
      security:
      - OrganizationApiKey: []
      - tokenAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublishedCourseCreate'
          description: ''
  /v1/domains/{domain_name}/published-courses/{published_course_id}:
    get:
      operationId: domains_published_courses_retrieve
      description: "Retrieve a published course for this domain.\n\nReturns detailed information about a published course, including metadata, publishing settings,\n  and catalog ordering."
      parameters:
      - in: path
        name: domain_name
        schema:
          type: string
          pattern: ^[-:\.0-9a-z]+$
        required: true
      - in: path
        name: published_course_id
        schema:
          type: string
          pattern: ^[0-9a-z]+$
        required: true
      tags:
      - Domains > Published Courses
      security:
      - OrganizationApiKey: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublishedCourseDetail'
          description: ''
    put:
      operationId: domains_published_courses_update
      description: 'Update a published course in this domain.


        Allows partial updates to published course settings, such as visibility, registration, or slug.'
      parameters:
      - in: path
        name: domain_name
        schema:
          type: string
          pattern: ^[-:\.0-9a-z]+$
        required: true
      - in: path
        name: published_course_id
        schema:
          type: string
          pattern: ^[0-9a-z]+$
        required: true
      tags:
      - Domains > Published Courses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublishedCourseRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PublishedCourseRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PublishedCourseRequest'
      security:
      - OrganizationApiKey: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublishedCourse'
          description: ''
    patch:
      operationId: domains_published_courses_partial_update
      description: 'Partially update a published course in this domain.


        Allows partial updates to published course settings, such as visibility, registration, or slug.'
      parameters:
      - in: path
        name: domain_name
        schema:
          type: string
          pattern: ^[-:\.0-9a-z]+$
        required: true
      - in: path
        name: published_course_id
        schema:
          type: string
          pattern: ^[0-9a-z]+$
        required: true
      tags:
      - Domains > Published Courses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedPublishedCourseRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedPublishedCourseRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedPublishedCourseRequest'
      security:
      - OrganizationApiKey: []
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublishedCourse'
          description: ''
    delete:
      operationId: domains_published_courses_destroy
      description: "Unpublish a course from this domain.\n\nRemoves the course from the domain, making it inaccessible to learners.\nThis action is irreversible and also removes the course from all associated\n  content syndication configurations."
      parameters:
      - in: path
        name: domain_name
        schema:
          type: string
          pattern: ^[-:\.0-9a-z]+$
        required: true
      - in: path
        name: published_course_id
        schema:
          type: string
          pattern: ^[0-9a-z]+$
        required: true
      tags:
      - Domains > Published Courses
      security:
      - OrganizationApiKey: []
      - tokenAuth: []
      responses:
        '204':
          description: No response body
components:
  schemas:
    PublishedCourseDetail:
      type: object
      properties:
        id:
          type: string
          readOnly: true
          description: Known as published_course_id within the documentation
        course:
          $ref: '#/components/schemas/CourseDetail'
        slug:
          type: string
          description: The URL path of the course on the domain
          pattern: ^[a-z0-9]+(-[a-z0-9]+)+$
          maxLength: 100
        course_url:
          type: string
          readOnly: true
          description: Base URL of the course detail page, or curriculum page if the student is registered
        hidden:
          type: boolean
          description: Hidden courses are only visible on the catalog page to associated groups
        strict_enforce_group_visibility:
          type: boolean
          description: Block access to this course for students it's not visible to
        registration_required:
          type: boolean
          description: Registration is required for student to access course, false signifies that the course content is public
        registration_starts_at:
          type: string
          format: date-time
          description: ISO 8601 formatted datetime string indicating when the start of the registration period is scheduled
        registration_ends_at:
          type: string
          format: date-time
          description: ISO 8601 formatted datetime string indicating when the end of the registration period is scheduled
        restrict_access_start_end_dates:
          type: boolean
          description: Restrict access to the course based on the start and end dates of the registration period
        allow_self_service_reenroll:
          type: boolean
          description: When students complete the course, they will be allowed to re-enroll in the course immediately
        unique_progress_per_enrollment:
          type: boolean
          description: Each time a student re-enrolls in the course, create a new course progress
        require_all_prerequisites:
          type: boolean
          description: Require all prerequisites to be completed before the student can enroll in the course
        timezone:
          type: string
          nullable: true
          readOnly: true
        offer:
          allOf:
          - $ref: '#/components/schemas/Offer'
          readOnly: true
      required:
      - course
    PublishedCourse:
      type: object
      properties:
        id:
          type: string
          readOnly: true
          description: Known as published_course_id within the documentation
        course:
          allOf:
          - $ref: '#/components/schemas/CourseSummary'
          readOnly: true
        slug:
          type: string
          description: The URL path of the course on the domain
          pattern: ^[a-z0-9]+(-[a-z0-9]+)+$
          maxLength: 100
        course_url:
          type: string
          readOnly: true
          description: Base URL of the course detail page, or curriculum page if the student is registered
        hidden:
          type: boolean
          description: Hidden courses are only visible on the catalog page to associated groups
        strict_enforce_group_visibility:
          type: boolean
          description: Block access to this course for students it's not visible to
        registration_required:
          type: boolean
          description: Registration is required for student to access course, false signifies that the course content is public
        registration_starts_at:
          type: string
          format: date-time
          description: ISO 8601 formatted datetime string indicating when the start of the registration period is scheduled
        registration_ends_at:
          type: string
          format: date-time
          description: ISO 8601 formatted datetime string indicating when the end of the registration period is scheduled
        restrict_access_start_end_dates:
          type: boolean
          description: Restrict access to the course based on the start and end dates of the registration period
        allow_self_service_reenroll:
          type: boolean
          description: When students complete the course, they will be allowed to re-enroll in the course immediately
        unique_progress_per_enrollment:
          type: boolean
          description: Each time a student re-enrolls in the course, create a new course progress
        require_all_prerequisites:
          type: boolean
          description: Require all prerequisites to be completed before the student can enroll in the course
        timezone:
          type: string
          nullable: true
          readOnly: true
        offer:
          allOf:
          - $ref: '#/components/schemas/Offer'
          readOnly: true
    Offer:
      type: object
      properties:
        id:
          type: string
          readOnly: true
        registration_open:
          type: boolean
        registration_url:
          type: string
          readOnly: true
          description: URL used for course registration
        price:
          $ref: '#/components/schemas/Price'
      required:
      - price
      - registration_open
    PatchedPublishedCourseRequest:
      type: object
      properties:
        slug:
          type: string
          description: The URL path of the course on the domain
          pattern: ^[a-z0-9]+(-[a-z0-9]+)+$
          maxLength: 100
        hidden:
          type: boolean
          description: Hidden courses are only visible on the catalog page to associated groups
        strict_enforce_group_visibility:
          type: boolean
          description: Block access to this course for students it's not visible to
        registration_required:
          type: boolean
          description: Registration is required for student to access course, false signifies that the course content is public
        registration_starts_at:
          type: string
          format: date-time
          description: ISO 8601 formatted datetime string indicating when the start of the registration period is scheduled
        registration_ends_at:
          type: string
          format: date-time
          description: ISO 8601 formatted datetime string indicating when the end of the registration period is scheduled
        restrict_access_start_end_dates:
          type: boolean
          description: Restrict access to the course based on the start and end dates of the registration period
        allow_self_service_reenroll:
          type: boolean
          description: When students complete the course, they will be allowed to re-enroll in the course immediately
        unique_progress_per_enrollment:
          type: boolean
          description: Each time a student re-enrolls in the course, create a new course progress
        require_all_prerequisites:
          type: boolean
          description: Require all prerequisites to be completed before the student can enroll in the course
    PublishedCourseCreateCourseSummaryRequest:
      type: object
      description: Serializes reference to course by ID in payload when creating a published course.
      properties:
        id:
          type: string
          minLength: 1
      required:
      - id
    PublishedCourseCreateCourseSummary:
      type: object
      description: Serializes reference to course by ID in payload when creating a published course.
      properties:
        id:
          type: string
        title:
          type: string
          readOnly: true
          description: Course title
        lesson_count:
          type: integer
          readOnly: true
          description: Number of lessons in the course
        required_lesson_count:
          type: integer
          readOnly: true
          description: Number of required lessons in the course (non-optional lessons that count towards course completion)
      required:
      - id
    CourseSummary:
      type: object
      properties:
        id:
          type: string
          readOnly: true
          description: Known as course_id within the documentation
        title:
          type: string
          readOnly: true
          description: Course title
        lesson_count:
          type: integer
          readOnly: true
          description: Number of lessons in the course
        required_lesson_count:
          type: integer
          readOnly: true
          description: Number of required lessons in the course (non-optional lessons that count towards course completion)
    PublishedCourseCreate:
      type: object
      description: Serializer for creating a published course.
      properties:
        id:
          type: string
          readOnly: true
          description: Known as published_course_id within the documentation
        course:
          allOf:
          - $ref: '#/components/schemas/PublishedCourseCreateCourseSummary'
          description: Id of the course to publish
        slug:
          type: string
          description: The URL path of the course on the domain
          pattern: ^[a-z0-9]+(-[a-z0-9]+)+$
          maxLength: 100
        course_url:
          type: string
          readOnly: true
          description: Base URL of the course detail page, or curriculum page if the student is registered
        hidden:
          type: boolean
          description: Hidden courses are only visible on the catalog page to associated groups
        strict_enforce_group_visibility:
          type: boolean
          description: Block access to this course for students it's not visible to
        registration_required:
          type: boolean
          description: Registration is required for student to access course, false signifies that the course content is public
        registration_starts_at:
          type: string
          format: date-time
          description: ISO 8601 formatted datetime string indicating when the start of the registration period is scheduled
        registration_ends_at:
          type: string
          format: date-time
          description: ISO 8601 formatted datetime string indicating when the end of the registration period is scheduled
        restrict_access_start_end_dates:
          type: boolean
          description: Restrict access to the course based on the start and end dates of the registration period
        allow_self_service_reenroll:
          type: boolean
          description: When students complete the course, they will be allowed to re-enroll in the course immediately
        unique_progress_per_enrollment:
          type: boolean
          description: Each time a student re-enrolls in the course, create a new course progress
        require_all_prerequisites:
          type: boolean
          description: Require all prerequisites to be completed before the student can enroll in the course
        timezone:
          type: string
          nullable: true
          readOnly: true
        offer:
          allOf:
          - $ref: '#/components/schemas/Offer'
          readOnly: true
      required:
      - course
    CourseDetail:
      type: object
      properties:
        id:
          type: string
          readOnly: true
          description: Known as course_id within the documentation
        title:
          type: string
          readOnly: true
          description: Course title
        lesson_count:
          type: integer
          readOnly: true
          description: Number of lessons in the course
        required_lesson_count:
          type: integer
          readOnly: true
          description: Number of required lessons in the course (non-optional lessons that count towards course completion)
        short_description:
          type: string
          readOnly: true
          description: Course short description
        long_description_html:
          type: string
          readOnly: true
          description: Course long description in HTML format
    PaginatedPublishedCourseList:
      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/PublishedCourse'
    PublishedCourseRequest:
      type: object
      properties:
        slug:
          type: string
          description: The URL path of the course on the domain
          pattern: ^[a-z0-9]+(-[a-z0-9]+)+$
          maxLength: 100
        hidden:
          type: boolean
          description: Hidden courses are only visible on the catalog page to associated groups
        strict_enforce_group_visibility:
          type: boolean
          description: Block access to this course for students it's not visible to
        registration_required:
          type: boolean
          description: Registration is required for student to access course, false signifies that the course content is public
        registration_starts_at:
          type: string
          format: date-time
          description: ISO 8601 formatted datetime string indicating when the start of the registration period is scheduled
        registration_ends_at:
          type: string
          format: date-time
          description: ISO 8601 formatted datetime string indicating when the end of the registration period is scheduled
        restrict_access_start_end_dates:
          type: boolean
          description: Restrict access to the course based on the start and end dates of the registration period
        allow_self_service_reenroll:
          type: boolean
          description: When students complete the course, they will be allowed to re-enroll in the course immediately
        unique_progress_per_enrollment:
          type: boolean
          description: Each time a student re-enrolls in the course, create a new course progress
        require_all_prerequisites:
          type: boolean
          description: Require all prerequisites to be completed before the student can enroll in the course
    Price:
      type: object
      properties:
        amount:
          type: string
          default: '0.00'
        currency_code:
          type: string
          default: USD
    PublishedCourseCreateRequest:
      type: object
      description: Serializer for creating a published course.
      properties:
        course:
          allOf:
          - $ref: '#/components/schemas/PublishedCourseCreateCourseSummaryRequest'
          description: Id of the course to publish
        slug:
          type: string
          description: The URL path of the course on the domain
          pattern: ^[a-z0-9]+(-[a-z0-9]+)+$
          maxLength: 100
        hidden:
          type: boolean
          description: Hidden courses are only visible on the catalog page to associated groups
        strict_enforce_group_visibility:
          type: boolean
          description: Block access to this course for students it's not visible to
        registration_required:
          type: boolean
          description: Registration is required for student to access course, false signifies that the course content is public
        registration_starts_at:
          type: string
          format: date-time
          description: ISO 8601 formatted datetime string indicating when the start of the registration period is scheduled
        registration_ends_at:
          type: string
          format: date-time
          description: ISO 8601 formatted datetime string indicating when the end of the registration period is scheduled
        restrict_access_start_end_dates:
          type: boolean
          description: Restrict access to the course based on the start and end dates of the registration period
        allow_self_service_reenroll:
          type: boolean
          description: When students complete the course, they will be allowed to re-enroll in the course immediately
        unique_progress_per_enrollment:
          type: boolean
          description: Each time a student re-enrolls in the course, create a new course progress
        require_all_prerequisites:
          type: boolean
          description: Require all prerequisites to be completed before the student can enroll in the course
      required:
      - course
  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