---
title: "Create pathway in draft state"
method: POST
path: "/v2/pathways"
tags: ["Pathways"]
---

# Create pathway in draft state

`POST /v2/pathways`

## Request body

- V2PathwayForCreation
  - `draftRoot` V2PathwayElement, required
    - `alignmentUrl` string, nullable
    - `children` V2PathwayElement[] — Children steps of this pathway.
    - `completionBadge` string, nullable — The URL of the badge awarded for completing this step.
    - `description` string, nullable
    - `elementId` string, required — Unique ID of the pathway step. It must be a valid ObjectId.
    - `frameworkName` string, nullable
    - `name` string, required
    - `requiredForParentCompletion` boolean — Determines whether this step is requires for the completion of its parent
    - `requirements` V2PathwayElementRequirements — The requirements to complete this step.
      - `allowCompletionBadgeShortcut` boolean — Determines whether this step can be completed with earning the completion badge regardless of the status of the specified requirements
      - `badgeRequirements` V2RequiredBadges
        - `countRule` union — Deprecated in favor of the step-level requiredCriteriaCount field
          - V2AllButNRequirementCountRule
            - `@type` 'allButN', required
            - `notRequiredCount` integer, required
          - V2AllRequirementCountRule
            - `@type` 'all', required
          - V2AtLeastNRequirementCountRule
            - `@type` 'atLeastN', required
            - `requiredCount` integer, required
        - `requiredBadges` V2BadgeRequirement[], required
          - `badgeUrl` string, required — URL of the badge
          - `displayOrder` integer — Display order of the requirement within the element
      - `childElementRequirements` V2RequiredChildElements
        - `countRule` union
          - V2AllButNRequirementCountRule
            - `@type` 'allButN', required
            - `notRequiredCount` integer, required
          - V2AllRequirementCountRule
            - `@type` 'all', required
          - V2AtLeastNRequirementCountRule
            - `@type` 'atLeastN', required
            - `requiredCount` integer, required
      - `courseRequirements` V2RequiredCourses
        - `requiredCourses` V2CourseRequirement[]
          - `completionRequirement` union, required
            - V2IsCompletedRequirement
              - …
            - V2NormalizedScoreRequirement
              - …
            - V2PointScoreRequirement
              - …
          - `courseId` string, required
          - `displayOrder` integer — Display order of the requirement within the element
          - `domain` string, required
          - `lms` 'CANVAS'
          - `name` string, required — Name of the course.
          - `url` string, required — Direct URL to the Canvas course
      - `experienceRequirements` V2RequiredExperiences
        - `requiredExperiences` V2ExperienceRequirement[]
          - `description` string, required
          - `displayOrder` integer — Display order of the requirement within the element
          - `id` string, uuid — Unique identifier of an experience
          - `name` string, required
      - `nonChildElementRequirements` V2RequiredNonChildElements
        - `countRule` union
          - V2AllButNRequirementCountRule
            - `@type` 'allButN', required
            - `notRequiredCount` integer, required
          - V2AllRequirementCountRule
            - `@type` 'all', required
          - V2AtLeastNRequirementCountRule
            - `@type` 'atLeastN', required
            - `requiredCount` integer, required
        - `elementIds` string[] — IDs of the required indirect steps.
      - `requiredCriteriaCount` integer, nullable — The number of requirements (excluding child and non-child steps) necessary to complete this step. If not specified, all requirements will be necessary.
      - `shortcutBadges` string[]
    - `shortCode` string, nullable
    - `targetCode` string, nullable
  - `issuerId` string, required — ID of the issuer where the pathway will be created
  - `preferences` V2PathwayPreferences, required
    - `includeOnPublicPages` boolean

## Response `200`

OK

- V2Pathway
  - `creationDate` string, date-time, required
  - `draftLastUpdatedAt` string, date-time, required
  - `draftStructureVersion` integer, required
  - `hasDraftChanges` boolean, required
  - `hasThirdPartyBadges` boolean, required
  - `issuerId` string, required — ID of the issuer where the pathway was created
  - `lastPublishedAt` string, date-time, nullable
  - `pathwayId` string, nullable
  - `preferences` V2PathwayPreferences, required
    - `includeOnPublicPages` boolean
  - `root` V2PathwayElement, required
    - `alignmentUrl` string, nullable
    - `children` V2PathwayElement[] — Children steps of this pathway.
    - `completionBadge` string, nullable — The URL of the badge awarded for completing this step.
    - `description` string, nullable
    - `elementId` string, required — Unique ID of the pathway step. It must be a valid ObjectId.
    - `frameworkName` string, nullable
    - `name` string, required
    - `requiredForParentCompletion` boolean — Determines whether this step is requires for the completion of its parent
    - `requirements` V2PathwayElementRequirements — The requirements to complete this step.
      - `allowCompletionBadgeShortcut` boolean — Determines whether this step can be completed with earning the completion badge regardless of the status of the specified requirements
      - `badgeRequirements` V2RequiredBadges
        - `countRule` union — Deprecated in favor of the step-level requiredCriteriaCount field
          - V2AllButNRequirementCountRule
            - `@type` 'allButN', required
            - `notRequiredCount` integer, required
          - V2AllRequirementCountRule
            - `@type` 'all', required
          - V2AtLeastNRequirementCountRule
            - `@type` 'atLeastN', required
            - `requiredCount` integer, required
        - `requiredBadges` V2BadgeRequirement[], required
          - `badgeUrl` string, required — URL of the badge
          - `displayOrder` integer — Display order of the requirement within the element
      - `childElementRequirements` V2RequiredChildElements
        - `countRule` union
          - V2AllButNRequirementCountRule
            - `@type` 'allButN', required
            - `notRequiredCount` integer, required
          - V2AllRequirementCountRule
            - `@type` 'all', required
          - V2AtLeastNRequirementCountRule
            - `@type` 'atLeastN', required
            - `requiredCount` integer, required
      - `courseRequirements` V2RequiredCourses
        - `requiredCourses` V2CourseRequirement[]
          - `completionRequirement` union, required
            - V2IsCompletedRequirement
              - …
            - V2NormalizedScoreRequirement
              - …
            - V2PointScoreRequirement
              - …
          - `courseId` string, required
          - `displayOrder` integer — Display order of the requirement within the element
          - `domain` string, required
          - `lms` 'CANVAS'
          - `name` string, required — Name of the course.
          - `url` string, required — Direct URL to the Canvas course
      - `experienceRequirements` V2RequiredExperiences
        - `requiredExperiences` V2ExperienceRequirement[]
          - `description` string, required
          - `displayOrder` integer — Display order of the requirement within the element
          - `id` string, uuid — Unique identifier of an experience
          - `name` string, required
      - `nonChildElementRequirements` V2RequiredNonChildElements
        - `countRule` union
          - V2AllButNRequirementCountRule
            - `@type` 'allButN', required
            - `notRequiredCount` integer, required
          - V2AllRequirementCountRule
            - `@type` 'all', required
          - V2AtLeastNRequirementCountRule
            - `@type` 'atLeastN', required
            - `requiredCount` integer, required
        - `elementIds` string[] — IDs of the required indirect steps.
      - `requiredCriteriaCount` integer, nullable — The number of requirements (excluding child and non-child steps) necessary to complete this step. If not specified, all requirements will be necessary.
      - `shortcutBadges` string[]
    - `shortCode` string, nullable
    - `targetCode` string, nullable

## Other responses

- `400` — Bad Request
- `404` — Not Found
- `429` — Too Many Requests
- `500` — Internal Server Error

---

[API](https://skmtc.net/instructure/apis/public-api-docs.md) · [All operations](https://skmtc.net/instructure/apis/public-api-docs/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/instructure/public-api-docs/revisions/44eb39b4bd65/schema)
