> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kombo.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Deactivate course

> Deactivate a course in the LMS.

<Accordion title="Supported integrations" icon="list-check">
  This feature is currently available for the following integrations:

  <ul>
    <li class="flex items-center"><img src="https://storage.googleapis.com/kombo-assets/integrations/successfactors/icon.svg" height="16px" width="16px" class="m-0 mr-2" /><a href="/lms/connectors/successfactors">SAP SuccessFactors</a></li>
    <li class="flex items-center"><img src="https://storage.googleapis.com/kombo-assets/integrations/workday/icon.svg" height="16px" width="16px" class="m-0 mr-2" /><a href="/lms/connectors/workday">Workday</a></li>
    <li class="flex items-center"><img src="https://storage.googleapis.com/kombo-assets/integrations/sandbox/icon.svg" height="16px" width="16px" class="m-0 mr-2" /><a href="/lms/connectors/sandbox">Kombo Sandbox</a></li>
    <li class="flex items-center"><img src="https://storage.googleapis.com/kombo-assets/integrations/360learning/icon.svg" height="16px" width="16px" class="m-0 mr-2" /><a href="/lms/connectors/360learning">360Learning</a></li>
    <li class="flex items-center"><img src="https://storage.googleapis.com/kombo-assets/integrations/talentlms/icon.svg" height="16px" width="16px" class="m-0 mr-2" /><a href="/lms/connectors/talentlms">TalentLMS</a></li>
    <li class="flex items-center"><img src="https://storage.googleapis.com/kombo-assets/integrations/moodle/icon.svg" height="16px" width="16px" class="m-0 mr-2" /><a href="/lms/connectors/moodle">Moodle</a></li>
  </ul>

  You'd like to see this feature for another integration? Please reach out!
  We're always happy to discuss extending our coverage.
</Accordion>

Deactivates a course, making it unavailable for new enrollments while preserving existing progress records.

<Note>
  This endpoint requires the permission **Upsert courses** to be enabled in [your scope config](/scopes).
</Note>


## OpenAPI

````yaml POST /lms/courses/{course_id}/deactivate
openapi: 3.1.0
info:
  title: Kombo API
  version: 1.0.0
servers:
  - url: https://api.kombo.dev/v1
    description: Kombo EU API
  - url: https://api.us.kombo.dev/v1
    description: Kombo US API
security:
  - ApiKey: []
tags:
  - name: General
  - name: Kombo Connect
    description: >-
      Endpoints for Kombo Connect, our end-user-facing flow for setting up new
      integrations.
  - name: Unified HRIS API
    description: Unified endpoints to access all the HR concepts you might need.
  - name: Unified ATS API
    description: Unified endpoints to access all the ATS concepts you might need.
  - name: Unified ATS (Assessment & Background Check) API
    description: >-
      Unified endpoints to operate Assessments and Background Checks for many
      applicant tracking systems.
  - name: Unified LMS API
    description: Unified endpoints to access all the LMS concepts you might need.
  - name: AI Apply
    description: Endpoints for AI-powered job application features.
  - name: Custom Endpoints
    description: Custom integration-specific endpoints.
paths:
  /lms/courses/{course_id}/deactivate:
    post:
      tags:
        - Unified LMS API
      summary: Deactivate course
      description: >-
        Deactivate a course in the LMS.


        <Accordion title="Supported integrations" icon="list-check">

        This feature is currently available for the following integrations:


        <ul>

        <li class="flex items-center"><img
          src="https://storage.googleapis.com/kombo-assets/integrations/successfactors/icon.svg"
          height="16px"
          width="16px"
          class="m-0 mr-2"
        /><a href="/lms/connectors/successfactors">SAP SuccessFactors</a></li>

        <li class="flex items-center"><img
          src="https://storage.googleapis.com/kombo-assets/integrations/workday/icon.svg"
          height="16px"
          width="16px"
          class="m-0 mr-2"
        /><a href="/lms/connectors/workday">Workday</a></li>

        <li class="flex items-center"><img
          src="https://storage.googleapis.com/kombo-assets/integrations/sandbox/icon.svg"
          height="16px"
          width="16px"
          class="m-0 mr-2"
        /><a href="/lms/connectors/sandbox">Kombo Sandbox</a></li>

        <li class="flex items-center"><img
          src="https://storage.googleapis.com/kombo-assets/integrations/360learning/icon.svg"
          height="16px"
          width="16px"
          class="m-0 mr-2"
        /><a href="/lms/connectors/360learning">360Learning</a></li>

        <li class="flex items-center"><img
          src="https://storage.googleapis.com/kombo-assets/integrations/talentlms/icon.svg"
          height="16px"
          width="16px"
          class="m-0 mr-2"
        /><a href="/lms/connectors/talentlms">TalentLMS</a></li>

        <li class="flex items-center"><img
          src="https://storage.googleapis.com/kombo-assets/integrations/moodle/icon.svg"
          height="16px"
          width="16px"
          class="m-0 mr-2"
        /><a href="/lms/connectors/moodle">Moodle</a></li>

        </ul>


        You'd like to see this feature for another integration? Please reach
        out!

        We're always happy to discuss extending our coverage.

        </Accordion>



        Deactivates a course, making it unavailable for new enrollments while
        preserving existing progress records.


        <Note>
          This endpoint requires the permission **Upsert courses** to be enabled in [your scope config](/scopes).
        </Note>
      operationId: PostLmsCoursesCourseIdDeactivate
      parameters:
        - in: header
          name: X-Integration-Id
          schema:
            type: string
          description: ID of the integration you want to interact with.
          example: bombohr:HWUTwvyx2wLoSUHphiWVrp28
          required: true
        - name: course_id
          in: path
          required: true
          description: >-
            The ID of the course in Kombo or its ID in the remote system by
            prefixing it with `remote:` (e.g., `remote:12312`)
          schema:
            $ref: >-
              #/components/schemas/PostLmsCoursesCourseIdDeactivateParameterCourseId
          examples:
            example1:
              value: 26vafvWSRmbhNcxJYqjCzuJg
      requestBody:
        description: POST /lms/courses/:course_id/deactivate Request body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostLmsCoursesCourseIdDeactivateRequestBody'
            examples:
              example1:
                value: {}
      responses:
        '200':
          description: POST /lms/courses/:course_id/deactivate Positive response
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PostLmsCoursesCourseIdDeactivatePositiveResponse
              examples:
                example1:
                  value:
                    status: success
                    data:
                      id: 26vafvWSRmbhNcxJYqjCzuJg
                      remote_id: '32'
                      provider_id: 7xPdr68N8kG9EzLwjsN9xyz
                      origin_id: course-123
                      remote_created_at: '2022-08-07T14:01:29.196Z'
                      remote_deleted_at: null
                      changed_at: '2022-08-07T14:01:29.196Z'
                      remote_data: null
                      custom_fields: null
                      integration_fields: []
                      provider:
                        id: 7xPdr68N8kG9EzLwjsN9xyz
                        remote_id: provider-12345
                        name: Kombo Academy
                      revisions:
                        - id: 3KMdr68N8kG9EzLwjsN9aoz
                          remote_id: revision-12345
                          course_id: 26vafvWSRmbhNcxJYqjCzuJg
                          title: Building LMS integrations with Kombo
                          description: >-
                            Learn how to build and integrate Learning Management
                            System (LMS) integrations with Kombo. This course
                            covers the unified LMS API, course management, user
                            enrollment, progress tracking, and best practices
                            for building robust LMS connectors.
                          remote_url: >-
                            https://learning.acme.com/courses/building-integrations/v1
                          status: ACTIVE
                          remote_created_at: '2022-08-07T14:01:29.196Z'
                          remote_deleted_at: null
                          changed_at: '2022-08-07T14:01:29.196Z'
                          remote_data: null
                          custom_fields: null
                          integration_fields: []
                          skill_assignments:
                            - skill:
                                id: 4EeSSSd9Fr8iiW9mPKmjEVWK
                                remote_id: skill-123
                                name: LMS Integration
                    warnings:
                      - message: This is an example warning!
        default:
          $ref: '#/components/responses/ErrorResponseGeneral'
components:
  schemas:
    PostLmsCoursesCourseIdDeactivateParameterCourseId:
      type: string
      description: >-
        The ID of the course in Kombo or its ID in the remote system by
        prefixing it with `remote:` (e.g., `remote:12312`)
    PostLmsCoursesCourseIdDeactivateRequestBody:
      type: object
      properties: {}
    PostLmsCoursesCourseIdDeactivatePositiveResponse:
      type: object
      properties:
        status:
          type: string
          const: success
        data:
          type: object
          properties:
            id:
              type: string
              description: >-
                The globally unique ID of this object generated by Kombo. We
                recommend using this as a stable primary key for syncing.
            remote_id:
              type: string
              description: >-
                The raw ID of the object in the remote system. We don't
                recommend using this as a primary key on your side as it might
                sometimes be compromised of multiple identifiers if a system
                doesn't provide a clear primary key.
            provider_id:
              type:
                - string
                - 'null'
              description: >-
                The Kombo ID of the course provider of this course, if
                applicable.
            origin_id:
              type:
                - string
                - 'null'
              description: >-
                A stable identifier you provided when creating this course. Can
                be used to identify and update the course in subsequent
                requests.
            remote_created_at:
              description: The date and time the object was created in the remote system.
              type:
                - string
                - 'null'
              format: date-time
              externalDocs:
                url: >-
                  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
            remote_deleted_at:
              description: >-
                The date and time the object was deleted in the remote system.
                Objects are automatically marked as deleted when Kombo can't
                retrieve them from the remote system anymore. Kombo will also
                anonymize entries 14 days after they disappear.
              type:
                - string
                - 'null'
              format: date-time
              externalDocs:
                url: >-
                  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
            changed_at:
              description: >-
                The timestamp when this specific record was last modified. This
                field only updates when properties directly on this record
                change, NOT when related or nested models change. For filtering
                that considers nested data changes, use the `updated_after`
                parameter which will return records when either the record
                itself OR its related models have been updated.
              type: string
              format: date-time
              externalDocs:
                url: >-
                  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
            remote_data:
              type:
                - object
                - 'null'
              additionalProperties: true
              description: >-
                Includes the data fetched from the remote system.

                Please be aware that including this in you scope config might
                violate other

                scopes that are set.


                Remote data always has the endpoint path that we got the data
                from as the

                top level key. For example, it could look like: `{ "/companies":
                { ... }}`


                This is not available on all plans. Reach out to Kombo if you
                need it.
            custom_fields:
              type:
                - object
                - 'null'
              additionalProperties: true
              description: >-
                A key-value store of fields not covered by the schema. [Read
                more](/custom-fields)
            integration_fields:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    description: The globally unique ID of this object.
                  key:
                    type: string
                    description: The key of the field in the remote system.
                  type:
                    type: string
                    enum:
                      - DEFAULT
                      - CUSTOM
                    description: |-
                      - `DEFAULT`: static fields in the remote system.
                      - `CUSTOM`: fields that are created/editable by the user.
                  value:
                    type: 'null'
                    description: The field's value.
                  label:
                    type:
                      - string
                      - 'null'
                    description: The label of the field. (not always available)
                required:
                  - id
                  - key
                  - type
                  - label
              description: >-
                An array of selected passthrough integration fields. [Read
                more](/integration-fields)
              examples:
                - - id: 5NVFhMpB9Ah6by44tzNjZLyE
                    key: firstName
                    type: DEFAULT
                    value: Frank
                    label: First Name
                  - id: 8nuajYpoRd5GnxEQaaWKUDYQ
                    key: customTshirtSize
                    type: CUSTOM
                    value: XL
                    label: T-Shirt Size
            provider:
              type:
                - object
                - 'null'
              properties:
                id:
                  type: string
                  description: >-
                    The globally unique ID of this object generated by Kombo. We
                    recommend using this as a stable primary key for syncing.
                remote_id:
                  type: string
                  description: >-
                    The raw ID of the object in the remote system. We don't
                    recommend using this as a primary key on your side as it
                    might sometimes be compromised of multiple identifiers if a
                    system doesn't provide a clear primary key.
                name:
                  type:
                    - string
                    - 'null'
                  description: The name of the provider.
              required:
                - id
                - remote_id
                - name
              examples:
                - id: 26vafvWSRmbhNcxJYqjCzuJg
                  remote_id: provider-12345
                  name: Kombo Academy
            revisions:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    description: >-
                      The globally unique ID of this object generated by Kombo.
                      We recommend using this as a stable primary key for
                      syncing.
                  remote_id:
                    type: string
                    description: >-
                      The raw ID of the object in the remote system. We don't
                      recommend using this as a primary key on your side as it
                      might sometimes be compromised of multiple identifiers if
                      a system doesn't provide a clear primary key.
                  course_id:
                    type:
                      - string
                      - 'null'
                    description: >-
                      The Kombo ID of the course this revision belongs to. The
                      ID can be used to retrieve the course from the `get
                      courses` endpoint.
                  title:
                    type:
                      - string
                      - 'null'
                    description: The title of the course revision.
                  description:
                    type:
                      - string
                      - 'null'
                    description: A description of the course revision.
                  remote_url:
                    type:
                      - string
                      - 'null'
                    description: URL to the course overview page within the LMS itself.
                  status:
                    type:
                      - string
                      - 'null'
                    enum:
                      - ACTIVE
                      - INACTIVE
                    description: The status of this revision (ACTIVE or INACTIVE).
                  remote_created_at:
                    description: >-
                      The date and time the object was created in the remote
                      system.
                    type:
                      - string
                      - 'null'
                    format: date-time
                    externalDocs:
                      url: >-
                        https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
                  remote_deleted_at:
                    description: >-
                      The date and time the object was deleted in the remote
                      system. Objects are automatically marked as deleted when
                      Kombo can't retrieve them from the remote system anymore.
                      Kombo will also anonymize entries 14 days after they
                      disappear.
                    type:
                      - string
                      - 'null'
                    format: date-time
                    externalDocs:
                      url: >-
                        https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
                  changed_at:
                    description: >-
                      The timestamp when this specific record was last modified.
                      This field only updates when properties directly on this
                      record change, NOT when related or nested models change.
                      For filtering that considers nested data changes, use the
                      `updated_after` parameter which will return records when
                      either the record itself OR its related models have been
                      updated.
                    type: string
                    format: date-time
                    externalDocs:
                      url: >-
                        https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
                  remote_data:
                    type:
                      - object
                      - 'null'
                    additionalProperties: true
                    description: >-
                      Includes the data fetched from the remote system.

                      Please be aware that including this in you scope config
                      might violate other

                      scopes that are set.


                      Remote data always has the endpoint path that we got the
                      data from as the

                      top level key. For example, it could look like: `{
                      "/companies": { ... }}`


                      This is not available on all plans. Reach out to Kombo if
                      you need it.
                  custom_fields:
                    type:
                      - object
                      - 'null'
                    additionalProperties: true
                    description: >-
                      A key-value store of fields not covered by the schema.
                      [Read more](/custom-fields)
                  integration_fields:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: The globally unique ID of this object.
                        key:
                          type: string
                          description: The key of the field in the remote system.
                        type:
                          type: string
                          enum:
                            - DEFAULT
                            - CUSTOM
                          description: >-
                            - `DEFAULT`: static fields in the remote system.

                            - `CUSTOM`: fields that are created/editable by the
                            user.
                        value:
                          type: 'null'
                          description: The field's value.
                        label:
                          type:
                            - string
                            - 'null'
                          description: The label of the field. (not always available)
                      required:
                        - id
                        - key
                        - type
                        - label
                    description: >-
                      An array of selected passthrough integration fields. [Read
                      more](/integration-fields)
                    examples:
                      - - id: 5NVFhMpB9Ah6by44tzNjZLyE
                          key: firstName
                          type: DEFAULT
                          value: Frank
                          label: First Name
                        - id: 8nuajYpoRd5GnxEQaaWKUDYQ
                          key: customTshirtSize
                          type: CUSTOM
                          value: XL
                          label: T-Shirt Size
                  skill_assignments:
                    type: array
                    items:
                      type: object
                      properties:
                        skill:
                          type: object
                          properties:
                            id:
                              type: string
                              description: >-
                                The globally unique ID of this object generated
                                by Kombo. We recommend using this as a stable
                                primary key for syncing.
                            remote_id:
                              type:
                                - string
                                - 'null'
                              description: >-
                                The raw ID of the object in the remote system.
                                We don't recommend using this as a primary key
                                on your side as it might sometimes be
                                compromised of multiple identifiers if a system
                                doesn't provide a clear primary key.
                            name:
                              type:
                                - string
                                - 'null'
                              description: The name of the skill.
                          required:
                            - id
                            - remote_id
                            - name
                          examples:
                            - id: 26vafvWSRmbhNcxJYqjCzuJg
                              remote_id: skill-12345
                              name: LMS Integration
                      required:
                        - skill
                required:
                  - id
                  - remote_id
                  - course_id
                  - title
                  - description
                  - remote_url
                  - status
                  - remote_created_at
                  - remote_deleted_at
                  - changed_at
                  - remote_data
                  - custom_fields
                  - integration_fields
                  - skill_assignments
                examples:
                  - id: 3KMdr68N8kG9EzLwjsN9aoz
                    remote_id: revision-12345
                    course_id: 26vafvWSRmbhNcxJYqjCzuJg
                    title: Building LMS integrations with Kombo
                    description: >-
                      Learn how to build and integrate Learning Management
                      System (LMS) integrations with Kombo. This course covers
                      the unified LMS API, course management, user enrollment,
                      progress tracking, and best practices for building robust
                      LMS connectors.
                    remote_url: https://learning.acme.com/courses/building-integrations/v1
                    status: ACTIVE
                    remote_created_at: '2022-08-07T14:01:29.196Z'
                    remote_deleted_at: null
                    changed_at: '2022-08-07T14:01:29.196Z'
                    remote_data: null
                    custom_fields: null
                    integration_fields: []
                    skill_assignments:
                      - skill:
                          id: 4EeSSSd9Fr8iiW9mPKmjEVWK
                          remote_id: skill-123
                          name: LMS Integration
          required:
            - id
            - remote_id
            - provider_id
            - origin_id
            - remote_created_at
            - remote_deleted_at
            - changed_at
            - remote_data
            - custom_fields
            - integration_fields
            - provider
            - revisions
          examples:
            - id: 26vafvWSRmbhNcxJYqjCzuJg
              remote_id: '32'
              provider_id: 7xPdr68N8kG9EzLwjsN9xyz
              origin_id: course-123
              remote_created_at: '2022-08-07T14:01:29.196Z'
              remote_deleted_at: null
              changed_at: '2022-08-07T14:01:29.196Z'
              remote_data: null
              custom_fields: null
              integration_fields: []
              provider:
                id: 7xPdr68N8kG9EzLwjsN9xyz
                remote_id: provider-12345
                name: Kombo Academy
              revisions:
                - id: 3KMdr68N8kG9EzLwjsN9aoz
                  remote_id: revision-12345
                  course_id: 26vafvWSRmbhNcxJYqjCzuJg
                  title: Building LMS integrations with Kombo
                  description: >-
                    Learn how to build and integrate Learning Management System
                    (LMS) integrations with Kombo. This course covers the
                    unified LMS API, course management, user enrollment,
                    progress tracking, and best practices for building robust
                    LMS connectors.
                  remote_url: https://learning.acme.com/courses/building-integrations/v1
                  status: ACTIVE
                  remote_created_at: '2022-08-07T14:01:29.196Z'
                  remote_deleted_at: null
                  changed_at: '2022-08-07T14:01:29.196Z'
                  remote_data: null
                  custom_fields: null
                  integration_fields: []
                  skill_assignments:
                    - skill:
                        id: 4EeSSSd9Fr8iiW9mPKmjEVWK
                        remote_id: skill-123
                        name: LMS Integration
        warnings:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: >-
            These are the interaction warnings that are shown in the dashboard.
            They are meant to provide debug information to you. We recommend
            logging them to the console.
      required:
        - status
        - data
        - warnings
  responses:
    ErrorResponseGeneral:
      description: The standard error response with just the platform error codes.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                enum:
                  - error
              error:
                type: object
                properties:
                  code:
                    type:
                      - string
                      - 'null'
                    enum:
                      - PLATFORM.RATE_LIMIT_EXCEEDED
                      - PLATFORM.CONCURRENCY_LIMIT_EXCEEDED
                      - PLATFORM.INTEGRATION_NOT_FOUND
                      - PLATFORM.INPUT_INVALID
                      - PLATFORM.UNKNOWN_ERROR
                      - PLATFORM.IP_NOT_WHITELISTED
                      - PLATFORM.AUTHENTICATION_INVALID
                      - PLATFORM.TASK_TIMED_OUT
                    example: PLATFORM.RATE_LIMIT_EXCEEDED
                    description: >-
                      Some errors include an error code that can be used to
                      identify their cause. See the [Error Handling
                      Docs](https://docs.kombo.dev/guides/errors) for more
                      information. For your error handling logic please use the
                      error `code` instead of other properties (e.g. message,
                      http status code, ...).
                  title:
                    type:
                      - string
                      - 'null'
                    description: A static, human-readable label.
                  message:
                    type: string
                    description: >-
                      A dynamic, detailed description of what went wrong in this
                      specific instance.
                  log_url:
                    type:
                      - string
                      - 'null'
                    format: uri
                    description: >-
                      The log page in the Kombo UI lists every interaction with
                      full details. If you need assistance, share that link with
                      our support team.
                required:
                  - code
                  - title
                  - message
                  - log_url
                description: Error details with structured code for programmatic handling.
            required:
              - status
              - error
          examples:
            Error Response:
              description: >-
                When building error handling logic, always use the `code` field
                to identify specific error types programmatically. See the
                complete list of error codes in the
                [docs](https://docs.kombo.dev/guides/errors).
              value:
                status: error
                error:
                  code: INTEGRATION.MODEL_NOT_AVAILABLE
                  title: >-
                    This data model isn't supported for the selected
                    integration.
                  message: >-
                    The "employees" model is not yet available for Greenhouse.
                    Please reach out to Kombo if you need this functionality.
                  log_url: https://app.kombo.dev/my-prod/logs?interactionId=123456
            Minimal Error Response:
              description: >-
                The "message" is always required while other fields can also be
                `null`. See the [docs](https://docs.kombo.dev/guides/errors) for
                more information.
              value:
                status: error
                error:
                  code: null
                  title: null
                  message: The message is always in the response.
                  log_url: null
  securitySchemes:
    ApiKey:
      type: http
      scheme: bearer
      description: >-
        Create an API key on the [Secrets](https://app.kombo.dev/secrets) page
        in the Kombo dashboard.

````