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

# create meeting invite

> Invite a persona to join a Google Meet, Zoom, or Microsoft Teams meeting.

Provide exactly one of `personaId` for a saved persona, or `personaConfig`
for a runtime persona configuration. The runtime persona configuration is
used to start the meeting session but is not stored on the meeting invite.

The invite is created in `pending` status. `displayName` is normalized to
include an AI disclosure suffix before the persona joins the meeting,
and the persona's video shows an AI label. Organizations that handle
AI disclosure themselves can ask Anam to allow `aiDisclosure: false`,
which removes both.

By default the persona joins immediately. Provide `joinAt` to schedule
the join for a future time; scheduling at least 10 minutes ahead
reserves the persona a guaranteed place on the call, which is the most
reliable way to join meetings that are planned in advance.




## OpenAPI

````yaml https://api.anam.ai/swagger.json post /v1/meetings/invites
openapi: 3.1.0
info:
  title: Anam AI API
  version: '1.0'
servers:
  - url: https://api.anam.ai
    description: Anam API
security:
  - BearerAuth: []
tags:
  - name: Sessions
  - name: Avatar Videos
  - name: Meetings
  - name: Personas
  - name: Avatars
  - name: Voices
  - name: Pronunciation Dictionaries
  - name: LLMs
  - name: Knowledge
  - name: Tools
  - name: Share Links
  - name: Engine
paths:
  /v1/meetings/invites:
    post:
      tags:
        - Meetings
      summary: Create meeting invite
      description: >
        Invite a persona to join a Google Meet, Zoom, or Microsoft Teams
        meeting.


        Provide exactly one of `personaId` for a saved persona, or
        `personaConfig`

        for a runtime persona configuration. The runtime persona configuration
        is

        used to start the meeting session but is not stored on the meeting
        invite.


        The invite is created in `pending` status. `displayName` is normalized
        to

        include an AI disclosure suffix before the persona joins the meeting,

        and the persona's video shows an AI label. Organizations that handle

        AI disclosure themselves can ask Anam to allow `aiDisclosure: false`,

        which removes both.


        By default the persona joins immediately. Provide `joinAt` to schedule

        the join for a future time; scheduling at least 10 minutes ahead

        reserves the persona a guaranteed place on the call, which is the most

        reliable way to join meetings that are planned in advance.
      operationId: createMeetingInvite
      requestBody:
        description: Meeting URL and persona selection for the invite.
        required: true
        content:
          application/json:
            examples:
              savedPersona:
                $ref: '#/components/examples/MeetingInviteCreateWithPersonaId'
              runtimePersona:
                $ref: '#/components/examples/MeetingInviteCreateWithPersonaConfig'
              scheduledJoin:
                $ref: '#/components/examples/MeetingInviteCreateScheduled'
            schema:
              $ref: '#/components/schemas/CreateMeetingInviteRequest'
      responses:
        '201':
          description: Successfully created meeting invite
          headers:
            RateLimit-Limit:
              description: Maximum create requests allowed per requester per minute.
              schema:
                type: string
                example: '10'
            RateLimit-Remaining:
              description: >-
                Remaining create requests in the most constrained active window
                after this request.
              schema:
                type: string
                example: '9'
            RateLimit-Reset:
              description: Seconds until the per-minute requester window resets.
              schema:
                type: string
                example: '42'
            X-RateLimit-Org-Hour-Limit:
              description: Maximum create requests allowed per organization per hour.
              schema:
                type: string
                example: '30'
            X-RateLimit-Org-Hour-Remaining:
              description: >-
                Remaining create requests for the organization in the current
                hour after this request.
              schema:
                type: string
                example: '29'
            X-RateLimit-Org-Hour-Reset:
              description: Seconds until the per-hour organization window resets.
              schema:
                type: string
                example: '1800'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeetingInvite'
              examples:
                default:
                  $ref: '#/components/examples/MeetingInviteResponse'
        '400':
          description: >-
            Bad request - invalid JSON, request validation failed (including an
            avatar-only persona config: an avatarId without a voiceId), or an
            unsupported meeting URL.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/MeetingInviteError'
                  - $ref: '#/components/schemas/MeetingInviteValidationError'
              examples:
                invalidBody:
                  value:
                    error: Invalid request body
                unsupportedMeetingUrl:
                  value:
                    error: >-
                      Only Google Meet, Zoom, and Microsoft Teams URLs are
                      supported
                invalidJoinAt:
                  value:
                    error: joinAt must be in the future
                validationError:
                  value:
                    error: Validation error
                    details:
                      - path: personaId
                        message: Provide exactly one of personaId or personaConfig
                        code: custom
                    summary: >-
                      personaId: Provide exactly one of personaId or
                      personaConfig
        '401':
          description: Unauthorized - missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeetingInviteError'
              examples:
                missingKey:
                  value:
                    error: Missing or invalid API key
                invalidKey:
                  value:
                    error: Invalid API key
        '403':
          description: >-
            Forbidden - API key lacks the required permission, the saved persona
            is not available to the authenticated organization, the invite
            requests strict region enforcement (`regionPolicy: 'strict'`) but
            session region selection is not enabled for the organization, or the
            invite sets `aiDisclosure: false` but AI disclosure removal is not
            enabled for the organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeetingInviteError'
              examples:
                forbidden:
                  value:
                    error: Forbidden
                aiDisclosureNotEnabled:
                  value:
                    error: >-
                      Removing the AI disclosure from meeting invites is not
                      enabled for this organization. Contact Anam to request it.
                sessionRegionNotAvailable:
                  value:
                    error: session_region_not_available
                    message: >-
                      Session region selection is not available for this
                      organization
        '422':
          description: >-
            Unprocessable Entity - the meeting service rejected the invite
            (customer-correctable).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeetingInviteError'
              examples:
                providerRejected:
                  value:
                    error: Meeting request was rejected
        '429':
          description: Too Many Requests - create invite rate limit exceeded.
          headers:
            RateLimit-Limit:
              description: Maximum create requests allowed per requester per minute.
              schema:
                type: string
                example: '10'
            RateLimit-Remaining:
              description: Remaining create requests in the most constrained active window.
              schema:
                type: string
                example: '0'
            RateLimit-Reset:
              description: Seconds until the per-minute requester window resets.
              schema:
                type: string
                example: '42'
            X-RateLimit-Org-Hour-Limit:
              description: Maximum create requests allowed per organization per hour.
              schema:
                type: string
                example: '30'
            X-RateLimit-Org-Hour-Remaining:
              description: >-
                Remaining create requests for the organization in the current
                hour.
              schema:
                type: string
                example: '0'
            X-RateLimit-Org-Hour-Reset:
              description: Seconds until the per-hour organization window resets.
              schema:
                type: string
                example: '1800'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeetingInviteError'
              examples:
                rateLimited:
                  value:
                    error: Too many requests
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeetingInviteError'
              examples:
                serverError:
                  value:
                    error: Failed to process meeting invite
        '502':
          description: Bad Gateway - meeting service is unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeetingInviteError'
              examples:
                unavailable:
                  value:
                    error: Meeting service is unavailable
        '503':
          description: >-
            Service Unavailable - meeting invites are disabled, not configured,
            or temporarily at capacity, the pinned region's session storage is
            unavailable, or the API key could not be checked because of a
            temporary server problem (the key may be valid). Capacity and API
            key responses include a Retry-After header.
          headers:
            Retry-After:
              description: >-
                Seconds to wait before retrying. Present on capacity and API key
                responses.
              schema:
                type: string
                example: '30'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeetingInviteError'
              examples:
                disabled:
                  value:
                    error: Meeting invites are not enabled for this organization
                atCapacity:
                  value:
                    error: Meeting service is at capacity, please try again shortly
                sessionStoreUnavailable:
                  value:
                    error: >-
                      Session storage for this region is temporarily
                      unavailable. Try again later.
                apiKeyLookupUnavailable:
                  value:
                    error: Service temporarily unavailable
                    message: We could not check your API key. Please retry shortly.
components:
  examples:
    MeetingInviteCreateWithPersonaId:
      summary: Invite a saved persona to a Google Meet
      value:
        meetingUrl: https://meet.google.com/abc-defg-hij
        displayName: Cara
        personaId: 00000000-0000-0000-0000-000000000000
        region: eu
    MeetingInviteCreateWithPersonaConfig:
      summary: Invite a runtime-configured persona to Zoom
      value:
        meetingUrl: https://company.zoom.us/j/123456789?pwd=example
        displayName: Cara
        personaConfig:
          name: Cara
          avatarId: 071b0286-4cce-4808-bee2-e642f1062de3
          voiceId: de23e340-1416-4dd8-977d-065a7ca11697
          llmId: a7cf662c-2ace-4de1-a21e-ef0fbf144bb7
          systemPrompt: You are a helpful assistant.
    MeetingInviteCreateScheduled:
      summary: Schedule a saved persona to join a Google Meet later
      value:
        meetingUrl: https://meet.google.com/abc-defg-hij
        displayName: Cara
        personaId: 00000000-0000-0000-0000-000000000000
        joinAt: '2026-04-20T15:00:00Z'
    MeetingInviteResponse:
      summary: A meeting invite resource
      value:
        id: 00000000-0000-0000-0000-000000000000
        provider: google_meet
        meetingUrl: https://meet.google.com/abc-defg-hij
        displayName: Cara (AI)
        status: pending
        createdAt: '2026-04-20T10:00:00.000Z'
        joinAt: null
        groupCall: true
        sessionId: null
        region: eu
        joinState: null
        statusReason: null
  schemas:
    CreateMeetingInviteRequest:
      type: object
      description: Request body for inviting a persona to a meeting.
      required:
        - meetingUrl
      oneOf:
        - required:
            - personaId
        - required:
            - personaConfig
      properties:
        meetingUrl:
          type: string
          description: >-
            Google Meet, Zoom, or Microsoft Teams URL to join. URLs without a
            scheme are normalized to `https://`.
          example: https://meet.google.com/abc-defg-hij
        displayName:
          type: string
          maxLength: 100
          description: >-
            Optional display name for the meeting participant. The API appends
            an AI disclosure suffix when one is not already present, unless
            `aiDisclosure` is false.
          example: Cara
        aiDisclosure:
          type: boolean
          default: true
          description: >-
            Whether the persona discloses that it is AI in the meeting. When
            true (the default) the display name ends in " (AI)" and the
            persona's video shows an AI label. Set to false to join under
            `displayName` (or the persona name) with no suffix and no AI label;
            the name keeps any text you include, with repeated spaces collapsed
            and a 100-character limit; you are then responsible for telling
            participants they are talking to AI. False requires AI disclosure
            removal to be enabled for your organization; contact Anam to request
            it.
          example: true
        region:
          type: string
          enum:
            - eu
            - us-east
            - us-west
          description: >-
            Region the persona joins the call from. Pick the region closest to
            the meeting's participants. When omitted, a region is selected
            automatically from the requester's location.
          example: eu
        regionPolicy:
          type: string
          enum:
            - preferred
            - strict
          default: preferred
          description: >-
            How strictly to honor the selected region. `preferred` may serve the
            invite from another region when the selected region has no capacity
            or is not currently offered; `strict` never leaves the selected
            region and returns a capacity error instead. `strict` requires an
            explicit `region`.
          example: preferred
        joinAt:
          type: string
          format: date-time
          description: >-
            When the persona should join the meeting (ISO 8601 with timezone).
            Must be in the future and no more than 7 days ahead. Scheduling at
            least 10 minutes ahead reserves the persona a guaranteed place on
            the call; shorter lead times join on time but use on-demand capacity
            and can be rejected at busy moments. When omitted, the persona joins
            immediately.
          example: '2026-07-04T15:00:00Z'
        groupCall:
          type: boolean
          default: true
          description: >-
            Group-call turn-taking. When true (the default) the persona joins
            silently and only responds when addressed by its display name. Set
            to false for 1:1 conversations over the meeting infrastructure — the
            persona then greets on join and responds to everything it hears,
            like a regular session.
          example: true
        personaId:
          type: string
          format: uuid
          description: >-
            Saved persona ID to use for the meeting invite. Mutually exclusive
            with `personaConfig`.
          example: 00000000-0000-0000-0000-000000000000
        personaConfig:
          allOf:
            - $ref: '#/components/schemas/MeetingInvitePersonaConfig'
          description: >-
            Runtime persona configuration to use for this invite. Mutually
            exclusive with `personaId`; it must not include `personaId`.
        sessionOptions:
          $ref: '#/components/schemas/MeetingInviteSessionOptions'
        clientLabel:
          type: string
          maxLength: 128
          description: >-
            Optional label attached to the created session for analytics and
            debugging.
          example: calendar-integration
    MeetingInvite:
      type: object
      description: A meeting invite created for a persona.
      required:
        - id
        - provider
        - meetingUrl
        - displayName
        - status
        - createdAt
        - joinAt
        - groupCall
        - sessionId
        - region
        - joinState
        - statusReason
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the meeting invite.
        provider:
          type: string
          enum:
            - google_meet
            - zoom
            - microsoft_teams
          description: Meeting provider inferred from the meeting URL.
        meetingUrl:
          type: string
          format: uri
          description: Normalized meeting URL.
        displayName:
          type: string
          description: Display name used in the meeting.
        status:
          type: string
          enum:
            - pending
            - active
            - cancelled
            - ended
            - failed
          description: Current invite status.
        createdAt:
          type: string
          format: date-time
          description: Time the invite was created.
        joinAt:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Scheduled time the persona joins the meeting, or null when the
            persona was asked to join immediately.
        groupCall:
          type: boolean
          description: >-
            Whether group-call turn-taking is enabled for this invite (respond
            only when addressed by name; silent join).
        sessionId:
          type:
            - string
            - 'null'
          description: >-
            Engine session ID once the meeting session has started, otherwise
            null.
        region:
          type:
            - string
            - 'null'
          enum:
            - eu
            - us-east
            - us-west
            - null
          description: >-
            Region the persona joined the call from. May differ from the
            requested region when the invite was served by another region for
            availability. Additional region values may be introduced over time;
            treat unrecognized values as informational rather than an error.
        joinState:
          type:
            - string
            - 'null'
          enum:
            - joining
            - waiting_room
            - in_call
            - media_denied
            - media_granted
            - media_active
            - left
            - done
            - error
            - null
          description: >-
            Latest observed call-participation detail for the persona, updated
            asynchronously as the persona connects, waits for admission, joins,
            and leaves. Null until the first update arrives. Values may be added
            over time; treat unrecognized values as informational.
        statusReason:
          type:
            - string
            - 'null'
          description: >-
            Reason attached to a terminal participation state — for example
            `removed_by_host`, `meeting_ended`, `not_admitted`, `join_denied`,
            `meeting_link_invalid`, `meeting_not_started`, `idle_timeout`,
            `left_call`, or `provider_error`. Null while the invite is in
            progress. Values may be added over time; treat unrecognized values
            as informational.
    MeetingInviteError:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: Human-readable error message.
        message:
          type: string
          description: Additional detail for structured validation and entitlement errors.
    MeetingInviteValidationError:
      type: object
      required:
        - error
        - details
        - summary
      properties:
        error:
          type: string
          example: Validation error
        details:
          type: array
          items:
            type: object
            required:
              - path
              - message
              - code
            properties:
              path:
                type: string
                example: personaId
              message:
                type: string
                example: Provide exactly one of personaId or personaConfig
              code:
                type: string
                example: custom
        summary:
          type: string
          example: 'personaId: Provide exactly one of personaId or personaConfig'
    MeetingInvitePersonaConfig:
      type: object
      description: >-
        Runtime persona configuration. Include `avatarId`, a non-empty
        `voiceId`, and `llmId` for a conversational persona. An avatar-only
        config (`avatarId` without a voice, or `type: "avatar"`) is rejected
        before the invite is created. Audio passthrough
        (`enableAudioPassthrough: true` or `type: "audio_passthrough"`) is also
        rejected because the meeting bot has no external audio input.
        `personaPreset` is not a voice source for meeting invites; a persona
        with no voice cannot join. This object cannot include `personaId`.
      minProperties: 1
      not:
        required:
          - personaId
      additionalProperties: true
      properties:
        name:
          type: string
          example: Cara
        personaPreset:
          type: string
          description: Optional preset used by the session persona.
        avatarId:
          type: string
          format: uuid
          example: 071b0286-4cce-4808-bee2-e642f1062de3
        avatarModel:
          type: string
          enum:
            - cara-3
            - cara-4
            - cara-4.1-express
            - cara-4-latest
            - cara-5-latest
          description: >-
            Public avatar model version. `cara-5-latest` is an early-access
            preview that tracks the newest Cara 5 checkpoint; it is available
            only to organizations that have been granted it, and other
            organizations get 403.
          example: cara-3
        voiceId:
          type: string
          format: uuid
          minLength: 1
          example: de23e340-1416-4dd8-977d-065a7ca11697
        voiceSpeed:
          type: number
          description: Voice speed multiplier.
          example: 1
        llmId:
          type: string
          format: uuid
          example: a7cf662c-2ace-4de1-a21e-ef0fbf144bb7
        systemPrompt:
          type: string
          example: You are a helpful assistant.
        personality:
          type: string
          description: Optional personality instructions.
        maxSessionLengthSeconds:
          type: number
          minimum: 1
          description: Maximum session duration in seconds.
        languageCode:
          type: string
          description: >-
            Supported ISO 639 language code override (including "yue" for
            Cantonese) for transcription.
          example: en
        metadata:
          type: object
          additionalProperties: true
          description: Developer-defined metadata attached to the session persona.
        skipGreeting:
          type: boolean
          example: false
        uninterruptibleGreeting:
          type: boolean
          description: When true, the greeting message cannot be interrupted by the user.
          example: false
        initialMessage:
          type:
            - string
            - 'null'
          description: Custom first message the persona speaks to open the conversation.
        zeroDataRetention:
          type: boolean
          description: >-
            Requests zero data retention where supported by the configured voice
            and LLM resources.
        tools:
          type: array
          description: >-
            Runtime tool definitions available to the persona. For client and
            webhook tools, the `parameters` (and webhook `queryParameters`) JSON
            Schema object the LLM fills at call time must serialize to 10,000
            bytes or less (UTF-8), otherwise the request is rejected. Use
            `toolIds` to reference tools pre-created via `/v1/tools`, which are
            not subject to this inline size limit.
          items:
            type: object
            additionalProperties: true
        toolIds:
          type: array
          description: IDs of pre-created tools available to the persona.
          items:
            type: string
            format: uuid
        voiceDetectionOptions:
          $ref: '#/components/schemas/VoiceDetectionOptions'
        voiceGenerationOptions:
          description: Configuration options for voice generation.
          oneOf:
            - $ref: '#/components/schemas/ElevenLabsV1VoiceGenerationOptions'
            - $ref: '#/components/schemas/ElevenLabsV2VoiceGenerationOptions'
            - $ref: '#/components/schemas/ElevenLabsV3VoiceGenerationOptions'
            - $ref: '#/components/schemas/ElevenLabsV4VoiceGenerationOptions'
            - $ref: '#/components/schemas/CartesiaSonic3VoiceGenerationOptions'
    MeetingInviteSessionOptions:
      type: object
      description: >-
        Optional session-level configuration for the meeting session. A
        sessionReplay sent alongside dataRetention with enableSessionReplay
        false, or with no value, turns both off.
      properties:
        sessionReplay:
          type: object
          deprecated: true
          description: >-
            Legacy control for both the recording and the transcript. Use
            dataRetention instead.
          properties:
            enableSessionReplay:
              type: boolean
              deprecated: true
              description: >-
                Record the session and store its transcript. false turns off
                both.
              example: true
        dataRetention:
          type: object
          additionalProperties: false
          description: >-
            Choose what Anam keeps after the meeting session. Each setting is
            independent. Zero Data Retention sessions keep neither: an omitted
            setting is off, and a setting of true is rejected unless
            sessionReplay turns both off.
          properties:
            recording:
              type: boolean
              description: Record the session video.
              default: true
            transcripts:
              type: boolean
              description: Store the conversation transcript.
              default: true
    VoiceDetectionOptions:
      type: object
      description: Options for voice activity detection during user speech input.
      properties:
        endOfSpeechSensitivity:
          type: number
          description: End-of-speech sensitivity, from 0 (least) to 1 (most sensitive).
          example: 0.5
          minimum: 0
          maximum: 1
        silenceBeforeSkipTurnSeconds:
          type: number
          description: Seconds of silence before the user’s turn is skipped.
          example: 5
          minimum: 0
          maximum: 900
        silenceBeforeSessionEndSeconds:
          type: number
          description: Seconds of silence before the session ends.
          example: 60
          minimum: 0
          maximum: 7200
        silenceBeforeAutoEndTurnSeconds:
          type: number
          description: Seconds of silence before the user’s turn ends.
          example: 5
          minimum: 0.5
          maximum: 10
        speechEnhancementLevel:
          type: number
          description: Speech enhancement, from 0 (none) to 1 (most).
          example: 0.8
          minimum: 0
          maximum: 1
        sttProvider:
          type: string
          enum:
            - anam
            - deepgram
            - cartesia_ink_2
            - inworld_stt_1
          description: >-
            Speech-to-text provider to use. Defaults to the platform default
            when unset. The deepgram provider supports only these languageCode
            values: en, es, fr, de, hi, ru, pt, ja, it, nl. The cartesia_ink_2
            provider supports only these languageCode values: en. The
            inworld_stt_1 provider supports only these languageCode values: ar,
            yue, zh, cs, da, nl, en, tl, fi, fr, de, el, hi, hu, id, it, ja, ko,
            mk, ms, fa, pl, pt, ro, ru, es, sv, th, tr, vi. The inworld_stt_1
            provider cannot be used when zeroDataRetention is true. The
            inworld_stt_1 provider processes audio only in us, so it cannot be
            used when sessionOptions.regionPolicy is "strict" with any other
            region.
          example: anam
    ElevenLabsV1VoiceGenerationOptions:
      title: ElevenLabs V1
      type: object
      description: Voice generation options for ElevenLabs V1 models.
      properties:
        stability:
          type: number
          description: >-
            Controls how stable the generated voice is between each generation,
            between 0 (more varied/higher emotional range) and 1 (more
            stable/less emotional range).
          example: 0.5
          minimum: 0
          maximum: 1
        similarityBoost:
          type: number
          description: >-
            Controls how close the generated voice is to the original speaker,
            between 0 (more varied) and 1 (more similar).
          example: 0
          minimum: 0
          maximum: 1
        speed:
          type: number
          description: >-
            Controls the speed of the spoken voice as a multiplier, between 0.7
            (slower) and 1.2 (faster).
          example: 1
          minimum: 0.7
          maximum: 1.2
    ElevenLabsV2VoiceGenerationOptions:
      title: ElevenLabs V2
      type: object
      description: Voice generation options for ElevenLabs V2 models.
      properties:
        stability:
          type: number
          description: >-
            Controls how stable the generated voice is between each generation,
            between 0 (more varied/higher emotional range) and 1 (more
            stable/less emotional range).
          example: 0.5
          minimum: 0
          maximum: 1
        similarityBoost:
          type: number
          description: >-
            Controls how close the generated voice is to the original speaker,
            between 0 (more varied) and 1 (more similar).
          example: 0.75
          minimum: 0
          maximum: 1
        style:
          type: number
          description: >-
            Amplifies the style of the original speaker, between 0 and 1, it is
            recommended to keep this value low (0) to reduce latency.
          example: 0
          minimum: 0
          maximum: 1
        useSpeakerBoost:
          type: boolean
          description: >-
            Whether to use speaker boost for the generated voice, enhancing the
            similarity to the original speaker.
          example: true
        speed:
          type: number
          description: >-
            Controls the speed of the spoken voice as a multiplier, between 0.7
            (slower) and 1.2 (faster).
          example: 1
          minimum: 0.7
          maximum: 1.2
        model:
          $ref: '#/components/schemas/ElevenLabsModelOverride'
    ElevenLabsV3VoiceGenerationOptions:
      title: ElevenLabs V3
      type: object
      additionalProperties: false
      description: >-
        Voice generation options for an eleven_v3 or eleven_v3_conversational
        voice, or for any voice whose model override is one of them. Only
        stability is supported.
      properties:
        stability:
          type: number
          description: >-
            Controls how stable the generated voice is, from 0 (more varied) to
            1 (more stable).
          example: 0.5
          minimum: 0
          maximum: 1
        model:
          $ref: '#/components/schemas/ElevenLabsModelOverride'
    ElevenLabsV4VoiceGenerationOptions:
      title: ElevenLabs V4
      type: object
      additionalProperties: false
      description: >-
        Voice generation options for an eleven_v4 or eleven_v4_turbo voice, or
        for any voice whose model override is one of them. Only stability and
        similarityBoost are supported.
      properties:
        stability:
          type: number
          description: >-
            Controls how stable the generated voice is, from 0 (more varied) to
            1 (more stable).
          example: 0.5
          minimum: 0
          maximum: 1
        similarityBoost:
          type: number
          description: >-
            Controls how close the generated voice is to the original speaker,
            between 0 (more varied) and 1 (more similar).
          example: 0.75
          minimum: 0
          maximum: 1
        model:
          $ref: '#/components/schemas/ElevenLabsModelOverride'
    CartesiaSonic3VoiceGenerationOptions:
      title: Cartesia Sonic-3
      type: object
      description: Voice generation options for Cartesia Sonic-3 models.
      properties:
        volume:
          type: number
          description: >-
            Controls the volume level of the generated voice as a multiplier,
            between 0.5 (quieter) and 2.0 (louder).
          example: 1
          minimum: 0.5
          maximum: 2
        speed:
          type: number
          description: >-
            Controls the speed of the spoken voice as a multiplier, between 0.6
            (slower) and 1.5 (faster).
          example: 1
          minimum: 0.6
          maximum: 1.5
        emotion:
          type: string
          description: >-
            Sets the emotional tone of the generated voice. Supported emotions
            are: neutral, calm, angry, content, sad, scared.
          example: neutral
          oneOf:
            - type: string
              enum:
                - neutral
                - calm
                - angry
                - content
                - sad
                - scared
    ElevenLabsModelOverride:
      type: string
      enum:
        - eleven_v4_turbo
        - eleven_v3_conversational
        - eleven_v4
        - eleven_v3
        - eleven_flash_v2_5
        - eleven_multilingual_v2
        - eleven_flash_v2
        - eleven_turbo_v2_5
      description: >-
        Replaces the voice's ElevenLabs model for generation. Must be an
        ElevenLabs model supported for voice imports. The other options must be
        valid for this model: for example, eleven_v4 accepts only stability and
        similarityBoost.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````

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