---
title: "Create agent version"
method: POST
path: "/agents/{agentId}/versions"
tags: ["Agent Versions"]
---

# Create agent version

`POST /agents/{agentId}/versions`

## Request

- Base URL: `https://app.freyavoice.ai/api/v2`
- URL: `https://app.freyavoice.ai/api/v2/agents/{agentId}/versions`
- Auth: HTTP bearer

Creates a new version of an agent with the provided configuration snapshot.

## Path parameters

- `agentId` string, required

## Request body

- object
  - `workspaceId` string, uuid, required
  - `config` object, required
    - `llmConfig` object, required
      - `provider` string, required
      - `model` string, required
      - `systemPrompt` string, required
      - `firstMessage` string, required
      - `firstMessageMode` 'assistant-speaks-first-with-model-generated-message' | 'assistant-speaks-first' | 'assistant-waits-for-user' | 'null', nullable
      - `disableInterruptionsDuringFirstMessage` boolean
      - `maxTokens` integer
      - `temperature` number
      - `thinkingBudgetEnabled` boolean, nullable
      - `thinkingBudget` integer, nullable
      - `tools` object[]
        - `type` 'function', required
        - `function` object, required
          - `name` string, required
          - `handler` string, required
          - `description` string, required
          - `parameters` object, required
            - `type` string, required
            - `properties` object
            - `required` string[]
            - `items` unknown
          - `transition_to` string
        - `config` object
          - `maxPerNTurns` integer
          - `alwaysRunsAt` string[]
          - `timeoutMs` integer
      - `additionalSettings` object, nullable
    - `ttsConfig` object, required
      - `provider` string, required
      - `model` string, nullable, required
      - `voiceId` string, required
      - `language` string, nullable
      - `speed` number, nullable
      - `stability` number, nullable, required
      - `similarityBoost` number, nullable, required
      - `additionalSettings` object, nullable
      - `startSpeakingPlan` object, nullable
        - `waitSeconds` number
      - `stopSpeakingPlan` object, nullable
        - `numberOfWords` integer
        - `voiceSeconds` number
        - `backOffSeconds` number
    - `sstConfig` object, required
      - `provider` string, required
      - `model` string, nullable, required
      - `language` string, nullable
      - `temperature` number, nullable, required
      - `punctuate` boolean, nullable
      - `diarize` boolean, nullable
      - `additionalSettings` object, nullable
    - `complianceConfig` object, required
      - `pciDss` boolean
      - `mifidIi` boolean
      - `euAiAct` boolean
      - `soc2` boolean
    - `callTimeoutSettings` object, nullable
      - `silenceTimeout` integer
      - `maximumDuration` integer
    - `voicemailDetection` object, nullable
      - `enabled` boolean
      - `messageMode` 'llm' | 'custom' | 'none'
      - `staticMessage` string, nullable
      - `voicemailResponseDelay` number
    - `postConversationAnalysis` object, nullable
      - `generateSummary` boolean
      - `summaryPrompt` string, nullable
      - `generateStructuredData` boolean
      - `structuredDataPrompt` string, nullable
      - `autoDetectProblems` boolean
      - `structuredDataSchema` object[]
        - `name` string, required
        - `type` 'string' | 'number' | 'rating' | 'checkbox' | 'range' | 'enum' | 'array'
        - `description` string, nullable
        - `enums` string[]
        - `defaultValue` string, nullable
        - `rangeMin` number, nullable
        - `rangeMax` number, nullable
    - `privacyConfig` object, nullable
      - `enableRecording` boolean
      - `getRecordingConsent` boolean
      - `recordingConsentText` string, nullable
      - `stopSecs` number
      - `preSpeechMs` number
      - `maxDurationSecs` number
    - `turnAnalyzerConfig` object
      - `provider` 'local' | 'fal'
      - `url` string, uri, nullable
      - `modelPath` string, nullable
  - `parentVersionId` string, uuid

## Response `200`

Version created

- object
  - `success` true, required
  - `data` object, required
    - `message` string, required
    - `result` object, required
      - `version` object, required
        - `id` string, uuid, required
        - `agentId` string, required
        - `workspaceId` string, uuid, required
        - `versionNumber` integer, required
        - `versionType` 'edit' | 'rollback'
        - `parentVersionId` string, uuid, nullable, required
        - `isActive` boolean, required
        - `configSnapshot` object, required
          - `llmConfig` object, required
            - `provider` string, required
            - `model` string, required
            - `systemPrompt` string, required
            - `firstMessage` string, required
            - `firstMessageMode` 'assistant-speaks-first-with-model-generated-message' | 'assistant-speaks-first' | 'assistant-waits-for-user' | 'null', nullable
            - `disableInterruptionsDuringFirstMessage` boolean
            - `maxTokens` integer
            - `temperature` number
            - `thinkingBudgetEnabled` boolean, nullable
            - `thinkingBudget` integer, nullable
            - `tools` object[]
              - …
            - `additionalSettings` object, nullable
          - `ttsConfig` object, required
            - `provider` string, required
            - `model` string, nullable, required
            - `voiceId` string, required
            - `language` string, nullable
            - `speed` number, nullable
            - `stability` number, nullable, required
            - `similarityBoost` number, nullable, required
            - `additionalSettings` object, nullable
            - `startSpeakingPlan` object, nullable
              - …
            - `stopSpeakingPlan` object, nullable
              - …
          - `sstConfig` object, required
            - `provider` string, required
            - `model` string, nullable, required
            - `language` string, nullable
            - `temperature` number, nullable, required
            - `punctuate` boolean, nullable
            - `diarize` boolean, nullable
            - `additionalSettings` object, nullable
          - `complianceConfig` object, required
            - `pciDss` boolean
            - `mifidIi` boolean
            - `euAiAct` boolean
            - `soc2` boolean
          - `callTimeoutSettings` object, nullable
            - `silenceTimeout` integer
            - `maximumDuration` integer
          - `voicemailDetection` object, nullable
            - `enabled` boolean
            - `messageMode` 'llm' | 'custom' | 'none'
            - `staticMessage` string, nullable
            - `voicemailResponseDelay` number
          - `postConversationAnalysis` object, nullable
            - `generateSummary` boolean
            - `summaryPrompt` string, nullable
            - `generateStructuredData` boolean
            - `structuredDataPrompt` string, nullable
            - `autoDetectProblems` boolean
            - `structuredDataSchema` object[]
              - …
          - `privacyConfig` object, nullable
            - `enableRecording` boolean
            - `getRecordingConsent` boolean
            - `recordingConsentText` string, nullable
            - `stopSecs` number
            - `preSpeechMs` number
            - `maxDurationSecs` number
          - `turnAnalyzerConfig` object
            - `provider` 'local' | 'fal'
            - `url` string, uri, nullable
            - `modelPath` string, nullable
        - `configDiff` object, nullable, required
        - `createdBy` string, uuid, nullable, required
        - `createdAt` string, date-time, required

## Other responses

- `400`: Validation error
- `401`: Missing or invalid token
- `404`: Agent not found
- `500`: Server error

---

[API](https://skmtc.dev/freyavoice/apis/freyavoice-api.md) - [All operations](https://skmtc.dev/freyavoice/apis/freyavoice-api/llms.txt) - [OpenAPI document](https://skmtc.dev/freyavoice/apis/freyavoice-api/revisions/153d120f0c73?raw)
