> ## 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 or update an item

> Creates a new item or updates an existing one with the given sourcedId



## OpenAPI

````yaml /openapi/learn-with-ai/platform-api.yaml put /case/1.1/CFItems/{sourcedId}
openapi: 3.1.1
info:
  title: TimeBack Platform API
  description: >-
    RESTful API for the TimeBack Platform. Covers authentication, rostering,
    curriculum, insights, assessments, content grading, and more.
  version: 2026.09.10.1
servers:
  - url: https://platform.dev.timeback.com
    description: integration
security: []
tags:
  - name: Auth
    description: Authentication and authorization endpoints
  - name: Organizations
    description: Organizations module contains all endpoints around organization management
  - name: Applications
    description: Applications module contains all endpoints for managing LTI applications
  - name: Users
    description: >-
      Users module contains all endpoints around user creation, update and
      consultation
  - name: Students
    description: Students module contains all endpoints around student management
  - name: Demographics
    description: >-
      Demographics module contains all endpoints around demographics
      consultation
  - name: Consent
    description: >-
      Initiate and query TimeBack parental consent for a student, backed by an
      immutable audit trail.
  - name: Classes
    description: Classes module contains all endpoints around class management
  - name: Courses
    description: Courses module contains all endpoints around course management
  - name: Enrollments
    description: Enrollments module contains all endpoints around enrollment consultation
  - name: CASE
    description: Competency and Academic Standards Exchange (CASE) 1.1 API
  - name: Curriculum
    description: Curriculum module contains endpoints for managing curriculum data
  - name: Competency Track
    description: Competency track endpoints
  - name: Content Grading
    description: >-
      Registration and management of graders for free-response content items —
      bring-your-own external graders (Tier 2) and, once shipped,
      platform-managed grading prompts (Tier 1).
  - name: Caliper
    description: The Caliper module contains all endpoints around Caliper Analytics
  - name: Insights
    description: Coaching insights and session analytics endpoints
paths:
  /case/1.1/CFItems/{sourcedId}:
    put:
      tags:
        - CASE
      summary: Create or update an item
      description: Creates a new item or updates an existing one with the given sourcedId
      operationId: upsertItem
      parameters:
        - $ref: '#/components/parameters/sourcedId'
      requestBody:
        description: CFItem object to be created
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                item:
                  $ref: '#/components/schemas/CFItem'
              required:
                - item
      responses:
        '201':
          description: Successful operation
        '400':
          $ref: '#/components/responses/BadRequest31'
        '500':
          $ref: '#/components/responses/InternalError22'
      security:
        - CognitoUserPoolAuthorizer:
            - https://purl.imsglobal.org/spec/case/v1p0/scope/case.createput
components:
  parameters:
    sourcedId:
      name: sourcedId
      in: path
      description: Unique identifier of the CASE entity
      required: true
      schema:
        type: string
  schemas:
    CFItem:
      type: object
      description: A CASE item outside the context of a CFPackage
      required:
        - identifier
        - fullStatement
        - uri
        - lastChangeDateTime
        - CFDocumentURI
      properties:
        identifier:
          type: string
          description: The unique identifier for this item
        fullStatement:
          type: string
          description: The complete statement of the competency
        alternativeLabel:
          type: string
          description: Alternative label for the item
        CFItemType:
          type: string
          description: The type of the item
        uri:
          type: string
          format: uri
          description: URI that identifies this CASE entity
        humanCodingScheme:
          type: string
          description: Human-readable coding scheme
        listEnumeration:
          type: string
          description: List enumeration value
        abbreviatedStatement:
          type: string
          description: Shortened version of the statement
        conceptKeywords:
          type: array
          items:
            type: string
          description: Keywords associated with this item
        conceptKeywordsURI:
          $ref: '#/components/schemas/CfLinkUri'
        notes:
          type: string
          description: Additional notes about the item
        language:
          type: string
          description: Language code for this item
        educationLevel:
          type: array
          items:
            type: string
          description: Education levels this item applies to
        subject:
          type: array
          items:
            type: string
          description: List of subjects covered by this item
        subjectURI:
          type: array
          items:
            $ref: '#/components/schemas/CfLinkUri'
          description: List of subject references for this item
        extensions:
          type: object
          description: Additional properties for the item
        CFItemTypeURI:
          $ref: '#/components/schemas/CfLinkUri'
        licenseURI:
          $ref: '#/components/schemas/CfLinkUri'
        statusStartDate:
          type: string
          format: date
          description: Start date of the current status
        statusEndDate:
          type: string
          format: date
          description: End date of the current status
        lastChangeDateTime:
          type: string
          format: date-time
          description: Date/time when the entity was last modified
        CFDocumentURI:
          $ref: '#/components/schemas/CfLinkUri'
        CFPackageURI:
          $ref: '#/components/schemas/CfLinkUri'
    CfLinkUri:
      description: A generic link type containing identifier, uri and title
      type: object
      properties:
        title:
          type: string
          description: The title of the referenced entity
        identifier:
          type: string
          description: The identifier of the referenced entity
        uri:
          type: string
          format: uri
          description: The URI of the referenced entity
      required:
        - title
        - identifier
        - uri
    imsxStatusInfoDType3:
      description: >
        This is the container for the status code and associated information
        returned within the HTTP messages received from the Service Provider.
      type: object
      required:
        - imsx_codeMajor
        - imsx_severity
      properties:
        imsx_codeMajor:
          description: |
            The code major value (from the corresponding enumerated vocabulary).
          type: string
          enum:
            - success
            - processing
            - failure
            - unsupported
        imsx_severity:
          description: |
            The severity value (from the corresponding enumerated vocabulary).
          type: string
          enum:
            - status
            - warning
            - error
        imsx_description:
          description: >-
            A human readable description supplied by the entity creating the
            status code information.
          type: string
        imsx_CodeMinor:
          $ref: '#/components/schemas/imsxCodeMinorDType3'
    imsxCodeMinorDType3:
      description: >
        This is the container for the set of code minor status codes reported in
        the responses from the Service Provider.
      type: object
      required:
        - imsx_codeMinorField
      properties:
        imsx_codeMinorField:
          description: |
            Each reported code minor status code.
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/imsxCodeMinorFieldDType3'
    imsxCodeMinorFieldDType3:
      description: |
        This is the container for a single code minor status code.
      type: object
      required:
        - imsx_codeMinorFieldName
        - imsx_codeMinorFieldValue
      properties:
        imsx_codeMinorFieldName:
          description: >-
            This should contain the identity of the system that has produced the
            code minor status code report. In most cases this will be the target
            service provider denoted as 'TargetEndSystem'.
          type: string
          default: TargetEndSystem
        imsx_codeMinorFieldValue:
          description: >
            The code minor status code (this is a value from the corresponding
            enumerated vocabulary).
          type: string
          enum:
            - fullsuccess
            - invaliddata
            - unauthorisedrequest
            - forbidden
            - server_busy
            - unknownobject
            - internal_server_error
  responses:
    BadRequest31:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/imsxStatusInfoDType3'
    InternalError22:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/imsxStatusInfoDType3'
  securitySchemes:
    CognitoUserPoolAuthorizer:
      type: oauth2
      description: >-
        OAuth 2.0 client credentials flow. Contact timeback@trilogy.com to
        request credentials for your application.
      flows:
        clientCredentials:
          tokenUrl: https://platform.dev.timeback.com/auth/1.0/token
          scopes:
            https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly: roster readonly
            https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly: roster-core readonly
            https://purl.imsglobal.org/spec/or/v1p2/scope/roster.createput: roster createput
            https://purl.imsglobal.org/spec/lti/v1p3/scope/lti.readonly: lti readonly
            https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly: roster-demographics readonly
            https://timeback-platform.trilogy.com/consent/scope/consent.write: consent write
            https://timeback-platform.trilogy.com/consent/scope/consent.read: consent read
            https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.createput: roster-core createput
            https://purl.imsglobal.org/spec/or/v1p2/scope/roster.delete: roster delete
            https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.delete: roster-core delete
            https://purl.imsglobal.org/spec/case/v1p0/scope/case.readonly: case readonly
            https://purl.imsglobal.org/spec/case/v1p0/scope/case.createput: case createput
            https://purl.imsglobal.org/spec/case/v1p0/scope/case.delete: case delete
            https://timeback-platform.trilogy.com/competency-track/scope/competency-track.readonly: competency-track readonly
            https://timeback-platform.trilogy.com/competency-track/scope/competency-track.write: competency-track write
            https://timeback-platform.trilogy.com/competency-track/scope/competency-track.delete: competency-track delete
            https://timeback-platform.trilogy.com/content/scope/content.write: content write
            https://timeback-platform.trilogy.com/content/scope/content.read: content read
            https://purl.imsglobal.org/spec/caliper/v1p2/scope/events.write: events write
            https://purl.imsglobal.org/spec/caliper/v1p2/scope/events.readonly: events readonly
            https://timeback-platform.trilogy.com/webhooks/scope/webhooks.write: webhooks write
            https://timeback-platform.trilogy.com/webhooks/scope/webhooks.read: webhooks read
            https://timeback-platform.trilogy.com/webhooks/scope/webhooks.delete: webhooks delete

````