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

# Create a new test part in an assessment test

> Create a new test part within an assessment test. Test parts organize sections and define navigation behaviors (linear/nonlinear) and submission modes. The assessment test's XML structure is automatically updated to include the new test part.



## OpenAPI

````yaml /openapi/beyond-ai/qti-api.yaml post /assessment-tests/{assessmentTestIdentifier}/test-parts
openapi: 3.1.0
info:
  title: QTI API
  version: 1.0.0
  description: >-
    A robust assessment engine implementing the QTI 3.0 specification, designed
    for creating, managing, and delivering educational assessments.
servers:
  - url: https://qti.alpha-1edtech.ai/api
    description: Main Server
security:
  - OAuth2: []
  - MCP: []
tags:
  - name: Validation
    description: >-
      Validate XML strings against QTI compliant XSD files. XSD version
      supported is 3.0.0 (3p0)
  - name: Feedback
    description: Feedback for questions and lessons
  - name: Assessment Test Management
    description: >-
      Enables the management of Assessment Tests. Assessment Tests are the main
      entities that contain Assessment Test Parts, Sections, and Assessment
      Items.
  - name: Test Part Management
    description: >-
      Enables the management of Test Parts. Assessment Test Parts are used to
      group sections inside of an Assessment Test.
  - name: Section Management
    description: >-
      Enables the management of Sections. Assessment Sections are used to group
      Assessment Items.
  - name: Assessment Item Management
    description: >-
      Enables the management of Assessment ITems. Assessment Items are made up
      of QTI Interactions (e.g. questions, multiple choice, etc.).
  - name: Stimulus Management
    description: >-
      Enables the management of Stimuli. Stimuli are shared content pieces
      (text, images, audio, video) that provide context for assessment items and
      can be referenced by multiple questions.
paths:
  /assessment-tests/{assessmentTestIdentifier}/test-parts:
    post:
      tags:
        - Test Part Management
      summary: Create a new test part in an assessment test
      description: >-
        Create a new test part within an assessment test. Test parts organize
        sections and define navigation behaviors (linear/nonlinear) and
        submission modes. The assessment test's XML structure is automatically
        updated to include the new test part.
      operationId: createTestPart
      parameters:
        - name: assessmentTestIdentifier
          description: >-
            The unique identifier of the parent assessment test where the test
            part will be created
          in: path
          required: true
          schema:
            type: string
      requestBody:
        description: The test part to create
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TestPart'
              description: >-
                Create a new test part on the service provider. A test part must
                contain at least one assessment section, and the navigation and
                submission modes must be specified.
      responses:
        '201':
          description: Test part created successfully
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/TestPart'
                properties:
                  rawXml:
                    type: string
                    description: >-
                      Raw XML representation of the entity, automatically
                      generated from the JSON or XML sent when creating entities
                      on the service provider. The rawxml field will contain all
                      content sent when creating the entity on the service
                      provider. This field is stable and should be used when
                      working within this QTI API.
                  content:
                    type: object
                    properties:
                      qti-test-part:
                        type: object
                        properties:
                          _attributes:
                            type: object
                            properties:
                              identifier:
                                type: string
                              navigation-mode:
                                type: string
                              submission-mode:
                                type: string
                            required:
                              - identifier
                              - navigation-mode
                              - submission-mode
                          qti-assessment-section:
                            type: array
                            items:
                              type: object
                              properties:
                                _attributes:
                                  type: object
                                  properties:
                                    identifier:
                                      type: string
                                    title:
                                      type: string
                                    visible:
                                      type: string
                                    required:
                                      type: string
                                    fixed:
                                      type: string
                                  required:
                                    - identifier
                                    - title
                                    - visible
                                    - required
                                    - fixed
                                qti-assessment-item-ref:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      _attributes:
                                        type: object
                                        properties:
                                          identifier:
                                            type: string
                                          href:
                                            type: string
                                        required:
                                          - identifier
                                          - href
                                    required:
                                      - _attributes
                              required:
                                - _attributes
                        required:
                          - _attributes
                          - qti-assessment-section
                    required:
                      - qti-test-part
                required:
                  - rawXml
                  - content
                description: >-
                  Response data returned after successfully creating a new test
                  part. Includes the generated XML and parsed content structure.
        '400':
          description: Missig required paramater or Invalid test part data
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  details:
                    type: string
                required:
                  - error
        '404':
          description: Assessment test not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '409':
          description: Test part with this identifier already exists
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error type identifier
                  message:
                    type: string
                    description: Human-readable error message
                  eventId:
                    type: string
                    description: Sentry event ID for error tracking
                  details:
                    type: string
                    description: Stack trace or additional error details
                required:
                  - error
                  - message
                  - details
                description: Internal server error response
components:
  schemas:
    TestPart:
      type: object
      properties:
        identifier:
          type: string
          description: Unique identifier for the entity on the service provider.
        navigationMode:
          type: string
          enum:
            - linear
            - nonlinear
          description: >-
            Controls how learners navigate through the test part. 'linear'
            requires items to be responded to in sequence without jumping
            around, while 'nonlinear' allows candidates to respond to items in
            any order they choose.
        submissionMode:
          type: string
          enum:
            - individual
            - simultaneous
          description: >-
            Determines how learner responses are submitted for response
            processing. 'individual' allows responses to be submitted as each
            item is completed, while 'simultaneous' means responses for all
            items are sent when the whole part is completed.
        qti-assessment-section:
          type: array
          items:
            $ref: '#/components/schemas/Section'
        qti-pre-condition:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: >-
            Array of QTI 3.0 pre-conditions. Each pre-condition contains a
            logical expression that is evaluated before the element is
            presented. If any pre-condition evaluates to false, the element is
            skipped.
        qti-branch-rule:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: >-
            Array of QTI 3.0 branch rules. Each branch rule contains a logical
            expression that, when evaluated to true after the element is
            presented, causes the test to jump to the target identified by the
            rule.
      required:
        - identifier
        - navigationMode
        - submissionMode
        - qti-assessment-section
      description: Complete test part structure as parsed from XML.
    Section:
      type: object
      properties:
        identifier:
          type: string
          description: Unique identifier for the entity on the service provider.
        title:
          type: string
          description: Human-readable title of the entity on the service provider.
        visible:
          type: boolean
          default: true
          description: >-
            Determines whether the assessment section is visible to candidates
            during test delivery. Sections are visible by default unless
            explicitly hidden for specific assessment conditions.
        required:
          type: boolean
          default: true
          description: >-
            If a child element is required it must appear (at least once) in the
            selection.
        fixed:
          type: boolean
          default: false
          description: >-
            If a child element is fixed it must never be shuffled. When used in
            combination with a selection rule fixed elements do not have their
            position fixed until after selection has taken place.
        sequence:
          type: integer
          exclusiveMinimum: 0
          description: >-
            Defines the sequential order of this item within its parent section.
            Must be a positive integer that determines presentation order to
            candidates.
        qti-assessment-item-ref:
          type: array
          items:
            type: object
            properties:
              identifier:
                type: string
                description: Unique identifier for the entity on the service provider.
              href:
                type: string
                description: >-
                  URI reference to the assessment item resource location on the
                  service provider
            required:
              - identifier
            description: >-
              Assessment item reference schema for linking assessment items to
              sections
          description: >-
            Collection of assessment items that are referenced within this
            section.
        qti-pre-condition:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: >-
            Array of QTI 3.0 pre-conditions. Each pre-condition contains a
            logical expression that is evaluated before the element is
            presented. If any pre-condition evaluates to false, the element is
            skipped.
        qti-branch-rule:
          type: array
          items:
            type: object
            additionalProperties: {}
          description: >-
            Array of QTI 3.0 branch rules. Each branch rule contains a logical
            expression that, when evaluated to true after the element is
            presented, causes the test to jump to the target identified by the
            rule.
      required:
        - identifier
        - title
        - visible
      description: >-
        Core assessment section schema containing all essential section
        attributes
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          scopes:
            https://purl.imsglobal.org/spec/qti/v3/scope/readonly: Read access to QTI
            https://purl.imsglobal.org/spec/qti/v3/scope/createput: Create and update access to QTI
            https://purl.imsglobal.org/spec/qti/v3/scope/delete: Delete access to QTI
          tokenUrl: >-
            https://prod-beyond-timeback-api-2-idp.auth.us-east-1.amazoncognito.com/oauth2/token
    MCP:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: >-
            https://prod-beyond-timeback-api-2-idp.auth.us-east-1.amazoncognito.com/oauth2/authorize
          tokenUrl: >-
            https://prod-beyond-timeback-api-2-idp.auth.us-east-1.amazoncognito.com/oauth2/token
          scopes:
            https://purl.imsglobal.org/spec/qti/v3/scope/readonly: Read access to QTI

````