> ## 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.

# get persona

> Returns a persona by id



## OpenAPI

````yaml https://api.anam.ai/swagger.json get /v1/personas/{id}
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/personas/{id}:
    get:
      tags:
        - Personas
      summary: get persona
      description: Returns a persona by id
      operationId: getPersona
      parameters:
        - in: path
          name: id
          schema:
            type: string
          required: true
          description: Persona id
      responses:
        '200':
          description: Successfully retrieved persona
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Persona'
              examples:
                default:
                  $ref: '#/components/examples/PersonaResponse'
        '401':
          description: Unauthorized - Invalid or missing API key
        '403':
          description: Forbidden - API key lacks the required permission
        '404':
          description: Not Found - No personas found
        '500':
          description: Server error
        '503':
          description: >-
            The API key could not be checked because of a temporary server
            problem. The key may be valid; retry after `Retry-After` seconds.
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableError'
components:
  schemas:
    Persona:
      type: object
      description: Full persona shape returned by the create, get, and update endpoints.
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the persona.
        name:
          type: string
          description: Human-readable name of the persona.
        description:
          type:
            - string
            - 'null'
          description: Free-form description of the persona.
        personaPreset:
          type: string
          deprecated: true
          description: >-
            Deprecated. Name of the legacy preset an older persona was created
            from, if any. Presets can no longer be set; use `avatarId` and
            `voiceId`.
        avatar:
          oneOf:
            - $ref: '#/components/schemas/Avatar'
            - type: 'null'
          description: Avatar currently attached to the persona.
        avatarModel:
          type:
            - string
            - 'null'
          description: >-
            Public model version (e.g. `cara-3`, `cara-4`) used when rendering
            the avatar.
        voice:
          oneOf:
            - $ref: '#/components/schemas/Voice'
            - type: 'null'
          description: Voice currently attached to the persona.
        voiceSpeed:
          type:
            - number
            - 'null'
          description: Speech rate multiplier applied to the voice.
        llmId:
          type:
            - string
            - 'null'
          format: uuid
          description: >-
            ID of the LLM the persona uses, or `null` for presets that don't run
            an LLM.
        brain:
          $ref: '#/components/schemas/PersonaBrain'
        tools:
          type: array
          items:
            type: object
          description: Tool configurations currently attached to the persona.
        knowledge:
          type: array
          items:
            type: object
          description: Knowledge group attachments currently active on the persona.
        shareLinks:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/ShareLink'
          description: All share links ever issued for this persona.
        primaryShareLink:
          type:
            - object
            - 'null'
          description: >-
            The primary share link attached to the persona, if one has been
            created.
          properties:
            token:
              type: string
            enabled:
              type: boolean
        enableAudioPassthrough:
          type: boolean
          description: >-
            Whether audio is passed through from the client instead of being
            generated server-side.
        skipGreeting:
          type: boolean
          description: >-
            Whether the persona skips the greeting message at the start of a
            session.
        zeroDataRetention:
          type: boolean
          description: >-
            Whether session data is discarded instead of stored after the
            conversation ends.
        maxSessionLengthSeconds:
          type:
            - integer
            - 'null'
          description: >-
            Maximum length in seconds of every session with this persona, or
            `null` when only the plan's session limit applies.
        voiceDetectionOptions:
          oneOf:
            - $ref: '#/components/schemas/VoiceDetectionOptions'
            - type: 'null'
          description: Voice activity detection tuning for user speech.
        voiceGenerationOptions:
          oneOf:
            - $ref: '#/components/schemas/ElevenLabsV1VoiceGenerationOptions'
            - $ref: '#/components/schemas/ElevenLabsV2VoiceGenerationOptions'
            - $ref: '#/components/schemas/ElevenLabsV3VoiceGenerationOptions'
            - $ref: '#/components/schemas/ElevenLabsV4VoiceGenerationOptions'
            - $ref: '#/components/schemas/CartesiaSonic3VoiceGenerationOptions'
            - $ref: '#/components/schemas/FishAudioVoiceGenerationOptions'
            - type: 'null'
          description: Provider-specific voice generation tuning.
        widgetConfig:
          type: object
          description: Widget rendering overrides (e.g. removing the watermark).
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the persona was created.
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when the persona was last updated.
    ServiceUnavailableError:
      type: object
      required:
        - error
        - message
      properties:
        error:
          type: string
          example: Service temporarily unavailable
        message:
          type: string
          example: We could not check your API key. Please retry shortly.
    Avatar:
      type: object
      description: A face preset that a persona can use as its visual representation.
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the avatar.
        displayName:
          type: string
          description: Human-readable name shown in the Lab and share links.
        variantName:
          type: string
          description: >-
            Name of the specific variant (e.g. lighting or pose) within the
            avatar family.
        imageUrl:
          type: string
          format: uri
          description: >-
            Still image of the avatar, framed exactly like `videoUrl`,
            `idleVideoUrl` and a landscape session (the default). Use it as the
            thumbnail, poster or loading image wherever a preview video or the
            live stream replaces it, and give the image and the video the same
            box, `object-fit` and `object-position` so the avatar doesn't move
            when they swap. For Cara 4 avatars this is the 1152x768 landscape
            crop (the same image as `landscapeImageUrl`). Cara 4 avatars used to
            return their square source image here; that image is now
            `sourceImageUrl`. Empty when the avatar has no image yet, or when
            its images are not available through the API. May be a time-limited
            link; see `imageUrlsExpireAt`.
        sourceImageUrl:
          type: string
          format: uri
          description: >-
            The image the avatar was created from. For Cara 4 avatars it is
            square (1152x1152) and shows more of the scene than the 1152x768
            crop that preview videos and sessions use, so the avatar appears to
            zoom in when a video or call replaces it. Don't use it as a
            thumbnail, poster or loading image next to `videoUrl` or a session;
            use `imageUrl`, `landscapeImageUrl` or `portraitImageUrl`. For
            legacy avatars it is the same landscape image as `imageUrl`. Empty
            when the avatar's images are not available through the API. May be a
            time-limited link; see `imageUrlsExpireAt`.
        landscapeImageUrl:
          type:
            - string
            - 'null'
          format: uri
          description: >-
            Still image cropped exactly as the engine frames landscape
            (1152x768) output, which is also the framing of `videoUrl` and
            `idleVideoUrl`. Use it with landscape sessions (the default) and
            preview videos. For avatars with legacy landscape source images this
            is the source image. `null` when the avatar's images are not
            available through the API. May be a time-limited link; see
            `imageUrlsExpireAt`.
        portraitImageUrl:
          type:
            - string
            - 'null'
          format: uri
          description: >-
            Still image cropped exactly as the engine frames portrait (768x1152)
            output. Use it as the poster for a session started with portrait
            `videoWidth`/`videoHeight`. Preview videos are landscape, so don't
            swap this image for `videoUrl`. `null` when the avatar cannot render
            portrait output or its images are not available through the API. May
            be a time-limited link; see `imageUrlsExpireAt`.
        imageUrlsExpireAt:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            When set, `imageUrl`, `sourceImageUrl`, `landscapeImageUrl` and
            `portraitImageUrl` are time-limited links that stop working at this
            time; fetch the avatar again for fresh ones. They stay valid for at
            least an hour, and repeated requests within the same hour return the
            same links, so browsers can cache them. Treat them as credentials
            for those images, since anyone holding a link can load the image
            until it expires. `null` when the image URLs don't expire.
        videoUrl:
          type:
            - string
            - 'null'
          format: uri
          description: >-
            Signed URL for a verified muted MP4 preview of the avatar. Uses the
            idle loop if the talking preview is unavailable. Landscape (1152x768
            for Cara 4 avatars, 720x480 for legacy avatars) and framed exactly
            like `imageUrl`, so pair it with `imageUrl` or `landscapeImageUrl`,
            not `sourceImageUrl`. The URL expires after 1 hour; re-fetch the
            avatar to get a fresh URL. `null` when the preview is unavailable or
            still generating.
        idleVideoUrl:
          type:
            - string
            - 'null'
          format: uri
          description: >-
            Signed URL for a muted idling-loop MP4 of the avatar, if one exists.
            Landscape and framed exactly like `imageUrl`, like `videoUrl`. The
            URL expires after 1 hour; re-fetch the avatar to get a fresh URL.
            `null` when unavailable or still generating.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the avatar was created.
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when the avatar was last updated.
        createdByOrganizationId:
          type:
            - string
            - 'null'
          description: >-
            ID of the organization that created the avatar, or `null` for stock
            avatars. IDs may be either UUIDs or nanoid-style strings depending
            on when the organization was created.
        availableVersions:
          type: array
          items:
            type: string
          description: >-
            Avatar models this avatar can be used with. Pass one of these values
            as `avatarModel` when creating a persona or starting a session.
        activeVersion:
          type:
            - string
            - 'null'
          description: >-
            Avatar model used by default when no explicit `avatarModel` is
            requested.
        description:
          type:
            - string
            - 'null'
          description: >-
            AI-generated description of the avatar's appearance, setting, and
            style. `null` if metadata generation has not completed.
        displayTags:
          type: array
          items:
            type: string
          description: >-
            Curated tags describing the avatar. Empty array if metadata
            generation has not completed.
        renderStyle:
          type: string
          enum:
            - realistic
            - animated_3d
            - illustrated
            - unknown
          description: >-
            Render style of the avatar. `unknown` covers custom avatars and
            avatars whose metadata has not yet been generated.
    Voice:
      type: object
      description: A voice preset a persona can use for text-to-speech.
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the voice.
        displayName:
          type: string
          description: Human-readable name shown in the Lab.
        provider:
          type: string
          enum:
            - CARTESIA
            - ELEVENLABS
            - FISH_AUDIO
          description: Upstream TTS provider for this voice.
        providerVoiceId:
          type:
            - string
            - 'null'
          description: The upstream provider's identifier for the voice.
        providerModelId:
          type:
            - string
            - 'null'
          description: The upstream provider's model identifier used to generate speech.
        sampleUrl:
          type:
            - string
            - 'null'
          format: uri
          description: URL of a short audio preview of the voice.
        previewSampleUrl:
          type:
            - string
            - 'null'
          format: uri
          description: Alias for `sampleUrl`, kept for backwards compatibility.
        gender:
          type:
            - string
            - 'null'
          enum:
            - MALE
            - FEMALE
            - NEUTRAL
            - null
          description: Perceived gender of the voice, if categorised.
        country:
          type:
            - string
            - 'null'
          description: ISO 3166-1 alpha-2 country code representing the voice's accent.
        description:
          type:
            - string
            - 'null'
          description: Free-form description of the voice's character.
        displayTags:
          type: array
          items:
            type: string
          description: Tags used to categorise the voice in the Lab UI.
        isZdr:
          type: boolean
          description: Whether this voice meets the Zero Data Retention requirements.
        createdByOrganizationId:
          type:
            - string
            - 'null'
          description: >-
            ID of the organization that created the voice, or `null` for stock
            voices. IDs may be either UUIDs or nanoid-style strings depending on
            when the organization was created.
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the voice was created.
        updatedAt:
          type: string
          format: date-time
          description: Timestamp when the voice was last updated.
    PersonaBrain:
      type: object
      description: Persona behaviour configuration applied on top of the raw LLM.
      properties:
        personality:
          type:
            - string
            - 'null'
          description: >-
            Free-form description of the persona's personality, used to seed the
            system prompt.
        systemPrompt:
          type:
            - string
            - 'null'
          description: System prompt sent to the LLM at the start of each session.
    ShareLink:
      type: object
      description: >-
        A shareable link to a persona. Can be used as a direct URL or embedded
        via the widget.
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the share link.
        token:
          type: string
          description: Opaque token appended to the public URL.
        type:
          type: string
          enum:
            - LINK
            - PLAYER_EMBED
            - ORB_EMBED
          description: Kind of share link — a direct URL, a player embed, or an orb embed.
        expiresAt:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Timestamp after which the link no longer works, or `null` if the
            link does not expire.
        usageLimit:
          type:
            - integer
            - 'null'
          description: >-
            Maximum number of times the link can be used, or `null` for
            unlimited.
        usageCount:
          type: integer
          description: Number of times the link has been used.
        allowedOrigins:
          type: array
          items:
            type: string
          description: >-
            Origins permitted to load the link when embedded. Ignored when
            `allowAllOrigins` is true.
        allowAllOrigins:
          type: boolean
          description: Whether the link can be embedded on any origin.
        removeWatermark:
          type: boolean
          description: >-
            Whether the persona renders without the Anam watermark. Requires a
            plan that permits watermark removal.
        enabled:
          type: boolean
          description: Whether the link currently accepts connections.
        isPrimary:
          type: boolean
          description: >-
            Whether this is the persona's primary share link (at most one per
            persona).
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the share link was created.
    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
    FishAudioVoiceGenerationOptions:
      title: Fish Audio
      type: object
      description: Voice generation options for Fish Audio 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.5
            (slower) and 2.0 (faster).
          example: 1
          minimum: 0.5
          maximum: 2
    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.
  examples:
    PersonaResponse:
      summary: A single persona resource (full shape)
      value:
        id: 00000000-0000-0000-0000-000000000000
        name: Cara
        description: A helpful assistant
        personaPreset: ''
        avatar:
          id: 071b0286-4cce-4808-bee2-e642f1062de3
          displayName: Liv
          variantName: home
          imageUrl: https://lab.anam.ai/persona_thumbnails/liv_home.png
          videoUrl: https://example.com/avatar-preview.mp4?X-Amz-Signature=...
          createdAt: '2026-04-20T10:00:00.000Z'
          updatedAt: '2026-04-20T10:00:00.000Z'
          createdByOrganizationId: null
          availableVersions:
            - cara-3
          activeVersion: cara-3
          description: >-
            A friendly professional in a modern office setting, warm expression,
            business casual attire.
          displayTags:
            - professional
            - friendly
            - office
          renderStyle: realistic
        avatarModel: cara-3
        voice:
          id: de23e340-1416-4dd8-977d-065a7ca11697
          displayName: Lucy - Fresh & Casual
          provider: ELEVENLABS
          providerVoiceId: lcMyyd2HUfFzxdCaC4Ta
          providerModelId: eleven_flash_v2_5
          sampleUrl: >-
            https://newgxnc1uqs0jnqm.public.blob.vercel-storage.com/voice-samples/de23e340-1416-4dd8-977d-065a7ca11697/1760617899390.mp3
          previewSampleUrl: >-
            https://newgxnc1uqs0jnqm.public.blob.vercel-storage.com/voice-samples/de23e340-1416-4dd8-977d-065a7ca11697/1760617899390.mp3
          gender: FEMALE
          country: GB
          description: >-
            Energetic and youthful British voice, perfect for narrations and
            conversational agents.
          displayTags:
            - fast
          isZdr: true
          createdByOrganizationId: null
          createdAt: '2026-04-20T10:00:00.000Z'
          updatedAt: '2026-04-20T10:00:00.000Z'
        voiceSpeed: 1
        llmId: a7cf662c-2ace-4de1-a21e-ef0fbf144bb7
        brain:
          personality: null
          systemPrompt: You are a helpful assistant.
        tools: []
        knowledge: []
        shareLinks: null
        primaryShareLink: null
        enableAudioPassthrough: false
        skipGreeting: false
        zeroDataRetention: false
        voiceDetectionOptions: null
        voiceGenerationOptions: null
        widgetConfig: {}
        createdAt: '2026-04-20T10:00:00.000Z'
        updatedAt: '2026-04-20T10:00:00.000Z'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````

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