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

# List versions, newest first



## OpenAPI

````yaml /api-reference/openapi.json get /v1/assistants/{id}/versions
openapi: 3.1.0
info:
  description: >-
    Larynth control-plane API v1. Errors are RFC 9457 problem+json with a stable
    type URI per code (x-larynth-error-codes). Operations carry
    x-larynth-min-role, x-larynth-auth, x-larynth-scope, x-larynth-idempotency
    and x-larynth-sdk.
  title: Larynth API
  version: 1.0.0
servers:
  - url: https://api-us.larynth.com
    description: US region
security: []
tags:
  - description: Dashboard login and session. Excluded from SDKs.
    name: auth
    x-larynth-sdk: false
  - description: Tenant settings and members. Dashboard session only.
    name: tenants
    x-larynth-sdk: true
  - description: API keys. Dashboard session only.
    name: api-keys
    x-larynth-sdk: true
  - description: Activity log and its exports. Dashboard session only.
    name: audit
    x-larynth-sdk: true
  - description: >-
      Notification preferences, Slack and Telegram channels, browser push.
      Dashboard session only.
    name: notifications
    x-larynth-sdk: true
  - description: >-
      Export and deletion requests for a workspace or account. Dashboard session
      only.
    name: data-rights
    x-larynth-sdk: true
  - description: Models and voices available to assistants.
    name: catalog
    x-larynth-sdk: true
  - description: Assistants and their immutable published versions.
    name: assistants
    x-larynth-sdk: true
  - description: >-
      Phone numbers, routing hours, area codes, branded calling and
      bring-your-own SIP trunks.
    name: numbers
    x-larynth-sdk: true
  - description: Contacts and CSV imports.
    name: contacts
    x-larynth-sdk: true
  - description: >-
      Consent, revocations, do-not-call, pre-dial decisions, outbound readiness
      and calling rules.
    name: compliance
    x-larynth-sdk: true
  - description: >-
      Business and identity verification that unlocks outbound calling.
      Dashboard session only.
    name: verification
    x-larynth-sdk: true
  - description: Outbound campaigns.
    name: campaigns
    x-larynth-sdk: true
  - description: Calls, turns and events.
    name: calls
    x-larynth-sdk: true
  - description: Encrypted call recordings.
    name: recordings
    x-larynth-sdk: true
  - description: Prepaid balance, ledger, top-ups and rates (micro-USD).
    name: billing
    x-larynth-sdk: true
  - description: Webhook endpoints and deliveries (Standard Webhooks signatures).
    name: webhooks
    x-larynth-sdk: true
  - description: >-
      Knowledge bases built from files and websites, attached to assistant
      versions.
    name: knowledge
    x-larynth-sdk: true
  - description: Live updates over WebSocket. Dashboard session only.
    name: realtime
    x-larynth-sdk: true
  - description: Platform operator endpoints. Excluded from SDKs.
    name: admin
    x-larynth-sdk: false
  - description: Workspaces of the signed-in user. Dashboard session only.
    name: workspaces
    x-larynth-sdk: true
  - description: >-
      Spending requests from Members to Owners and Admins. Dashboard session
      only.
    name: spending
    x-larynth-sdk: true
  - description: Home brief and setup checklist. Dashboard session only.
    name: home
    x-larynth-sdk: true
  - description: Shared action inbox of a workspace. Dashboard session only.
    name: inbox
    x-larynth-sdk: true
paths:
  /v1/assistants/{id}/versions:
    get:
      tags:
        - assistants
      summary: List versions, newest first
      operationId: listAssistantVersions
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
        - description: Page size
          explode: false
          in: query
          name: limit
          schema:
            default: 50
            description: Page size
            format: int64
            maximum: 200
            minimum: 1
            type: integer
        - description: Opaque cursor from next_cursor of the previous page
          explode: false
          in: query
          name: after
          schema:
            description: Opaque cursor from next_cursor of the previous page
            maxLength: 512
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageAssistantVersion'
          description: OK
        '400':
          $ref: '#/components/responses/Problem400'
        '401':
          $ref: '#/components/responses/Problem401'
        '403':
          $ref: '#/components/responses/Problem403'
        '404':
          $ref: '#/components/responses/Problem404'
        '422':
          $ref: '#/components/responses/Problem422'
        '429':
          $ref: '#/components/responses/Problem429'
        '500':
          $ref: '#/components/responses/Problem500'
      security:
        - session: []
        - apiKey:
            - assistants:read
components:
  schemas:
    PageAssistantVersion:
      additionalProperties: false
      properties:
        data:
          items:
            $ref: '#/components/schemas/AssistantVersion'
          type: array
        next_cursor:
          description: Cursor for the next page; null on the last page
          type:
            - string
            - 'null'
      required:
        - data
        - next_cursor
      type: object
    AssistantVersion:
      additionalProperties: false
      properties:
        assistant_id:
          format: uuid
          type: string
        call_handling:
          $ref: '#/components/schemas/CallHandling'
        created_at:
          format: date-time
          type: string
        created_by:
          type: string
        denoise:
          type: boolean
        disclosure:
          $ref: '#/components/schemas/DisclosureSpec'
        fillers:
          items:
            type: string
          maxItems: 20
          type: array
        greeting_text:
          maxLength: 1000
          minLength: 1
          type: string
        guardrails:
          $ref: '#/components/schemas/GuardrailsSpec'
          description: >-
            Owner-added guardrails; the built-in rules from listGuardrailRules
            always apply and cannot be removed
        id:
          format: uuid
          type: string
        interruption_profile:
          $ref: '#/components/schemas/InterruptionProfile'
        knowledge_base_ids:
          description: >-
            Knowledge bases the assistant can search with the search_knowledge
            tool; each must be ready when the version is published
          items:
            type: string
          maxItems: 5
          type: array
          uniqueItems: true
        language:
          pattern: ^[a-z]{2,3}(-[A-Z]{2})?$
          type: string
        language_voices:
          additionalProperties:
            type: string
          description: >-
            Voice id per languages_extra entry, on the same tts model; unset
            uses the main voice when it speaks the language
          type: object
        languages_extra:
          description: >-
            Languages the agent switches to when the caller speaks them; only
            languages the catalog marks switchable
          items:
            type: string
          maxItems: 4
          type: array
          uniqueItems: true
        latency:
          $ref: '#/components/schemas/LatencySettings'
        llm_fallback_model_ids:
          items:
            type: string
          maxItems: 3
          type: array
        llm_model_id:
          description: Required for cascade
          format: uuid
          type: string
        llm_params:
          additionalProperties: {}
          type: object
        max_call_seconds:
          default: 1800
          format: int64
          maximum: 14400
          minimum: 60
          type: integer
        mode:
          enum:
            - cascade
            - s2s
          type: string
        post_call:
          $ref: '#/components/schemas/PostCallSettings'
          description: Post-call summary, data extraction and success evaluation
        published_at:
          format: date-time
          type: string
        s2s_model_id:
          description: Required for s2s
          format: uuid
          type: string
        s2s_params:
          additionalProperties: {}
          type: object
        stt_model_id:
          description: Required for cascade
          format: uuid
          type: string
        stt_params:
          additionalProperties: {}
          type: object
        system_prompt:
          maxLength: 32000
          type: string
        tools:
          items:
            $ref: '#/components/schemas/AssistantTool'
          maxItems: 32
          type: array
        transfer_fallback:
          description: What happens when nobody picks up a transfer
          enum:
            - take_message
            - next_target
            - end
          type: string
        tts_model_id:
          description: Required for cascade
          format: uuid
          type: string
        tts_params:
          additionalProperties: {}
          type: object
        tts_voice_id:
          description: Required for cascade
          format: uuid
          type: string
        turn_preset:
          description: >-
            Turn-taking preset from listTurnPresets; custom means turn_profile
            and interruption_profile hold the advanced values. Unset is balanced
          enum:
            - patient
            - balanced
            - snappy
            - custom
          type: string
        turn_profile:
          $ref: '#/components/schemas/TurnProfile'
        version:
          format: int64
          type: integer
        vocabulary:
          $ref: '#/components/schemas/Vocabulary'
      required:
        - id
        - assistant_id
        - version
        - created_by
        - created_at
        - mode
        - language
        - system_prompt
        - greeting_text
      type: object
    Problem:
      additionalProperties: true
      properties:
        api_base:
          description: API base URL of the workspace's home region (workspace.other_region)
          type: string
        attempts_left:
          description: Code attempts left in this sign-in step
          format: int64
          type: integer
        campaign_ids:
          description: Campaigns that use the number (numbers.in_use)
          items:
            type: string
          type: array
        checks:
          description: Failed launch checks (campaign.preflight_failed)
          items:
            $ref: '#/components/schemas/PreflightCheck'
          type: array
        code:
          description: >-
            Stable machine-readable error code; compliance denials carry the
            dial.* rule id
          type: string
        contact_id:
          description: Existing contact (contacts.exists)
          type: string
        detail:
          type: string
        errors:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
        instance:
          type: string
        optout_line:
          description: The number is the opt-out line (numbers.in_use)
          type: boolean
        reauth_methods:
          description: Ways to re-authenticate, in preference order (auth.reauth_required)
          items:
            type: string
          type: array
        request_kind:
          description: Spending request kind to file instead (spending.approval_required)
          enum:
            - number_purchase
            - campaign_launch
          type: string
        retry_at:
          description: Next moment the request may succeed (calling windows)
          format: date-time
          type: string
        revision:
          description: >-
            Current revision (numbers.routing_conflict,
            campaign.revision_conflict)
          format: int64
          type: integer
        status:
          format: int64
          type: integer
        title:
          type: string
        type:
          description: Stable URI identifying the error code
          type: string
        updated_by_name:
          type: string
      required:
        - type
        - title
        - status
        - code
      type: object
    CallHandling:
      additionalProperties: false
      properties:
        ambient_sound:
          description: Low background sound the caller hears; never recorded. Unset is off
          enum:
            - office
            - cafe
            - call_center
          type: string
        dtmf_end_key:
          description: 'Key that ends a keypad entry. Unset is #'
          enum:
            - '#'
            - '*'
            - none
          type: string
        dtmf_input:
          description: >-
            Keypad entries reach the agent as caller input; digits are masked in
            transcripts. Unset is on. On outbound calls a lone 9 always opts the
            caller out
          type: boolean
        dtmf_max_digits:
          description: An entry also ends at this many digits; 0 is no limit
          format: int64
          maximum: 32
          minimum: 0
          type: integer
        dtmf_wait_ms:
          description: An entry also ends this long after the last key. Unset is 3000
          format: int64
          maximum: 10000
          minimum: 1000
          type: integer
        end_on_goodbye:
          type: boolean
        idle_reminder:
          description: >-
            Ask once whether the caller is still there before the silence
            hang-up. Unset is on
          type: boolean
        ivr_goal:
          description: What the agent tries to reach in a phone menu, for example billing
          maxLength: 300
          type: string
        ivr_navigation:
          description: >-
            Navigate phone menus on outbound calls, with at most 2 minutes in
            menus and 3 minutes on hold; the call ends as no_resolution with
            label phone_menu when the menu cannot be passed. Unset is off
          type: boolean
        max_reply:
          enum:
            - short
            - normal
            - long
          type: string
        recording:
          description: >-
            Record calls of this agent. Unset is on; off still keeps transcripts
            and the caller hears that the call may be transcribed
          type: boolean
        silence_end_s:
          description: End the call after this much caller silence. Unset is 30
          enum:
            - 15
            - 30
            - 60
          format: int64
          type: integer
        voicemail_action:
          description: >-
            What the agent does on voicemail. Unset follows the platform
            suggestion: hang_up until number reputation is cleared, then
            leave_message
          enum:
            - leave_message
            - hang_up
          type: string
        voicemail_detection:
          description: >-
            Detect voicemail and phone menus on outbound calls. Unset is on; a
            campaign or createCall amd_mode overrides it
          type: boolean
        voicemail_message:
          description: >-
            The purpose part of the voicemail; the business name, AI disclosure,
            callback number and any required opt-out line are added in a fixed
            template
          maxLength: 500
          type: string
      type: object
    DisclosureSpec:
      additionalProperties: false
      properties:
        inbound_ai:
          description: >-
            The inbound AI disclosure; publishing off needs an active owner
            attestation. Unset is on
          enum:
            - 'on'
            - 'off'
          type: string
      type: object
    GuardrailsSpec:
      additionalProperties: false
      properties:
        blocked_topics:
          items:
            $ref: '#/components/schemas/GuardrailTopic'
          maxItems: 30
          type: array
        custom_rules:
          items:
            $ref: '#/components/schemas/GuardrailCustomRule'
          maxItems: 20
          type: array
      type: object
    InterruptionProfile:
      additionalProperties: false
      properties:
        enabled:
          type: boolean
        false_interruption_ms:
          format: int64
          maximum: 10000
          minimum: 0
          type: integer
        ignore_words:
          items:
            type: string
          maxItems: 100
          type: array
        keep_echo_words:
          description: >-
            Count caller words that repeat the agent's own reply (line echo) as
            barge-in words
          type: boolean
        min_speech_ms:
          format: int64
          maximum: 10000
          minimum: 0
          type: integer
        min_words:
          format: int64
          maximum: 20
          minimum: 0
          type: integer
        vad_only_min_speech_ms:
          description: >-
            Barge-in on voice activity alone, before the STT has heard a word,
            needs this much speech. Unset is 1000
          format: int64
          maximum: 10000
          minimum: 0
          type: integer
      type: object
    LatencySettings:
      additionalProperties: false
      properties:
        force_finalize:
          description: >-
            Ask the STT provider to end its turn when the turn is committed on a
            non-STT signal. Unset uses the engine node default
          type: boolean
        short_first_chunk:
          description: >-
            Cut the first TTS chunk early and send it as its own utterance for a
            faster first audio. Unset uses the engine node default
          type: boolean
        speculative_tts:
          description: >-
            Synthesise the first chunk of a speculative reply privately and play
            it only if the turn is committed. Unset uses the engine node default
          type: boolean
        speculative_tts_min_prob:
          description: >-
            Minimum eager end-of-turn probability for speculative TTS. Unset
            uses the engine node default
          format: double
          maximum: 1
          minimum: 0
          type: number
      type: object
    PostCallSettings:
      additionalProperties: false
      properties:
        extraction_fields:
          items:
            $ref: '#/components/schemas/ExtractionField'
          maxItems: 30
          type: array
        success_criteria:
          description: When set, the analysis also returns successful and reason
          maxLength: 2000
          type: string
        summary_enabled:
          description: Unset is true
          type: boolean
        summary_prompt:
          description: Overrides the default summary instruction
          maxLength: 2000
          type: string
      type: object
    AssistantTool:
      additionalProperties: false
      properties:
        class:
          enum:
            - fast
            - slow
            - terminal
          type: string
        config:
          additionalProperties: {}
          type: object
        description:
          maxLength: 2000
          minLength: 1
          type: string
        destinations:
          description: >-
            Transfer tools only (kind transfer, name transfer_call): where the
            agent may transfer the caller
          items:
            $ref: '#/components/schemas/TransferDestination'
          maxItems: 20
          type: array
        endpoint_ref:
          maxLength: 200
          type: string
        json_schema:
          additionalProperties: {}
          type: object
        kind:
          enum:
            - end_call
            - opt_out
            - http_request
            - transfer
          type: string
        name:
          pattern: ^[a-z][a-z0-9_]{0,63}$
          type: string
        timeout_ms:
          default: 8000
          format: int64
          maximum: 30000
          minimum: 100
          type: integer
      required:
        - name
        - kind
        - description
        - json_schema
        - class
      type: object
    TurnProfile:
      additionalProperties: false
      properties:
        commit_prob:
          format: double
          maximum: 1
          minimum: 0
          type: number
        commit_without_words:
          description: >-
            With STT end-of-turn primary, commit turns the STT heard no words in
            instead of discarding them as noise or echo
          type: boolean
        eager_prob:
          format: double
          maximum: 1
          minimum: 0
          type: number
        hold_max_ms:
          description: >-
            Silence a model end-of-turn commit needs at commit_prob; confident
            predictions commit sooner. Unset is 500
          format: int64
          maximum: 5000
          minimum: 0
          type: integer
        hold_min_ms:
          description: >-
            Silence a model end-of-turn commit needs at probability 1. Unset is
            200
          format: int64
          maximum: 5000
          minimum: 0
          type: integer
        max_silence_ms:
          format: int64
          maximum: 30000
          minimum: 0
          type: integer
        min_speech_ms:
          format: int64
          maximum: 10000
          minimum: 0
          type: integer
        stop_silence_ms:
          format: int64
          maximum: 10000
          minimum: 0
          type: integer
        use_stt_eot:
          type: boolean
      type: object
    Vocabulary:
      additionalProperties: false
      properties:
        keyterms:
          description: >-
            Words to recognise, sent to the speech recognizer when its catalog
            row supports them
          items:
            type: string
          maxItems: 100
          type: array
        pronunciations:
          description: >-
            How to say words in generated speech; transcripts keep the written
            word
          items:
            $ref: '#/components/schemas/Pronunciation'
          maxItems: 100
          type: array
      type: object
    PreflightCheck:
      additionalProperties: false
      properties:
        code:
          enum:
            - platform_outbound_open
            - verification
            - telemarketing_approved
            - paid_top_up
            - outbound_terms
            - script_check
            - agent_published
            - caller_id
            - audience
            - consent_coverage
            - dnc_internal
            - dnc_national
            - calling_hours
            - frequency_cap
            - holidays_sundays
            - ca_preamble
            - state_registrations
            - voicemail_optout_line
            - balance
            - daily_spend_cap
            - recheck_due
          type: string
        fix:
          $ref: '#/components/schemas/CheckFix'
        params:
          additionalProperties: {}
          type: object
        state:
          enum:
            - ok
            - warn
            - stop
            - info
          type: string
      required:
        - code
        - state
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
    GuardrailTopic:
      additionalProperties: false
      properties:
        response:
          description: What the agent says instead; unset uses the built-in polite refusal
          maxLength: 500
          type: string
        topic:
          description: A topic the agent must not discuss
          maxLength: 120
          minLength: 1
          type: string
      required:
        - topic
      type: object
    GuardrailCustomRule:
      additionalProperties: false
      properties:
        text:
          description: A rule in plain words, applied on top of the built-in rules
          maxLength: 500
          minLength: 1
          type: string
      required:
        - text
      type: object
    ExtractionField:
      additionalProperties: false
      properties:
        description:
          maxLength: 500
          type: string
        enum:
          description: Allowed values; required for type enum, rejected otherwise
          items:
            type: string
          maxItems: 20
          type: array
        name:
          pattern: ^[a-z][a-z0-9_]{0,39}$
          type: string
        required:
          description: The model must return a non-null value
          type: boolean
        type:
          enum:
            - string
            - number
            - boolean
            - enum
            - date
          type: string
      required:
        - name
        - type
      type: object
    TransferDestination:
      additionalProperties: false
      properties:
        description:
          description: When to use this destination; shown to the agent
          maxLength: 500
          type: string
        e164:
          description: Phone number; set exactly one of e164 and sip_uri
          pattern: ^\+[1-9][0-9]{1,14}$
          type: string
        mode:
          description: >-
            cold hands the caller over directly; warm puts the caller on hold,
            briefs the human, then bridges
          enum:
            - cold
            - warm
          type: string
        name:
          description: The agent picks a destination by this name
          maxLength: 64
          minLength: 1
          type: string
        ring_timeout_seconds:
          description: >-
            How long to ring the human before returning to the caller. Unset is
            25
          format: int64
          maximum: 60
          minimum: 0
          type: integer
        sip_uri:
          description: 'sip: or sips: URI; cold transfers only, by SIP REFER'
          maxLength: 256
          type: string
        whisper:
          description: >-
            Warm only: what the agent says to the human before bridging.
            Variables {{summary}} and {{destination}}
          maxLength: 1000
          type: string
      required:
        - name
        - mode
      type: object
    Pronunciation:
      additionalProperties: false
      properties:
        say_as:
          maxLength: 100
          minLength: 1
          type: string
        word:
          maxLength: 50
          minLength: 1
          type: string
      required:
        - word
        - say_as
      type: object
    CheckFix:
      additionalProperties: false
      properties:
        kind:
          enum:
            - link
            - step
          type: string
        target:
          description: Dashboard route or wizard step
          type: string
      required:
        - kind
        - target
      type: object
  responses:
    Problem400:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: Bad Request
    Problem401:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: Unauthorized
    Problem403:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: Forbidden
    Problem404:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: Not Found
    Problem422:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: Unprocessable Entity
    Problem429:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: Too Many Requests
    Problem500:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: Internal Server Error
  securitySchemes:
    session:
      description: Dashboard session cookie
      in: cookie
      name: __Host-lx_session
      type: apiKey
    apiKey:
      bearerFormat: lx_<key_id>_<secret>
      description: API key; the listed scope is required
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.