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

# Get persona

> Retrieve a specific persona by its unique identifier.



## OpenAPI

````yaml /api-reference/v1/personas-v1.yaml get /personas/{persona_id}
openapi: 3.0.3
info:
  title: Coval Personas API
  version: 1.0.0
  description: |
    Manage simulated personas used in voice and text evaluations.
  contact:
    name: Coval API Support
    url: https://coval.dev
    email: support@coval.dev
servers:
  - url: https://api.coval.dev/v1
    description: Production server
security:
  - ApiKeyAuth: []
tags:
  - name: Personas
    description: Persona CRUD operations
paths:
  /personas/{persona_id}:
    get:
      tags:
        - Personas
      summary: Get persona
      description: Retrieve a specific persona by its unique identifier.
      operationId: getPersona
      parameters:
        - name: persona_id
          in: path
          description: Persona resource ID
          required: true
          schema:
            type: string
            example: 3zfmuDbVQsi4GaseDtiVcS
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPersonaResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    GetPersonaResponse:
      type: object
      required:
        - persona
      properties:
        persona:
          $ref: '#/components/schemas/PersonaResource'
    PersonaResource:
      type: object
      description: Persona resource representation returned by API responses.
      required:
        - resource_name
        - id
        - name
        - create_time
      properties:
        resource_name:
          type: string
          description: Resource name in format "personas/{persona_id}"
          example: personas/3zfmuDbVQsi4GaseDtiVcS
        id:
          type: string
          description: Unique persona identifier
          example: 3zfmuDbVQsi4GaseDtiVcS
        name:
          type: string
          description: Human-readable persona name
          example: Friendly Customer
          minLength: 1
          maxLength: 200
        persona_prompt:
          type: string
          nullable: true
          description: Instructions describing persona behavior and personality
          example: You are a friendly customer calling for technical support...
        voice_name:
          type: string
          nullable: true
          description: |
            Coval voice name. Use GET /personas/voices to discover available
            voices and their supported language codes.
          example: aria
        language_code:
          type: string
          nullable: true
          description: |
            BCP-47 language code for voice synthesis. Must be supported by
            the selected voice. Use GET /personas/voices to discover valid
            voice and language combinations.
          example: en-US
        background_sound:
          type: string
          nullable: true
          description: >-
            Built-in background sound id, or custom:<background_sound_id> for an
            active custom sound returned by GET /personas/background-sounds.
          example: office
          pattern: >-
            ^(off|office|lounge|crowd|airport|bus|playground|doorbell|train-arrival|portable-air-conditioner|skatepark|small-dog-bark|cafe|ferry-and-announcement|heavy-rain|moderate-wind|newborn-baby-crying|office-with-alarm|street-with-sirens|construction-work|backchanneling|custom:[A-Za-z0-9_-]+)$
        background_sound_volume:
          type: number
          format: float
          nullable: true
          minimum: 0
          description: >-
            Volume level for background sound (>= 0.0, no upper limit). Default
            is provider-controlled when omitted.
          example: 0.3
        voice_volume:
          type: number
          format: float
          nullable: true
          minimum: 0
          maximum: 2
          description: >-
            Voice gain multiplier. 0.0 is silent, 1.0 is unchanged, and 2.0 is
            double volume.
          example: 1.25
        voice_speed:
          type: number
          format: float
          nullable: true
          minimum: 0.25
          maximum: 2
          description: >-
            Voice speed multiplier accepted and stored from 0.25 to 2.0. 1.0 is
            unchanged. The selected voice may enforce a narrower effective range
            or ignore speed changes.
          example: 0.85
        wait_seconds:
          type: number
          format: float
          nullable: true
          description: Response delay in seconds
          example: 0.5
          minimum: 0.1
          maximum: 2
        conversation_initiation:
          type: string
          nullable: true
          description: Who initiates the conversation
          example: speak_first
          enum:
            - speak_first
            - wait_for_user
        multi_language_stt:
          type: boolean
          nullable: true
          description: >
            Enable multilingual speech-to-text so callers speaking languages

            other than the primary language_code are still transcribed
            accurately.

            Useful for personas simulating callers in bilingual regions or

            contact centers that serve diverse populations.
          example: true
        hold_music_timeout_seconds:
          type: number
          format: float
          nullable: true
          minimum: 5
          maximum: 300
          description: >-
            Disconnect after this many seconds of no speech (5-300). Used for
            hold music scenarios.
          example: 15
        tags:
          type: array
          description: Tags associated with this persona
          items:
            type: string
          default: []
          example:
            - voice
            - english
        create_time:
          type: string
          format: date-time
          description: Persona creation timestamp (ISO 8601)
          example: '2025-01-24T10:00:00Z'
        update_time:
          type: string
          format: date-time
          nullable: true
          description: Last update timestamp (ISO 8601)
          example: '2025-01-24T12:30:00Z'
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              description: Error code
              example: INVALID_ARGUMENT
            message:
              type: string
              description: Human-readable error message
              example: Invalid voice_name 'invalid'
  responses:
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: UNAUTHENTICATED
              message: Missing or invalid API key
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: NOT_FOUND
              message: Persona abc123 not found
    InternalError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: INTERNAL
              message: An unexpected error occurred
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key for authentication

````