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

# Restore saved agent version

> Copies a saved version into staging by default. Use target=default only when an immediate live restore is intentional; staging restores still require publish.



## OpenAPI

````yaml post /api/v2/agent/{agentConfigId}/versions/{versionId}/restore
openapi: 3.0.0
info:
  version: 2.0.0
  title: Vida API
  description: Vida API Documentation
servers:
  - url: https://api.vida.dev
    description: Vida Production
    variables:
      baseUrl:
        default: api.vida.dev
        description: Production API Root
security: []
tags:
  - name: Agents
  - name: Inbound Email
    description: Control which senders may create inbound email work for an Agent.
  - name: Features
    description: Inspect capabilities available within an account hierarchy.
  - name: Conversation Logs
    description: Query conversation activity and calculate account-level metrics.
  - name: Computer Agents
    description: Set up, configure, inspect, and manage Vida Computer Agents.
  - name: Computer Agent Sessions
    description: View and reset Computer Agent sessions.
  - name: Accounts
  - name: Agent Templates
    description: Create, manage, and apply reusable Agent configurations.
paths:
  /api/v2/agent/{agentConfigId}/versions/{versionId}/restore:
    post:
      tags:
        - Agents
      summary: Restore saved agent version
      description: >-
        Copies a saved version into staging by default. Use target=default only
        when an immediate live restore is intentional; staging restores still
        require publish.
      parameters:
        - name: agentConfigId
          in: path
          required: true
          schema:
            type: string
          description: Live agent configuration ID used for this account version history.
        - name: versionId
          in: path
          required: true
          schema:
            type: string
          description: Epoch-ms score of the snapshot
          example: 1750195000123
        - name: targetAccountId
          in: query
          description: Account whose configuration should be restored.
          required: true
          schema:
            type: integer
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                target:
                  type: string
                  enum:
                    - staging
                    - default
                  default: staging
      responses:
        '200':
          description: Snapshot restored
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  restored:
                    $ref: '#/components/schemas/AgentConfigurationRead'
      security:
        - apiKeyAuth: []
components:
  schemas:
    AgentConfigurationRead:
      allOf:
        - type: object
          description: >-
            Writable staging configuration. Omitted fields retain their current
            values.
          properties:
            title:
              type: string
              description: Display name for the agent.
            description:
              type: string
              description: Short description of the agent.
            brandName:
              type: string
              description: Brand name the agent represents.
            agentInstructions:
              type: string
              description: >-
                Primary instructions for voice, messaging, and Computer Agent
                work.
            welcomeMessage:
              type: string
              description: >-
                Greeting used at the beginning of a conversation. Prefix with
                prompt: to generate the greeting from instructions.
            links:
              type: array
              items:
                type: string
                format: uri
              description: Web pages supplied as agent knowledge.
            keywords:
              type: array
              items:
                type: string
              description: Searchable labels for the agent.
            agentModel:
              type: string
              description: Model identifier returned by GET /api/v2/models/supported.
            agentThinking:
              type: string
              enum:
                - low
              nullable: true
              description: Reasoning budget for supported models; null disables it.
            agentThinkingModel:
              type: string
              nullable: true
              description: >-
                Model used by Pause & Think and optional post-conversation
                reasoning.
            postConvoForceThinking:
              type: boolean
              description: >-
                Use the thinking model for post-conversation work when the
                primary model is not reasoning-enabled.
            timezone:
              type: string
              description: >-
                IANA timezone used for scheduling and time-sensitive
                instructions.
              example: America/Chicago
            agentVoice:
              type: string
              description: Exact voice ID returned by GET /api/v2/agent/voices.
            agentTtsEngine:
              type: string
              nullable: true
              description: >-
                Text-to-speech engine used when speech-to-speech mode is
                disabled.
            agentLang:
              type: string
              enum:
                - en-US
                - multi
                - es-MX
                - es-ES
                - es-US
              description: >-
                Primary spoken language. Use multi only with a compatible voice
                and speech mode.
            agentS2SEngine:
              type: string
              enum:
                - openai
                - gemini
              nullable: true
              description: >-
                Speech-to-speech engine; null uses separate speech recognition
                and synthesis.
            agentSttEngine:
              type: string
              enum:
                - google
                - deepgram
                - deepgramflux
                - openai
              description: >-
                Speech recognition engine used when speech-to-speech mode is
                disabled.
            agentSttSmartFormatting:
              type: boolean
              description: >-
                Apply smart formatting when supported by the selected speech
                recognition engine.
            actions:
              type: array
              items:
                type: object
                required:
                  - name
                properties:
                  name:
                    type: string
                    description: >-
                      Function identifier returned by GET
                      /api/v2/agent/functions.
                  instructions:
                    type: string
                    description: When and how the agent should use this function.
              description: Functions enabled for this agent.
            reportingFields:
              type: array
              items:
                type: object
                required:
                  - key
                  - label
                  - instructions
                  - values
                properties:
                  key:
                    type: string
                    description: Stable field key used in conversation results.
                  label:
                    type: string
                    description: Human-readable field name.
                  instructions:
                    type: string
                    description: How the agent should determine the field value.
                  values:
                    type: object
                    required:
                      - kind
                    additionalProperties: false
                    properties:
                      kind:
                        type: string
                        enum:
                          - boolean
                          - choices
                          - number
                          - text
                        description: Value type the agent must return for this field.
                      choices:
                        type: array
                        minItems: 1
                        uniqueItems: true
                        items:
                          type: string
                          minLength: 1
                        description: >-
                          Allowed values when kind is choices; omit for other
                          kinds.
              description: Agent-level structured fields collected after a conversation.
            apps:
              type: array
              items:
                type: object
                required:
                  - appId
                  - version
                  - instructions
                properties:
                  appId:
                    type: string
                    description: App identifier returned by GET /api/v2/apps.
                  version:
                    type: string
                    description: Installed app version.
                  instructions:
                    type: string
                    description: When and how the agent should use the app.
                  enabled:
                    type: boolean
                    default: true
                    description: Whether this app assignment is enabled for the agent.
              description: Installed apps assigned to this agent.
            skills:
              type: array
              items:
                type: object
                required:
                  - slug
                  - instructions
                properties:
                  slug:
                    type: string
                    description: Computer Agent skill identifier.
                  instructions:
                    type: string
                    description: Agent-specific instructions for using the skill.
              description: Computer Agent skills assigned at publish time.
            computerDelegateAccountId:
              type: integer
              nullable: true
              description: >-
                Account ID of the Computer Agent that performs delegated
                Computer work.
            heartbeatInstructions:
              type: string
              description: >-
                Work the Computer Agent should perform during scheduled
                check-ins.
            heartbeatEvery:
              type: string
              description: Heartbeat interval such as 15m, 1h, or 1h30m.
            heartbeatConfig:
              type: object
              description: >-
                Advanced Computer Agent heartbeat settings. This object replaces
                the previous advanced settings when supplied, so preserve fields
                you do not intend to remove.
              additionalProperties: false
              properties:
                activeHours:
                  type: object
                  required:
                    - start
                    - end
                  additionalProperties: false
                  description: Daily window in which scheduled heartbeat work may start.
                  properties:
                    start:
                      type: string
                      pattern: ^([01]\d|2[0-3]):[0-5]\d$
                      description: Window start in 24-hour HH:MM format.
                      example: '08:00'
                    end:
                      type: string
                      pattern: ^(?:([01]\d|2[0-3]):[0-5]\d|24:00)$
                      description: Window end in 24-hour HH:MM format; 24:00 is allowed.
                      example: '18:00'
                    timezone:
                      type: string
                      description: >-
                        IANA timezone, user, or local. Omit to use the Computer
                        Agent default.
                      example: America/Chicago
                model:
                  type: string
                  minLength: 1
                  description: >-
                    Model label attached to heartbeat work. This does not
                    replace the Agent configuration's agentModel.
                session:
                  type: string
                  minLength: 1
                  description: Session identifier used for heartbeat work.
                target:
                  type: string
                  minLength: 1
                  description: >-
                    Delivery target type or channel selected for heartbeat
                    results.
                to:
                  type: string
                  minLength: 1
                  description: Destination within the selected heartbeat target.
                accountId:
                  type: string
                  minLength: 1
                  description: >-
                    Channel account identifier used for heartbeat delivery when
                    a channel has multiple accounts.
                directPolicy:
                  type: string
                  enum:
                    - allow
                    - block
                  description: >-
                    Whether heartbeat results may be delivered to direct-message
                    destinations.
                includeReasoning:
                  type: boolean
                  description: Include model reasoning in heartbeat output when supported.
                includeSystemPromptSection:
                  type: boolean
                  description: >-
                    Include the Computer Agent system-prompt section in
                    heartbeat context.
                ackMaxChars:
                  type: integer
                  description: >-
                    Maximum length treated as a simple heartbeat acknowledgement
                    rather than a result that should be delivered.
                  minimum: 0
                suppressToolErrorWarnings:
                  type: boolean
                  description: >-
                    Suppress automatic raw tool-error notices while still
                    allowing the agent to report an unrecovered problem
                    intentionally.
                timeoutSeconds:
                  type: integer
                  description: Maximum heartbeat execution time in seconds.
                  minimum: 1
                lightContext:
                  type: boolean
                  description: Use a smaller context for heartbeat work.
                isolatedSession:
                  type: boolean
                  description: >-
                    Run heartbeat work in a separate session from the agent's
                    main conversation.
                skipWhenBusy:
                  type: boolean
                  description: Skip a scheduled heartbeat while the agent is already busy.
            backgroundAudio:
              oneOf:
                - type: string
                  format: uri
                - type: object
                  required:
                    - url
                  properties:
                    url:
                      type: string
                      format: uri
                    loop:
                      type: boolean
                      default: true
                    gain:
                      type: integer
                      default: 0
                    startAfterGreeting:
                      type: boolean
                      default: true
                    track:
                      type: string
                      enum:
                        - bg
                        - fx
              description: Optional HTTP(S) audio played during calls.
            waitOnAnswer:
              type: integer
              description: Milliseconds to wait before speaking the greeting.
              minimum: 0
            waitToGreet:
              type: boolean
              description: Wait for the caller to speak before delivering the greeting.
            postAnswerDtmf:
              type: string
              description: DTMF digits sent immediately after an outbound call is answered.
            interruptionWordCount:
              type: integer
              description: Words required before caller speech interrupts the agent.
              minimum: 0
            interruptionMinimumSpeakingTime:
              type: number
              description: Seconds the agent must speak before interruption is allowed.
              minimum: 0
            speakingTimeout:
              type: integer
              description: Milliseconds of silence used to detect the end of caller speech.
              minimum: 0
            speechProcessingDelay:
              type: integer
              description: >-
                Milliseconds to wait before sending recognized speech to the
                model.
              minimum: 0
            speechProcessingDelayInterruptionStep:
              type: integer
              description: >-
                Milliseconds added to speech processing delay after an
                interruption.
              minimum: 0
            speechProcessingDelayMaxMultiplier:
              type: integer
              description: >-
                Maximum interruption multiplier applied to speech processing
                delay.
              minimum: 0
            callerResponseTimeout:
              type: number
              description: Seconds of caller silence before the agent checks in.
              minimum: 0
            callerResponseTimeoutHangupCounter:
              type: integer
              description: Unanswered check-ins before the agent ends the call.
              minimum: 0
            ignoreSpeech:
              type: array
              items:
                type: string
              description: Caller phrases that should not be treated as a response.
            noContactInjection:
              type: boolean
              description: Exclude the caller contact record from agent context.
            noConvoHistory:
              type: boolean
              description: Exclude prior conversation summaries from agent context.
            autoRecordingNotification:
              type: string
              enum:
                - 'true'
                - 'false'
                - always
              description: >-
                Recording notice policy: jurisdiction-based, never, or every
                call.
            recordingNotificationPhrase:
              type: string
              description: Phrase spoken when a recording notice is required.
            preAnswerRingTime:
              type: integer
              description: Seconds to ring before answering an inbound call.
              minimum: 0
              maximum: 60
              nullable: true
            preAnswerSkipProcessingResults:
              type: boolean
              description: >-
                Place raw Pre Answer results directly into context without an
                additional model pass.
            useAgentNumberForTransfers:
              type: boolean
              description: Use the agent phone number as caller ID for transfers.
            confirmTransfers:
              type: boolean
              description: Require the recipient to confirm before completing a transfer.
            monitorTransfers:
              type: boolean
              description: Continue monitoring the call after a transfer.
            attendedTransfers:
              type: boolean
              description: Keep the agent with the caller while the recipient is reached.
            attendedTransferBridgeTrigger:
              type: string
              nullable: true
              description: Recipient response required to bridge an attended transfer.
            attendedTransferCheckInTimeout:
              type: integer
              description: Seconds before the agent checks in during an attended transfer.
              minimum: 0
            transferConfirmTimeout:
              type: integer
              description: Seconds to wait for transfer confirmation.
              minimum: 0
            announceTransferConnecting:
              type: boolean
              description: Announce that a transfer is being connected.
            announceTransferConnected:
              type: boolean
              description: Announce when a transfer has connected.
            preTransferNotificationStart:
              type: string
              description: Message spoken when Pre Transfer work begins.
            preTransferNotificationEnd:
              type: string
              description: Message spoken when Pre Transfer work completes.
            enableRingback:
              type: boolean
              description: Play ringback while the agent is connecting an outbound call.
            enableTransferRingback:
              type: boolean
              description: Play ringback while a transfer is connecting.
            cnamAutoRejectRegex:
              type: string
              nullable: true
              description: >-
                Pattern used to reject matching inbound caller names before
                answer.
            cnamAutoRejectCode:
              type: integer
              description: SIP response code used when the reject pattern matches.
            cnamAutoTransferRegex:
              type: string
              nullable: true
              description: >-
                Pattern used to transfer matching inbound caller names before
                answer.
            cnamAutoTransferDestination:
              type: string
              nullable: true
              description: >-
                Phone number, extension, or PBX destination used by automatic
                transfer.
        - type: object
          properties:
            id:
              type: string
              readOnly: true
              description: This configuration record's agentConfigId.
            actions:
              type: array
              items:
                allOf:
                  - type: object
                    required:
                      - name
                    properties:
                      name:
                        type: string
                        description: >-
                          Function identifier returned by GET
                          /api/v2/agent/functions.
                      instructions:
                        type: string
                        description: When and how the agent should use this function.
                  - type: object
                    properties:
                      placeholder:
                        type: string
                        readOnly: true
                        description: Configuration guidance for this function.
                      allowed:
                        type: boolean
                        readOnly: true
                        description: >-
                          Whether the selected account can currently use the
                          function.
                      reason:
                        type: string
                        nullable: true
                        readOnly: true
                        description: Why the function is unavailable.
                      missingRequirement:
                        type: string
                        nullable: true
                        readOnly: true
                        description: >-
                          Account setup required before the function can be
                          used.
            activeEventRules:
              type: array
              items:
                type: string
              readOnly: true
              description: Slots that currently reference this configuration.
            effectiveReportingFields:
              type: array
              items:
                allOf:
                  - type: object
                    required:
                      - key
                      - label
                      - instructions
                      - values
                    properties:
                      key:
                        type: string
                        description: Stable field key used in conversation results.
                      label:
                        type: string
                        description: Human-readable field name.
                      instructions:
                        type: string
                        description: How the agent should determine the field value.
                      values:
                        type: object
                        required:
                          - kind
                        additionalProperties: false
                        properties:
                          kind:
                            type: string
                            enum:
                              - boolean
                              - choices
                              - number
                              - text
                            description: Value type the agent must return for this field.
                          choices:
                            type: array
                            minItems: 1
                            uniqueItems: true
                            items:
                              type: string
                              minLength: 1
                            description: >-
                              Allowed values when kind is choices; omit for
                              other kinds.
                  - type: object
                    required:
                      - source
                    properties:
                      source:
                        type: string
                        enum:
                          - reseller
                          - organization
                          - campaign
                        readOnly: true
              readOnly: true
              description: >-
                Final reporting fields after reseller, organization, and
                agent-level overrides.
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: query
      name: token
      description: Vida API Token

````