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

# Update AI Assistant

> **DEPRECATED** — This API will be removed on 2nd april 2026. Please migrate to the updated assistant APIs.




## OpenAPI

````yaml https://api.voice-agents.miraiminds.co/swagger.yaml put /v2/assistant/update/{assistantId}
openapi: 3.0.3
info:
  title: Voice Agent by Mirai Minds
  version: 1.1.0
  contact:
    name: API Architecture Team
    url: https://miraiminds.co
  license:
    name: Mirai Minds Proprietary License
    url: >-
      https://github.com/MiraiMinds/voice-agent-integration-specs/blob/main/LICENSE.md
servers:
  - url: https://api.voice-agents.miraiminds.co
    description: Production Server
  - url: https://api.stage.voice-agent.miraiminds.co
    description: Staging Server
  - url: http://localhost:3000
    description: Local Server
security:
  - PublicKeyAuth: []
    PrivateKeyAuth: []
paths:
  /v2/assistant/update/{assistantId}:
    put:
      tags:
        - Assistant
      summary: Update AI Assistant
      description: >
        **DEPRECATED** — This API will be removed on 2nd april 2026. Please
        migrate to the updated assistant APIs.
      operationId: updateAssistant
      parameters:
        - $ref: '#/components/parameters/PublicKeyHeader'
        - $ref: '#/components/parameters/PrivateKeyHeader'
        - $ref: '#/components/parameters/WorkspaceHeader'
        - name: assistantId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssistantUpdateRequest'
            example:
              name: My Abandoned Cart Assistant
              agentIdentity:
                name: neha
                gender: female
                voice: neha
              variantConfigs:
                systemPrompt: ''
              icpContext:
                targetAgeGroups:
                  - millennials
                locationTiers:
                  - metro_urban
                language: english
                targetAudience:
                  - female
              callSettings:
                slots:
                  - startTime: '10:00'
                    endTime: '17:30'
                maxCallDuration: 200
                concurrentCallCount: 5
                retryProtocol:
                  maxAttemptsNoPickup: 2
                  maxAttemptsLowEngagement: 1
                  reAttemptPeriod: 300
                  maxRescheduleCount: 1
              analysisPlan:
                successCriteriaPlan: >-
                  Call is successful if customer commits to completing the
                  purchase or schedules a callback
                summaryPlan: >-
                  Provide a concise summary of the conversation, customer
                  objections, and the outcome
              trainingData:
                faq:
                  - question: What is your return policy?
                    answer: We offer a 7-day return policy for unused items.
              knowledgeBase:
                documents:
                  - url: https://example.com/product-catalog.pdf
                    title: Product Catalog
                    type: pdf
      responses:
        '200':
          description: Assistant Update Started
          content:
            application/json:
              schema:
                type: object
                properties:
                  assistantId:
                    type: string
                  status:
                    type: string
                    example: in-process
        '400':
          description: Assistant is currently in process
        '404':
          description: Assistant not found
        '429':
          description: Too many requests (Updated too recently)
      deprecated: true
components:
  parameters:
    PublicKeyHeader:
      name: x-public-key
      in: header
      required: true
      schema:
        type: string
    PrivateKeyHeader:
      name: x-private-key
      in: header
      required: true
      schema:
        type: string
    WorkspaceHeader:
      name: workspace
      in: header
      required: true
      schema:
        type: string
  schemas:
    AssistantUpdateRequest:
      type: object
      description: >-
        Update assistant fields. All fields are optional — only provided fields
        are updated. Variant cannot be changed.
      properties:
        name:
          type: string
        agentIdentity:
          type: object
          properties:
            name:
              type: string
            gender:
              type: string
              enum:
                - male
                - female
            voice:
              type: string
        analysisPlan:
          $ref: '#/components/schemas/AnalysisPlan'
        icpContext:
          $ref: '#/components/schemas/ICPContext'
        callSettings:
          type: object
          properties:
            slots:
              type: array
              items:
                type: object
                properties:
                  startTime:
                    type: string
                    example: '10:00'
                  endTime:
                    type: string
                    example: '17:30'
            maxCallDuration:
              type: number
            concurrentCallCount:
              type: number
              maximum: 10
            retryProtocol:
              type: object
              properties:
                maxAttemptsNoPickup:
                  type: number
                maxAttemptsLowEngagement:
                  type: number
                reAttemptPeriod:
                  type: number
                maxRescheduleCount:
                  type: number
        variantConfigs:
          $ref: '#/components/schemas/VariantConfigs'
        trainingData:
          $ref: '#/components/schemas/TrainingData'
        knowledgeBase:
          $ref: '#/components/schemas/KnowledgeBase'
    AnalysisPlan:
      type: object
      properties:
        successCriteriaPlan:
          type: string
        summaryPlan:
          type: string
        callInsightPlan:
          $ref: '#/components/schemas/CallInsightPlan'
    ICPContext:
      type: object
      properties:
        targetAgeGroups:
          type: array
          items:
            type: string
            enum:
              - gen_z
              - millennials
              - gen_x
              - boomers
          description: Affects slang usage. Gen Z = 'Vibe'; Boomers = 'Quality'.
        locationTiers:
          type: array
          items:
            type: string
            enum:
              - metro_urban
              - tier1
              - tier2
              - tier3
              - rural
          description: Affects language complexity and speed.
        language:
          type: string
          enum:
            - hinglish
            - english
            - hindi
            - telugu
            - tamil
            - kannada
            - malayalam
            - gujarati
            - punjabi
            - odia
            - marathi
          description: Affects language complexity and speed.
        targetAudience:
          type: array
          items:
            type: string
            enum:
              - male
              - female
              - children
          description: Affects language complexity and speed.
    VariantConfigs:
      type: object
      description: >
        Variant-specific configuration. For `custom` variant, `systemPrompt` is
        required. For `abandoned_cart`, `systemPrompt` is optional (overrides
        the generated one). `variables` defines the fields expected in the call
        payload.
      properties:
        systemPrompt:
          type: string
          description: >-
            Custom system prompt. Required for custom variant; overrides the
            generated prompt for abandoned_cart.
          example: ''
        variables:
          type: array
          description: Variables expected in the call payload for this assistant.
          items:
            $ref: '#/components/schemas/AdditionalField'
    TrainingData:
      type: object
      properties:
        faq:
          type: array
          description: List of Question-Answer pairs for training.
          items:
            $ref: '#/components/schemas/faq'
    KnowledgeBase:
      type: object
      properties:
        documents:
          type: array
          description: >-
            List of large documents (PDF, Docx, TXT) for deep knowledge
            retrieval.
          items:
            type: object
            required:
              - url
              - title
            properties:
              url:
                type: string
                format: uri
                description: Publicly accessible URL of the document.
              title:
                type: string
                description: Name/Title of the document for citation.
              type:
                type: string
                enum:
                  - pdf
                  - txt
                  - docx
                  - markdown
    CallInsightPlan:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/InsightField'
      description: Map of insight names to their expected structure.
    AdditionalField:
      type: object
      required:
        - name
      properties:
        name:
          type: string
        type:
          type: string
          enum:
            - string
            - number
            - boolean
            - object
            - array
          default: string
        isRequired:
          type: boolean
        fields:
          type: array
          items:
            $ref: '#/components/schemas/AdditionalField'
    faq:
      type: object
      required:
        - question
        - answer
      properties:
        question:
          type: string
          example: What is your return policy?
        answer:
          type: string
          example: We offer a 7-day return policy for unused items.
    InsightField:
      type: object
      required:
        - type
        - description
        - required
      properties:
        type:
          type: string
          enum:
            - number
            - boolean
            - string
        description:
          type: string
        required:
          type: boolean
        enum:
          type: array
          items:
            type: string
  securitySchemes:
    PublicKeyAuth:
      type: apiKey
      in: header
      name: x-public-key
    PrivateKeyAuth:
      type: apiKey
      in: header
      name: x-private-key

````