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

# Set Step Details

> Updates a step's content and settings. The step type cannot be changed. Changes to quiz retry or passing-score settings may change existing responses' completion status and trigger completion webhooks.



## OpenAPI

````yaml patch /steps/{id}
openapi: 3.0.1
info:
  title: SchoolMaker API V1
  description: API for managing your SchoolMaker school
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://schoolmaker.co/api/v1
    description: Production API
security:
  - bearerAuth: []
paths:
  /steps/{id}:
    patch:
      tags:
        - Steps
      summary: Set Step Details
      description: >-
        Updates a step's content and settings. The step type cannot be changed.
        Changes to quiz retry or passing-score settings may change existing
        responses' completion status and trigger completion webhooks.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: Step ID.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              anyOf:
                - type: object
                  properties:
                    lesson_id:
                      type: string
                      minLength: 1
                      maxLength: 255
                    title:
                      type: string
                      maxLength: 255
                      minLength: 1
                      description: >-
                        Step title. Required on creation and cannot be blank.
                        Maximum 255 characters.
                    position:
                      type: integer
                      minimum: 1
                      description: >-
                        Position within the lesson, starting at 1. Defaults to
                        the end on creation or when moving to another lesson.
                        Moving a step shifts the other steps.
                    description:
                      type: string
                      maxLength: 200000
                      description: >-
                        Rich text content. Send null to clear it. Scripts,
                        embedded content and signed attachment markup are not
                        accepted.
                      nullable: true
                    content_format:
                      type: string
                      maxLength: 200000
                      enum:
                        - html
                        - markdown
                        - null
                      description: >-
                        Format of description, form_description and
                        optional_topic_post_body_template. Defaults to HTML.
                        Returned content is HTML. Quiz and form field
                        descriptions accept HTML. For blockquotes, use HTML.
                      nullable: true
                    quiz:
                      type: object
                      additionalProperties: false
                      properties:
                        title:
                          type: string
                          maxLength: 10000
                        description:
                          type: string
                          maxLength: 200000
                        allow_retry:
                          type: boolean
                        passing_score:
                          type: integer
                          minimum: 0
                          maximum: 100
                        question_time_limit:
                          type: integer
                          minimum: 0
                          maximum: 180
                        randomize_questions:
                          type: boolean
                        randomize_answers:
                          type: boolean
                        show_correct_answers:
                          type: boolean
                        questions_attributes:
                          type: array
                          maxItems: 100
                          items:
                            type: object
                            additionalProperties: false
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 255
                              title:
                                type: string
                                maxLength: 10000
                              description:
                                type: string
                                maxLength: 200000
                              solution:
                                type: string
                                maxLength: 200000
                              position:
                                type: integer
                                minimum: 1
                              question_type:
                                type: string
                                enum:
                                  - multiple_choice
                                  - drag_and_drop_word
                                  - fill_in_the_blank
                                  - flashcard
                                  - order_options
                              order_layout:
                                type: string
                                enum:
                                  - vertical
                                  - sentence
                              render_answers_as_latex:
                                type: boolean
                              _destroy:
                                type: boolean
                              answers_attributes:
                                type: array
                                maxItems: 40
                                items:
                                  type: object
                                  additionalProperties: false
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 255
                                    title:
                                      type: string
                                      maxLength: 10000
                                    is_correct:
                                      type: boolean
                                    solution_key:
                                      type: string
                                      maxLength: 10000
                                    _destroy:
                                      type: boolean
                      description: >-
                        Quiz settings, questions and answers. Existing IDs must
                        belong to this quiz. Omitted questions and answers stay
                        unchanged. Send _destroy=true to delete one. Quiz
                        editing is unavailable while question generation is in
                        progress.
                    fields:
                      type: array
                      maxItems: 50
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                            minLength: 1
                            maxLength: 255
                          title:
                            type: string
                            maxLength: 10000
                          description:
                            type: string
                            maxLength: 200000
                          field_type:
                            type: string
                            enum:
                              - input_text
                              - textarea
                              - rich_text
                              - multiple_choice
                              - single_choice
                              - date
                              - number
                              - email
                              - phone_number
                              - website
                              - boolean
                              - range
                              - review
                              - signature
                          position:
                            type: integer
                            minimum: 1
                          required:
                            type: boolean
                          _destroy:
                            type: boolean
                          survey_field_options_attributes:
                            type: array
                            maxItems: 100
                            items:
                              type: object
                              additionalProperties: false
                              properties:
                                id:
                                  type: string
                                  minLength: 1
                                  maxLength: 255
                                value:
                                  type: string
                                  maxLength: 10000
                                _destroy:
                                  type: boolean
                          custom_data_max_length:
                            pattern: ^[0-9]*$
                            description: >-
                              Text-length or numeric limit. Send null or an
                              empty string to clear an optional limit. Required
                              range limits and rating scale sizes cannot be
                              cleared.
                            anyOf:
                              - type: integer
                                nullable: true
                              - type: string
                                nullable: true
                          custom_data_min_length:
                            pattern: ^[0-9]*$
                            description: >-
                              Text-length or numeric limit. Send null or an
                              empty string to clear an optional limit. Required
                              range limits and rating scale sizes cannot be
                              cleared.
                            anyOf:
                              - type: integer
                                nullable: true
                              - type: string
                                nullable: true
                          custom_data_max_choices:
                            pattern: ^[0-9]*$
                            description: >-
                              Maximum number of selected choices. Send null or
                              an empty string to restore single selection.
                            anyOf:
                              - type: integer
                                nullable: true
                              - type: string
                                nullable: true
                          custom_data_date_type:
                            type: string
                            maxLength: 10000
                            enum:
                              - date
                              - time
                              - datetime-local
                              - week
                              - month
                            description: >-
                              Date input mode. Choose date, time,
                              datetime-local, week or month. Blank and null are
                              not accepted.
                          custom_data_review_label:
                            type: string
                            maxLength: 10000
                            enum:
                              - star
                              - heart
                              - thumb
                            description: >-
                              Rating icon. Choose star, heart or thumb. Blank
                              and null are not accepted.
                          custom_data_min_label:
                            type: string
                            maxLength: 10000
                          custom_data_max_label:
                            type: string
                            maxLength: 10000
                        additionalProperties: false
                      description: >-
                        Fields for a form step, up to 50 per request. Existing
                        field IDs must belong to this step and option IDs to
                        their field. Omitted fields stay unchanged. Send
                        _destroy=true to delete one.
                    form_description:
                      type: string
                      maxLength: 200000
                      description: >-
                        Rich text content. Send null to clear it. Scripts,
                        embedded content and signed attachment markup are not
                        accepted.
                      nullable: true
                    is_published:
                      type: boolean
                      description: >-
                        Whether the step is published. Defaults to false. Send
                        true or false on update. Null is accepted only on
                        creation.
                    min_duration:
                      type: integer
                      minimum: 0
                      description: Setting not shown in the current step editor.
                      nullable: true
                    max_duration:
                      type: integer
                      minimum: 0
                      description: Setting not shown in the current step editor.
                      nullable: true
                    is_optional:
                      type: boolean
                      description: >-
                        Whether the step is optional. Defaults to false.
                        Optional steps do not count toward progression. A lesson
                        containing only optional steps does not lock the next
                        lesson. Send true or false on update. Null is accepted
                        only on creation.
                    action_type:
                      type: string
                      maxLength: 200000
                      enum:
                        - basic
                        - input_text
                        - textarea
                        - link
                        - quiz
                        - post
                        - topic
                        - milestone
                        - file_upload
                        - form
                      description: >-
                        Step type. Defaults to basic and cannot be changed after
                        creation.
                      nullable: true
                    reviewer_ids:
                      type: array
                      items:
                        type: string
                        minLength: 1
                        maxLength: 255
                      maxItems: 100
                      description: >-
                        Staff user IDs who manually validate this step. Applies
                        to steps that support review. Send [] to use the
                        program's default reviewers. The response lists the
                        reviewers who apply.
                    unlock_badge_id:
                      type: string
                      maxLength: 200000
                      description: >-
                        Badge ID awarded when a member completes this milestone.
                        Members can display the badge on their community
                        profile. Send null to remove it.
                      nullable: true
                    miscellaneous_permanent_action_type:
                      type: boolean
                      description: Setting not shown in the current step editor.
                      nullable: true
                    miscellaneous_link_action_type:
                      type: string
                      maxLength: 200000
                      description: >-
                        Required HTTP(S) URL for a link step. Available
                        variables: {{full_name}} or {{name}} {{first_name}}
                        {{last_name}} {{email}} {{type}} (User or Member)
                      nullable: true
                    miscellaneous_input_text_action_type:
                      type: string
                      maxLength: 200000
                      description: >-
                        Input label for a text-line step. Defaults to the school
                        language's standard label. Send null to restore it. An
                        empty label is not accepted.
                      nullable: true
                    miscellaneous_textarea_action_type:
                      type: string
                      maxLength: 200000
                      description: >-
                        Input label for a text-paragraph step. Defaults to the
                        school language's standard label. Send null to restore
                        it. An empty label is not accepted.
                      nullable: true
                    miscellaneous_post_action_type:
                      type: string
                      maxLength: 200000
                      description: >-
                        Existing community post ID in this school for a reply
                        step. Members need access to that space to complete it.
                      nullable: true
                    miscellaneous_topic_action_type:
                      type: string
                      maxLength: 200000
                      description: >-
                        Existing community space/category ID in this school for
                        a create-post step. Members need access to that space to
                        complete it.
                      nullable: true
                    miscellaneous_topic_title_option:
                      type: string
                      maxLength: 200000
                      description: >-
                        Prefilled title for the community post members create in
                        a topic step.
                      nullable: true
                    miscellaneous_milestone_requires_review_option:
                      type: boolean
                      description: >-
                        Require members to provide proof before this milestone
                        can be validated. Defaults to false.
                      nullable: true
                    miscellaneous_milestone_action_type:
                      type: string
                      maxLength: 200000
                      enum:
                        - file_upload
                        - text
                        - none
                        - null
                      description: >-
                        Milestone proof type. Defaults to file_upload. Set
                        miscellaneous_milestone_requires_review_option to true
                        to require proof.
                      nullable: true
                    miscellaneous_milestone_text_proof_label_option:
                      type: string
                      maxLength: 200000
                      description: >-
                        Label for milestone text proof. Send null to restore the
                        school language's default label.
                      nullable: true
                    optional_topic_post_body_template:
                      type: string
                      maxLength: 200000
                      description: >-
                        Prefilled body for a community post created from this
                        step. Send null to clear it. Scripts, embedded content
                        and signed attachment markup are not accepted.
                      nullable: true
                    miscellaneous_milestone_triggers_testimonial_toggle_option:
                      type: boolean
                      description: >-
                        Ask for a testimonial when a member completes this
                        milestone. Requires Smart Testimonials to be enabled.
                      nullable: true
                    miscellaneous_milestone_triggers_testimonial_text_option:
                      type: string
                      maxLength: 200000
                      description: >-
                        Text of the testimonial request. Requires Smart
                        Testimonials to be enabled. Send null to restore the
                        school language's default text.
                      nullable: true
                    miscellaneous_accept_rich_text_option:
                      type: boolean
                      description: >-
                        Allow formatted answers for a text-paragraph step or
                        milestone text proof. Send null to turn it off.
                      nullable: true
                    miscellaneous_title_form:
                      type: string
                      maxLength: 200000
                      description: Heading inside the form, separate from the step title.
                      nullable: true
                    miscellaneous_display_type_form:
                      type: string
                      maxLength: 200000
                      enum:
                        - step_by_step
                        - all
                        - null
                      description: >-
                        Show form questions one at a time or all together.
                        Defaults to step_by_step.
                      nullable: true
                  additionalProperties: false
                - type: object
                  properties:
                    attributes:
                      type: object
                      properties:
                        title:
                          type: string
                          maxLength: 255
                          minLength: 1
                          description: >-
                            Step title. Required on creation and cannot be
                            blank. Maximum 255 characters.
                        position:
                          type: integer
                          minimum: 1
                          description: >-
                            Position within the lesson, starting at 1. Defaults
                            to the end on creation or when moving to another
                            lesson. Moving a step shifts the other steps.
                        description:
                          type: string
                          maxLength: 200000
                          description: >-
                            Rich text content. Send null to clear it. Scripts,
                            embedded content and signed attachment markup are
                            not accepted.
                          nullable: true
                        content_format:
                          type: string
                          maxLength: 200000
                          enum:
                            - html
                            - markdown
                            - null
                          description: >-
                            Format of description, form_description and
                            optional_topic_post_body_template. Defaults to HTML.
                            Returned content is HTML. Quiz and form field
                            descriptions accept HTML. For blockquotes, use HTML.
                          nullable: true
                        quiz:
                          type: object
                          additionalProperties: false
                          properties:
                            title:
                              type: string
                              maxLength: 10000
                            description:
                              type: string
                              maxLength: 200000
                            allow_retry:
                              type: boolean
                            passing_score:
                              type: integer
                              minimum: 0
                              maximum: 100
                            question_time_limit:
                              type: integer
                              minimum: 0
                              maximum: 180
                            randomize_questions:
                              type: boolean
                            randomize_answers:
                              type: boolean
                            show_correct_answers:
                              type: boolean
                            questions_attributes:
                              type: array
                              maxItems: 100
                              items:
                                type: object
                                additionalProperties: false
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    maxLength: 255
                                  title:
                                    type: string
                                    maxLength: 10000
                                  description:
                                    type: string
                                    maxLength: 200000
                                  solution:
                                    type: string
                                    maxLength: 200000
                                  position:
                                    type: integer
                                    minimum: 1
                                  question_type:
                                    type: string
                                    enum:
                                      - multiple_choice
                                      - drag_and_drop_word
                                      - fill_in_the_blank
                                      - flashcard
                                      - order_options
                                  order_layout:
                                    type: string
                                    enum:
                                      - vertical
                                      - sentence
                                  render_answers_as_latex:
                                    type: boolean
                                  _destroy:
                                    type: boolean
                                  answers_attributes:
                                    type: array
                                    maxItems: 40
                                    items:
                                      type: object
                                      additionalProperties: false
                                      properties:
                                        id:
                                          type: string
                                          minLength: 1
                                          maxLength: 255
                                        title:
                                          type: string
                                          maxLength: 10000
                                        is_correct:
                                          type: boolean
                                        solution_key:
                                          type: string
                                          maxLength: 10000
                                        _destroy:
                                          type: boolean
                          description: >-
                            Quiz settings, questions and answers. Existing IDs
                            must belong to this quiz. Omitted questions and
                            answers stay unchanged. Send _destroy=true to delete
                            one. Quiz editing is unavailable while question
                            generation is in progress.
                        fields:
                          type: array
                          maxItems: 50
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                                minLength: 1
                                maxLength: 255
                              title:
                                type: string
                                maxLength: 10000
                              description:
                                type: string
                                maxLength: 200000
                              field_type:
                                type: string
                                enum:
                                  - input_text
                                  - textarea
                                  - rich_text
                                  - multiple_choice
                                  - single_choice
                                  - date
                                  - number
                                  - email
                                  - phone_number
                                  - website
                                  - boolean
                                  - range
                                  - review
                                  - signature
                              position:
                                type: integer
                                minimum: 1
                              required:
                                type: boolean
                              _destroy:
                                type: boolean
                              survey_field_options_attributes:
                                type: array
                                maxItems: 100
                                items:
                                  type: object
                                  additionalProperties: false
                                  properties:
                                    id:
                                      type: string
                                      minLength: 1
                                      maxLength: 255
                                    value:
                                      type: string
                                      maxLength: 10000
                                    _destroy:
                                      type: boolean
                              custom_data_max_length:
                                pattern: ^[0-9]*$
                                description: >-
                                  Text-length or numeric limit. Send null or an
                                  empty string to clear an optional limit.
                                  Required range limits and rating scale sizes
                                  cannot be cleared.
                                anyOf:
                                  - type: integer
                                    nullable: true
                                  - type: string
                                    nullable: true
                              custom_data_min_length:
                                pattern: ^[0-9]*$
                                description: >-
                                  Text-length or numeric limit. Send null or an
                                  empty string to clear an optional limit.
                                  Required range limits and rating scale sizes
                                  cannot be cleared.
                                anyOf:
                                  - type: integer
                                    nullable: true
                                  - type: string
                                    nullable: true
                              custom_data_max_choices:
                                pattern: ^[0-9]*$
                                description: >-
                                  Maximum number of selected choices. Send null
                                  or an empty string to restore single
                                  selection.
                                anyOf:
                                  - type: integer
                                    nullable: true
                                  - type: string
                                    nullable: true
                              custom_data_date_type:
                                type: string
                                maxLength: 10000
                                enum:
                                  - date
                                  - time
                                  - datetime-local
                                  - week
                                  - month
                                description: >-
                                  Date input mode. Choose date, time,
                                  datetime-local, week or month. Blank and null
                                  are not accepted.
                              custom_data_review_label:
                                type: string
                                maxLength: 10000
                                enum:
                                  - star
                                  - heart
                                  - thumb
                                description: >-
                                  Rating icon. Choose star, heart or thumb.
                                  Blank and null are not accepted.
                              custom_data_min_label:
                                type: string
                                maxLength: 10000
                              custom_data_max_label:
                                type: string
                                maxLength: 10000
                            additionalProperties: false
                          description: >-
                            Fields for a form step, up to 50 per request.
                            Existing field IDs must belong to this step and
                            option IDs to their field. Omitted fields stay
                            unchanged. Send _destroy=true to delete one.
                        form_description:
                          type: string
                          maxLength: 200000
                          description: >-
                            Rich text content. Send null to clear it. Scripts,
                            embedded content and signed attachment markup are
                            not accepted.
                          nullable: true
                        is_published:
                          type: boolean
                          description: >-
                            Whether the step is published. Defaults to false.
                            Send true or false on update. Null is accepted only
                            on creation.
                        min_duration:
                          type: integer
                          minimum: 0
                          description: Setting not shown in the current step editor.
                          nullable: true
                        max_duration:
                          type: integer
                          minimum: 0
                          description: Setting not shown in the current step editor.
                          nullable: true
                        is_optional:
                          type: boolean
                          description: >-
                            Whether the step is optional. Defaults to false.
                            Optional steps do not count toward progression. A
                            lesson containing only optional steps does not lock
                            the next lesson. Send true or false on update. Null
                            is accepted only on creation.
                        action_type:
                          type: string
                          maxLength: 200000
                          enum:
                            - basic
                            - input_text
                            - textarea
                            - link
                            - quiz
                            - post
                            - topic
                            - milestone
                            - file_upload
                            - form
                          description: >-
                            Step type. Defaults to basic and cannot be changed
                            after creation.
                          nullable: true
                        reviewer_ids:
                          type: array
                          items:
                            type: string
                            minLength: 1
                            maxLength: 255
                          maxItems: 100
                          description: >-
                            Staff user IDs who manually validate this step.
                            Applies to steps that support review. Send [] to use
                            the program's default reviewers. The response lists
                            the reviewers who apply.
                        unlock_badge_id:
                          type: string
                          maxLength: 200000
                          description: >-
                            Badge ID awarded when a member completes this
                            milestone. Members can display the badge on their
                            community profile. Send null to remove it.
                          nullable: true
                        miscellaneous_permanent_action_type:
                          type: boolean
                          description: Setting not shown in the current step editor.
                          nullable: true
                        miscellaneous_link_action_type:
                          type: string
                          maxLength: 200000
                          description: >-
                            Required HTTP(S) URL for a link step. Available
                            variables: {{full_name}} or {{name}} {{first_name}}
                            {{last_name}} {{email}} {{type}} (User or Member)
                          nullable: true
                        miscellaneous_input_text_action_type:
                          type: string
                          maxLength: 200000
                          description: >-
                            Input label for a text-line step. Defaults to the
                            school language's standard label. Send null to
                            restore it. An empty label is not accepted.
                          nullable: true
                        miscellaneous_textarea_action_type:
                          type: string
                          maxLength: 200000
                          description: >-
                            Input label for a text-paragraph step. Defaults to
                            the school language's standard label. Send null to
                            restore it. An empty label is not accepted.
                          nullable: true
                        miscellaneous_post_action_type:
                          type: string
                          maxLength: 200000
                          description: >-
                            Existing community post ID in this school for a
                            reply step. Members need access to that space to
                            complete it.
                          nullable: true
                        miscellaneous_topic_action_type:
                          type: string
                          maxLength: 200000
                          description: >-
                            Existing community space/category ID in this school
                            for a create-post step. Members need access to that
                            space to complete it.
                          nullable: true
                        miscellaneous_topic_title_option:
                          type: string
                          maxLength: 200000
                          description: >-
                            Prefilled title for the community post members
                            create in a topic step.
                          nullable: true
                        miscellaneous_milestone_requires_review_option:
                          type: boolean
                          description: >-
                            Require members to provide proof before this
                            milestone can be validated. Defaults to false.
                          nullable: true
                        miscellaneous_milestone_action_type:
                          type: string
                          maxLength: 200000
                          enum:
                            - file_upload
                            - text
                            - none
                            - null
                          description: >-
                            Milestone proof type. Defaults to file_upload. Set
                            miscellaneous_milestone_requires_review_option to
                            true to require proof.
                          nullable: true
                        miscellaneous_milestone_text_proof_label_option:
                          type: string
                          maxLength: 200000
                          description: >-
                            Label for milestone text proof. Send null to restore
                            the school language's default label.
                          nullable: true
                        optional_topic_post_body_template:
                          type: string
                          maxLength: 200000
                          description: >-
                            Prefilled body for a community post created from
                            this step. Send null to clear it. Scripts, embedded
                            content and signed attachment markup are not
                            accepted.
                          nullable: true
                        miscellaneous_milestone_triggers_testimonial_toggle_option:
                          type: boolean
                          description: >-
                            Ask for a testimonial when a member completes this
                            milestone. Requires Smart Testimonials to be
                            enabled.
                          nullable: true
                        miscellaneous_milestone_triggers_testimonial_text_option:
                          type: string
                          maxLength: 200000
                          description: >-
                            Text of the testimonial request. Requires Smart
                            Testimonials to be enabled. Send null to restore the
                            school language's default text.
                          nullable: true
                        miscellaneous_accept_rich_text_option:
                          type: boolean
                          description: >-
                            Allow formatted answers for a text-paragraph step or
                            milestone text proof. Send null to turn it off.
                          nullable: true
                        miscellaneous_title_form:
                          type: string
                          maxLength: 200000
                          description: >-
                            Heading inside the form, separate from the step
                            title.
                          nullable: true
                        miscellaneous_display_type_form:
                          type: string
                          maxLength: 200000
                          enum:
                            - step_by_step
                            - all
                            - null
                          description: >-
                            Show form questions one at a time or all together.
                            Defaults to step_by_step.
                          nullable: true
                      additionalProperties: false
                    lesson_id:
                      type: string
                      minLength: 1
                      maxLength: 255
                  additionalProperties: false
            examples:
              partial:
                value:
                  attributes:
                    description: null
                    reviewer_ids: []
              move:
                value:
                  lesson_id: DESTINATION_LESSON_ID
                  position: 1
      responses:
        '200':
          description: Successful request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  lesson_id:
                    type: string
                  title:
                    type: string
                  position:
                    type: integer
                  action_type:
                    type: string
                    enum:
                      - basic
                      - input_text
                      - textarea
                      - link
                      - quiz
                      - post
                      - topic
                      - milestone
                      - file_upload
                      - form
                  is_published:
                    type: boolean
                  is_optional:
                    type: boolean
                  min_duration:
                    type: integer
                    nullable: true
                  max_duration:
                    type: integer
                    nullable: true
                  description:
                    type: string
                  form_description:
                    type: string
                  reviewer_ids:
                    type: array
                    items:
                      type: string
                  unlock_badge_id:
                    type: string
                    nullable: true
                  miscellaneous_permanent_action_type:
                    type: boolean
                    nullable: true
                  miscellaneous_link_action_type:
                    type: string
                    nullable: true
                  miscellaneous_input_text_action_type:
                    type: string
                    nullable: true
                  miscellaneous_textarea_action_type:
                    type: string
                    nullable: true
                  miscellaneous_post_action_type:
                    type: string
                    nullable: true
                  miscellaneous_topic_action_type:
                    type: string
                    nullable: true
                  miscellaneous_topic_title_option:
                    type: string
                    nullable: true
                  miscellaneous_milestone_requires_review_option:
                    type: boolean
                  miscellaneous_milestone_action_type:
                    type: string
                    nullable: true
                  miscellaneous_milestone_text_proof_label_option:
                    type: string
                    nullable: true
                  optional_topic_post_body_template:
                    type: string
                  miscellaneous_milestone_triggers_testimonial_toggle_option:
                    type: boolean
                    nullable: true
                  miscellaneous_milestone_triggers_testimonial_text_option:
                    type: string
                    nullable: true
                  miscellaneous_accept_rich_text_option:
                    type: boolean
                    nullable: true
                  miscellaneous_title_form:
                    type: string
                    nullable: true
                  miscellaneous_display_type_form:
                    type: string
                    nullable: true
                  quiz:
                    type: object
                    properties:
                      id:
                        type: string
                      title:
                        type: string
                      allow_retry:
                        type: boolean
                      passing_score:
                        type: integer
                      question_time_limit:
                        type: integer
                      randomize_questions:
                        type: boolean
                      randomize_answers:
                        type: boolean
                      show_correct_answers:
                        type: boolean
                      description:
                        type: string
                      questions:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            title:
                              type: string
                              nullable: true
                            question_type:
                              type: string
                            position:
                              type: integer
                            order_layout:
                              type: string
                            render_answers_as_latex:
                              type: boolean
                            description:
                              type: string
                            solution:
                              type: string
                            answers:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  title:
                                    type: string
                                  is_correct:
                                    type: boolean
                                  solution_key:
                                    type: string
                                    nullable: true
                                  position:
                                    type: integer
                                required:
                                  - id
                                  - title
                                  - is_correct
                                  - solution_key
                                  - position
                          required:
                            - id
                            - title
                            - question_type
                            - position
                            - order_layout
                            - render_answers_as_latex
                            - description
                            - solution
                            - answers
                    required:
                      - id
                      - title
                      - allow_retry
                      - passing_score
                      - question_time_limit
                      - randomize_questions
                      - randomize_answers
                      - show_correct_answers
                      - description
                      - questions
                  fields:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        step_id:
                          type: string
                        title:
                          type: string
                          nullable: true
                        field_type:
                          type: string
                        position:
                          type: integer
                          nullable: true
                        required:
                          type: boolean
                        description:
                          type: string
                        custom_data:
                          type: object
                          nullable: true
                          additionalProperties: true
                        options:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                              value:
                                type: string
                              position:
                                type: integer
                            required:
                              - id
                              - value
                              - position
                      required:
                        - id
                        - step_id
                        - title
                        - field_type
                        - position
                        - required
                        - description
                        - custom_data
                        - options
                required:
                  - id
                  - lesson_id
                  - title
                  - position
                  - action_type
                  - is_published
                  - is_optional
                  - min_duration
                  - max_duration
              examples:
                basic:
                  value:
                    id: 00000000-0000-4000-8000-000000000002
                    lesson_id: 00000000-0000-4000-8000-000000000003
                    title: Steps HTTP basic
                    position: 2
                    action_type: basic
                    is_optional: true
                    is_published: true
                    min_duration: null
                    max_duration: null
                    description: >
                      <div class="trix-content lexxy-content"
                      data-controller="add-target-blank-to-links">
                        <p><strong>Imported</strong></p><!-- schoolmaker-lexxy-content -->
                      </div>
                    form_description: ''
                    reviewer_ids:
                      - 00000000-0000-4000-8000-000000000001
                    unlock_badge_id: null
                    miscellaneous_permanent_action_type: null
                    miscellaneous_link_action_type: null
                    miscellaneous_input_text_action_type: Fill the field below
                    miscellaneous_textarea_action_type: Fill the field below
                    miscellaneous_post_action_type: null
                    miscellaneous_topic_action_type: null
                    miscellaneous_topic_title_option: null
                    miscellaneous_milestone_requires_review_option: false
                    miscellaneous_milestone_action_type: file_upload
                    miscellaneous_milestone_text_proof_label_option: Fill the field below
                    optional_topic_post_body_template: ''
                    miscellaneous_milestone_triggers_testimonial_toggle_option: null
                    miscellaneous_milestone_triggers_testimonial_text_option: >
                      Congrats on reaching that big milestone! It's the perfect
                      time to leave a testimonial and tell us how you did it
                    miscellaneous_accept_rich_text_option: null
                    miscellaneous_title_form: null
                    miscellaneous_display_type_form: step_by_step
                quiz:
                  value:
                    id: 00000000-0000-4000-8000-000000000007
                    lesson_id: 00000000-0000-4000-8000-000000000006
                    title: Steps HTTP quiz
                    position: 10
                    action_type: quiz
                    is_optional: true
                    is_published: true
                    min_duration: null
                    max_duration: null
                    description: >
                      <div class="trix-content lexxy-content"
                      data-controller="add-target-blank-to-links">
                        <p><strong>Imported</strong></p><!-- schoolmaker-lexxy-content -->
                      </div>
                    form_description: ''
                    reviewer_ids:
                      - 00000000-0000-4000-8000-000000000001
                    unlock_badge_id: null
                    miscellaneous_permanent_action_type: null
                    miscellaneous_link_action_type: null
                    miscellaneous_input_text_action_type: Fill the field below
                    miscellaneous_textarea_action_type: Fill the field below
                    miscellaneous_post_action_type: null
                    miscellaneous_topic_action_type: null
                    miscellaneous_topic_title_option: null
                    miscellaneous_milestone_requires_review_option: false
                    miscellaneous_milestone_action_type: file_upload
                    miscellaneous_milestone_text_proof_label_option: Fill the field below
                    optional_topic_post_body_template: ''
                    miscellaneous_milestone_triggers_testimonial_toggle_option: null
                    miscellaneous_milestone_triggers_testimonial_text_option: >
                      Congrats on reaching that big milestone! It's the perfect
                      time to leave a testimonial and tell us how you did it
                    miscellaneous_accept_rich_text_option: null
                    miscellaneous_title_form: null
                    miscellaneous_display_type_form: step_by_step
                    quiz:
                      id: 00000000-0000-4000-8000-000000000002
                      title: Quiz
                      allow_retry: true
                      passing_score: 80
                      question_time_limit: 0
                      randomize_questions: true
                      randomize_answers: true
                      show_correct_answers: true
                      description: ''
                      questions:
                        - id: 00000000-0000-4000-8000-000000000003
                          title: Pick
                          question_type: multiple_choice
                          position: 1
                          order_layout: vertical
                          render_answers_as_latex: false
                          description: ''
                          solution: ''
                          answers:
                            - id: 00000000-0000-4000-8000-000000000004
                              title: 'Yes'
                              is_correct: true
                              solution_key: null
                              position: 0
                            - id: 00000000-0000-4000-8000-000000000005
                              title: 'No'
                              is_correct: false
                              solution_key: null
                              position: 0
                form:
                  value:
                    id: 00000000-0000-4000-8000-000000000003
                    lesson_id: 00000000-0000-4000-8000-000000000006
                    title: Steps HTTP form
                    position: 11
                    action_type: form
                    is_optional: true
                    is_published: true
                    min_duration: null
                    max_duration: null
                    description: >
                      <div class="trix-content lexxy-content"
                      data-controller="add-target-blank-to-links">
                        <p><strong>Imported</strong></p><!-- schoolmaker-lexxy-content -->
                      </div>
                    form_description: ''
                    reviewer_ids:
                      - 00000000-0000-4000-8000-000000000001
                    unlock_badge_id: null
                    miscellaneous_permanent_action_type: null
                    miscellaneous_link_action_type: null
                    miscellaneous_input_text_action_type: Fill the field below
                    miscellaneous_textarea_action_type: Fill the field below
                    miscellaneous_post_action_type: null
                    miscellaneous_topic_action_type: null
                    miscellaneous_topic_title_option: null
                    miscellaneous_milestone_requires_review_option: false
                    miscellaneous_milestone_action_type: file_upload
                    miscellaneous_milestone_text_proof_label_option: Fill the field below
                    optional_topic_post_body_template: ''
                    miscellaneous_milestone_triggers_testimonial_toggle_option: null
                    miscellaneous_milestone_triggers_testimonial_text_option: >
                      Congrats on reaching that big milestone! It's the perfect
                      time to leave a testimonial and tell us how you did it
                    miscellaneous_accept_rich_text_option: null
                    miscellaneous_title_form: null
                    miscellaneous_display_type_form: all
                    fields:
                      - id: 00000000-0000-4000-8000-000000000005
                        custom_data:
                          max_choices: 2
                        field_type: multiple_choice
                        position: 1
                        required: false
                        step_id: 00000000-0000-4000-8000-000000000003
                        title: Choice
                        description: ''
                        options:
                          - id: 00000000-0000-4000-8000-000000000002
                            value: One
                            position: 0
                          - id: 00000000-0000-4000-8000-000000000007
                            value: Two
                            position: 0
                      - id: 00000000-0000-4000-8000-000000000004
                        custom_data:
                          max_length: 30
                          min_length: 2
                        field_type: input_text
                        position: 2
                        required: false
                        step_id: 00000000-0000-4000-8000-000000000003
                        title: Text
                        description: ''
                        options: []
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    oneOf:
                      - type: string
                      - type: array
                        items:
                          type: string
              example:
                error: Access denied
        '404':
          description: Step not found.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    oneOf:
                      - type: string
                      - type: array
                        items:
                          type: string
              example:
                error: Record not found
        '422':
          description: Invalid request.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    oneOf:
                      - type: string
                      - type: array
                        items:
                          type: string
              example:
                error: 'Invalid arguments: /attributes/position integer'
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.