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

# Update exam assignments



## OpenAPI

````yaml https://api.dev.smarterproctoring.com/openapi.json put /v1/installs/{installSid}/exams/{examSid}/assignments
openapi: 3.0.0
info:
  title: SmarterProctoring API
  version: 3.0.3
  description: API documentation for SmarterProctoring
servers:
  - url: https://api.smarterproctoring.com
security:
  - client: []
tags:
  - name: App Install
    description: App Install operations
    x-group: App Install
  - name: Course
    description: Course operations
    x-group: Course
  - name: Course Offering
    description: Course Offering operations
    x-group: Course Offering
  - name: Exam
    description: Exam operations
    x-group: Exam
  - name: Exam Configuration
    description: Exam Configuration operations
    x-group: Exam Configuration
  - name: Exam Events
    description: Exam Events operations
    x-group: Exam Events
  - name: Exam Session
    description: Exam Session operations
    x-group: Exam Session
  - name: Exam Session Annotation
    description: Exam Session Annotation operations
    x-group: Exam Session Annotation
  - name: Exam Session Event
    description: Exam Session Event operations
    x-group: Exam Session Event
  - name: Onboarding
    description: Onboarding operations
    x-group: Onboarding
  - name: Provision
    description: Provision operations
    x-group: Provision
  - name: Reports
    description: Reports operations
    x-group: Reports
  - name: Time Zones
    description: Time Zones operations
    x-group: Time Zones
  - name: User
    description: User operations
    x-group: User
paths:
  /v1/installs/{installSid}/exams/{examSid}/assignments:
    put:
      tags:
        - Exam
      summary: Update exam assignments
      operationId: putV1InstallsInstallsidExamsExamsidAssignments
      parameters:
        - name: installSid
          in: path
          schema:
            type: string
            description: >-
              Unique SID of the application install. Pattern: `AI` + 32 hex
              chars.
            example: AI1234567890abcdef1234567890abcdef
            pattern: ^AI[a-f0-9]{32}$
          description: 'Unique SID of the application install. Pattern: `AI` + 32 hex chars.'
          required: true
        - name: examSid
          in: path
          schema:
            type: string
            description: >-
              Unique SID of the exam whose assignments are being modified.
              Pattern: `EX` + 32 hex chars.
            example: EX1234567890abcdef1234567890abcdef
            pattern: ^EX[a-f0-9]{32}$
          description: >-
            Unique SID of the exam whose assignments are being modified.
            Pattern: `EX` + 32 hex chars.
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateExamAssignment'
      responses:
        default:
          description: Successful
          content:
            application/json:
              schema:
                type: string
components:
  schemas:
    UpdateExamAssignment:
      type: object
      description: Payload for adding, removing, or updating exam assignments.
      properties:
        added:
          $ref: '#/components/schemas/added'
        removed:
          $ref: '#/components/schemas/removed'
        updated:
          $ref: '#/components/schemas/updated'
    added:
      type: array
      description: Array of new assignments to create.
      items:
        $ref: '#/components/schemas/Model52'
    removed:
      type: array
      description: Array of assignment SIDs to delete.
      items:
        type: string
        example: EA1234567890abcdef1234567890abcdef
        pattern: ^EA[a-f0-9]{32}$
    updated:
      type: array
      description: Array of existing assignments to update.
      items:
        $ref: '#/components/schemas/Model60'
    Model52:
      type: object
      properties:
        examOpenDate:
          type: string
          format: date
          description: When the exam opens for taking.
          nullable: true
        examCloseDate:
          type: string
          format: date
          description: When the exam closes for taking.
          nullable: true
        schedulingOpenDate:
          type: string
          format: date
          description: When scheduling opens.
          nullable: true
        schedulingCloseDate:
          type: string
          format: date
          description: When scheduling closes.
          nullable: true
        targets:
          $ref: '#/components/schemas/targets'
    Model60:
      type: object
      properties:
        sid:
          type: string
          description: SID of the assignment to update.
          example: EA1234567890abcdef1234567890abcdef
          pattern: ^EA[a-f0-9]{32}$
        examOpenDate:
          type: string
          format: date
          description: Updated exam open date.
          nullable: true
        examCloseDate:
          type: string
          format: date
          description: Updated exam close date.
          nullable: true
        schedulingOpenDate:
          type: string
          format: date
          description: Updated scheduling open date.
          nullable: true
        schedulingCloseDate:
          type: string
          format: date
          description: Updated scheduling close date.
          nullable: true
        targets:
          $ref: '#/components/schemas/Model59'
      required:
        - sid
    targets:
      type: object
      description: Targets for the new assignment.
      properties:
        enrollmentSids:
          $ref: '#/components/schemas/enrollmentSids'
        sectionSids:
          $ref: '#/components/schemas/sectionSids'
    Model59:
      type: object
      description: Target mutations for this assignment.
      properties:
        added:
          $ref: '#/components/schemas/Model55'
        removed:
          $ref: '#/components/schemas/Model58'
    enrollmentSids:
      type: array
      description: Enrollment SIDs to assign to this assignment.
      maxItems: 100
      items:
        type: string
        pattern: ^EN[a-f0-9]{32}$
    sectionSids:
      type: array
      description: Section SIDs to assign to this assignment.
      maxItems: 100
      items:
        type: string
        pattern: ^CS[a-f0-9]{32}$
    Model55:
      type: object
      description: Targets to add.
      properties:
        enrollmentSids:
          $ref: '#/components/schemas/Model53'
        sectionSids:
          $ref: '#/components/schemas/Model54'
    Model58:
      type: object
      description: Targets to remove.
      properties:
        enrollmentSids:
          $ref: '#/components/schemas/Model56'
        sectionSids:
          $ref: '#/components/schemas/Model57'
    Model53:
      type: array
      description: Enrollment SIDs to add to this assignment.
      maxItems: 100
      items:
        type: string
        pattern: ^EN[a-f0-9]{32}$
    Model54:
      type: array
      description: Section SIDs to add to this assignment.
      maxItems: 100
      items:
        type: string
        pattern: ^CS[a-f0-9]{32}$
    Model56:
      type: array
      description: Enrollment SIDs to remove from this assignment.
      maxItems: 100
      items:
        type: string
        pattern: ^EN[a-f0-9]{32}$
    Model57:
      type: array
      description: Section SIDs to remove from this assignment.
      maxItems: 100
      items:
        type: string
        pattern: ^CS[a-f0-9]{32}$
  securitySchemes:
    client:
      type: apiKey
      name: token
      in: header

````