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

# Update a persona

> Updates an existing persona by its ID.



## OpenAPI

````yaml /api-reference/openapi.documented.json put /v1/persona/{personaId}
openapi: 3.1.0
info:
  title: Roark Analytics API
  description: >-
    The Roark Analytics API gives you access to the same API that powers the
    award winning Roark Analytics platform.
  version: 1.0.0
servers:
  - description: Production
    url: https://api.roark.ai
security:
  - Bearer: []
tags:
  - name: Agent
  - name: Agent Endpoint
  - name: Call
  - name: Chat
  - name: Metric
  - name: Metric Policy
  - name: Metric Collection Job
  - name: Customer Flow
  - name: Customer Flow Edge Case
  - name: Simulation
  - name: Simulation Persona
  - name: Simulation Environment
  - name: Simulation Scenario
  - name: Simulation Run Plan
  - name: Simulation Template
  - name: Simulation Run Plan Job
  - name: Simulation Job
  - name: HTTP Request Definition
  - name: Webhook
  - name: Issue
  - name: Autoimprove
  - name: Agent Config
  - name: Knowledge Base
  - name: Config
  - name: Organization Project
  - name: Organization Project Member
  - name: Organization Project API Key
  - name: Organization Config
  - name: CLI Auth
  - name: Me
  - name: Project
  - name: Usage
  - name: Benchmark
  - name: Health
  - name: Prospect Simulation
paths:
  /v1/persona/{personaId}:
    put:
      tags:
        - Simulation Persona
      summary: Update a persona
      description: Updates an existing persona by its ID.
      operationId: putV1PersonaByPersonaId
      parameters:
        - name: personaId
          in: path
          required: true
          description: The ID of the persona to update
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name the agent will identify as during conversations
                displayName:
                  type:
                    - string
                    - 'null'
                  description: >-
                    Label shown in place of the name across the dashboard (e.g.
                    a short descriptor like "Irate Escalator"). The persona
                    still identifies as `name` on calls. Omit or set null to
                    display the name itself.
                description:
                  type:
                    - string
                    - 'null'
                  description: Human-readable description of the persona
                language:
                  type: string
                  enum:
                    - EN
                    - ES
                    - DE
                    - HI
                    - FR
                    - NL
                    - AR
                    - EL
                    - IT
                    - ID
                    - TH
                    - JA
                    - TL
                    - MS
                    - ZH
                    - TR
                    - PT
                    - HE
                  description: Primary language ISO 639-1 code for the persona
                secondaryLanguage:
                  type:
                    - string
                    - 'null'
                  enum:
                    - EN
                  description: >-
                    Secondary language ISO 639-1 code for code-switching (e.g.,
                    Hinglish, Spanglish)
                understoodLanguages:
                  type: array
                  items:
                    type: string
                    enum:
                      - EN
                      - ES
                      - DE
                      - HI
                      - FR
                      - NL
                      - AR
                      - EL
                      - IT
                      - ID
                      - TH
                      - JA
                      - TL
                      - MS
                      - ZH
                      - TR
                      - PT
                      - HE
                  minItems: 1
                  description: >-
                    Languages the persona can understand. Multilingual
                    combinations are limited by multilingual speech recognition
                    support.
                accent:
                  type: string
                  enum:
                    - US
                    - US_X_SOUTH
                    - GB
                    - ES
                    - DE
                    - IN
                    - FR
                    - NL
                    - SA
                    - GR
                    - AU
                    - IT
                    - ID
                    - TH
                    - JP
                    - NZ
                    - PH
                    - SG
                    - MY
                    - HK
                    - TR
                    - PT
                    - IL
                  description: >-
                    Accent of the persona, defined using ISO 3166-1 alpha-2
                    country codes with optional variants
                age:
                  type: string
                  enum:
                    - CHILD
                    - TEENAGER
                    - ADULT
                    - ELDERLY
                  default: ADULT
                  description: >-
                    How old the caller sounds and behaves. Only ages the
                    persona's accent has a voice for are accepted; defaults to
                    ADULT, which every accent supports.
                gender:
                  type: string
                  enum:
                    - MALE
                    - FEMALE
                  description: Gender of the persona
                backgroundNoise:
                  type: string
                  enum:
                    - NONE
                    - AIRPORT
                    - CHILDREN_PLAYING
                    - CITY
                    - COFFEE_SHOP
                    - CONSTRUCTION
                    - CRYING_BABY
                    - DRIVING
                    - LIBRARY
                    - OFFICE
                    - THUNDERSTORM
                    - TRAIN
                  default: NONE
                  description: Background noise setting
                speechPace:
                  type: string
                  enum:
                    - SUPER_SLOW
                    - SLOW
                    - NORMAL
                    - FAST
                    - SUPER_FAST
                  default: NORMAL
                  description: Speech pace of the persona
                speechClarity:
                  type: string
                  enum:
                    - CLEAR
                    - VAGUE
                    - RAMBLING
                  default: CLEAR
                  description: Speech clarity of the persona
                hasDisfluencies:
                  type: boolean
                  default: false
                  description: Whether the persona uses filler words like "um" and "uh"
                baseEmotion:
                  type: string
                  enum:
                    - NEUTRAL
                    - CHEERFUL
                    - CONFUSED
                    - FRUSTRATED
                    - SKEPTICAL
                    - RUSHED
                    - DISTRACTED
                    - ANGRY
                    - ANXIOUS
                    - SAD
                  default: NEUTRAL
                  description: Base emotional state of the persona
                intentClarity:
                  type: string
                  enum:
                    - CLEAR
                    - INDIRECT
                    - VAGUE
                  default: CLEAR
                  description: How clearly the persona expresses their intentions
                confirmationStyle:
                  type: string
                  enum:
                    - EXPLICIT
                    - VAGUE
                  default: EXPLICIT
                  description: How the persona confirms information
                memoryReliability:
                  type: string
                  enum:
                    - HIGH
                    - LOW
                  default: HIGH
                  description: How reliable the persona's memory is
                responseTiming:
                  type: string
                  enum:
                    - RELAXED
                    - NORMAL
                    - QUICK
                    - BARGE_IN
                  default: NORMAL
                  description: >-
                    Deprecated and inert: it no longer affects the call. It set
                    how long the persona waited once the agent stopped talking,
                    and measured across production simulations it moved the
                    reply gap by less than the noise floor, because model and
                    speech latency dominate it. Every persona now uses one
                    voice-activity profile. Use `interruption` for a caller who
                    talks over the agent. Still accepted and stored so existing
                    clients keep working. BARGE_IN is stored as `responseTiming:
                    QUICK` with `interruption: OCCASIONAL`.
                interruption:
                  type: string
                  enum:
                    - 'OFF'
                    - BACKCHANNEL
                    - OCCASIONAL
                    - HEAVY
                  default: 'OFF'
                  description: >-
                    How much the persona talks over the agent while it is still
                    speaking. OFF waits its turn. BACKCHANNEL makes listening
                    noises ("mm-hm") over the agent without taking the floor,
                    which tests whether the agent wrongly stops for them.
                    OCCASIONAL adds cutting in on some long agent turns, HEAVY
                    on most of them. Timing is randomised per turn, so two runs
                    of the same persona do not interrupt at identical moments.
                backstoryPrompt:
                  type:
                    - string
                    - 'null'
                  description: Background story and behavioral patterns for the persona
                  example: A busy professional calling during lunch break
                idleMessages:
                  type:
                    - array
                    - 'null'
                  items:
                    type: string
                  description: >-
                    Messages the persona will say when the agent goes silent
                    during a call. null = "Automatic": language-appropriate
                    defaults are used at call time.
                idleTimeoutSeconds:
                  type: integer
                  minimum: 5
                  maximum: 60
                  default: 10
                  description: Seconds of silence before the persona sends an idle message
                idleMessageMaxSpokenCount:
                  type: integer
                  minimum: 1
                  maximum: 10
                  default: 3
                  description: >-
                    Maximum number of idle messages the persona will send before
                    giving up
                idleMessageResetCountOnUserSpeechEnabled:
                  type: boolean
                  default: true
                  description: >-
                    Whether the idle message counter resets when the agent
                    speaks
                properties:
                  type: object
                  additionalProperties: {}
                  default: {}
                  description: Additional custom properties about the persona
                  example:
                    age: 35
                    zipCode: '94105'
                    occupation: Software Engineer
              title: UpdatePersonaInput
              description: Input for updating an existing persona
      responses:
        '200':
          description: The updated persona
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: Unique identifier of the persona
                      name:
                        type: string
                        description: >-
                          The name the agent will identify as during
                          conversations
                      displayName:
                        type:
                          - string
                          - 'null'
                        description: >-
                          Label shown in place of the name across the dashboard
                          (e.g. a short descriptor like "Irate Escalator"). The
                          persona still identifies as `name` on calls. Omit or
                          set null to display the name itself.
                      description:
                        type:
                          - string
                          - 'null'
                        description: Human-readable description of the persona
                      language:
                        type: string
                        enum:
                          - EN
                          - ES
                          - DE
                          - HI
                          - FR
                          - NL
                          - AR
                          - EL
                          - IT
                          - ID
                          - TH
                          - JA
                          - TL
                          - MS
                          - ZH
                          - TR
                          - PT
                          - HE
                        description: Primary language ISO 639-1 code for the persona
                      secondaryLanguage:
                        type:
                          - string
                          - 'null'
                        enum:
                          - EN
                        description: >-
                          Secondary language ISO 639-1 code for code-switching
                          (e.g., Hinglish, Spanglish)
                      understoodLanguages:
                        type: array
                        items:
                          type: string
                          enum:
                            - EN
                            - ES
                            - DE
                            - HI
                            - FR
                            - NL
                            - AR
                            - EL
                            - IT
                            - ID
                            - TH
                            - JA
                            - TL
                            - MS
                            - ZH
                            - TR
                            - PT
                            - HE
                        minItems: 1
                        description: >-
                          Languages the persona can understand. Multilingual
                          combinations are limited by multilingual speech
                          recognition support.
                      accent:
                        type: string
                        enum:
                          - US
                          - US_X_SOUTH
                          - GB
                          - ES
                          - DE
                          - IN
                          - FR
                          - NL
                          - SA
                          - GR
                          - AU
                          - IT
                          - ID
                          - TH
                          - JP
                          - NZ
                          - PH
                          - SG
                          - MY
                          - HK
                          - TR
                          - PT
                          - IL
                        description: >-
                          Accent of the persona, defined using ISO 3166-1
                          alpha-2 country codes with optional variants
                      age:
                        type: string
                        enum:
                          - CHILD
                          - TEENAGER
                          - ADULT
                          - ELDERLY
                        default: ADULT
                        description: >-
                          How old the caller sounds and behaves. Only ages the
                          persona's accent has a voice for are accepted;
                          defaults to ADULT, which every accent supports.
                      gender:
                        type: string
                        enum:
                          - MALE
                          - FEMALE
                        description: Gender of the persona
                      backgroundNoise:
                        type: string
                        enum:
                          - NONE
                          - AIRPORT
                          - CHILDREN_PLAYING
                          - CITY
                          - COFFEE_SHOP
                          - CONSTRUCTION
                          - CRYING_BABY
                          - DRIVING
                          - LIBRARY
                          - OFFICE
                          - THUNDERSTORM
                          - TRAIN
                        default: NONE
                        description: Background noise setting
                      speechPace:
                        type: string
                        enum:
                          - SUPER_SLOW
                          - SLOW
                          - NORMAL
                          - FAST
                          - SUPER_FAST
                        default: NORMAL
                        description: Speech pace of the persona
                      speechClarity:
                        type: string
                        enum:
                          - CLEAR
                          - VAGUE
                          - RAMBLING
                        default: CLEAR
                        description: Speech clarity of the persona
                      hasDisfluencies:
                        type: boolean
                        default: false
                        description: >-
                          Whether the persona uses filler words like "um" and
                          "uh"
                      baseEmotion:
                        type: string
                        enum:
                          - NEUTRAL
                          - CHEERFUL
                          - CONFUSED
                          - FRUSTRATED
                          - SKEPTICAL
                          - RUSHED
                          - DISTRACTED
                          - ANGRY
                          - ANXIOUS
                          - SAD
                        default: NEUTRAL
                        description: Base emotional state of the persona
                      intentClarity:
                        type: string
                        enum:
                          - CLEAR
                          - INDIRECT
                          - VAGUE
                        default: CLEAR
                        description: How clearly the persona expresses their intentions
                      confirmationStyle:
                        type: string
                        enum:
                          - EXPLICIT
                          - VAGUE
                        default: EXPLICIT
                        description: How the persona confirms information
                      memoryReliability:
                        type: string
                        enum:
                          - HIGH
                          - LOW
                        default: HIGH
                        description: How reliable the persona's memory is
                      responseTiming:
                        type: string
                        enum:
                          - RELAXED
                          - NORMAL
                          - QUICK
                          - BARGE_IN
                        default: NORMAL
                        description: >-
                          Deprecated and inert: it no longer affects the call.
                          It set how long the persona waited once the agent
                          stopped talking, and measured across production
                          simulations it moved the reply gap by less than the
                          noise floor, because model and speech latency dominate
                          it. Every persona now uses one voice-activity profile.
                          Use `interruption` for a caller who talks over the
                          agent. Still accepted and stored so existing clients
                          keep working. BARGE_IN is stored as `responseTiming:
                          QUICK` with `interruption: OCCASIONAL`.
                      interruption:
                        type: string
                        enum:
                          - 'OFF'
                          - BACKCHANNEL
                          - OCCASIONAL
                          - HEAVY
                        default: 'OFF'
                        description: >-
                          How much the persona talks over the agent while it is
                          still speaking. OFF waits its turn. BACKCHANNEL makes
                          listening noises ("mm-hm") over the agent without
                          taking the floor, which tests whether the agent
                          wrongly stops for them. OCCASIONAL adds cutting in on
                          some long agent turns, HEAVY on most of them. Timing
                          is randomised per turn, so two runs of the same
                          persona do not interrupt at identical moments.
                      backstoryPrompt:
                        type:
                          - string
                          - 'null'
                        description: >-
                          Background story and behavioral patterns for the
                          persona
                        example: A busy professional calling during lunch break
                      idleMessages:
                        type:
                          - array
                          - 'null'
                        items:
                          type: string
                        description: >-
                          Messages the persona will say when the agent goes
                          silent during a call. null = "Automatic":
                          language-appropriate defaults are used at call time.
                      idleTimeoutSeconds:
                        type: integer
                        minimum: 5
                        maximum: 60
                        default: 10
                        description: >-
                          Seconds of silence before the persona sends an idle
                          message
                      idleMessageMaxSpokenCount:
                        type: integer
                        minimum: 1
                        maximum: 10
                        default: 3
                        description: >-
                          Maximum number of idle messages the persona will send
                          before giving up
                      idleMessageResetCountOnUserSpeechEnabled:
                        type: boolean
                        default: true
                        description: >-
                          Whether the idle message counter resets when the agent
                          speaks
                      properties:
                        type: object
                        additionalProperties: {}
                        default: {}
                        description: Additional custom properties about the persona
                        example:
                          age: 35
                          zipCode: '94105'
                          occupation: Software Engineer
                      phoneNumber:
                        type: string
                        description: >-
                          The E.164 number every call with this persona uses,
                          when Roark has pinned one for your project. Present
                          only when set; read-only.
                        example: '+19312830919'
                      createdAt:
                        type: string
                        description: Creation timestamp
                      updatedAt:
                        type: string
                        description: Last update timestamp
                    required:
                      - id
                      - name
                      - language
                      - understoodLanguages
                      - accent
                      - age
                      - gender
                      - backgroundNoise
                      - speechPace
                      - speechClarity
                      - hasDisfluencies
                      - baseEmotion
                      - intentClarity
                      - confirmationStyle
                      - memoryReliability
                      - responseTiming
                      - interruption
                      - idleMessages
                      - idleTimeoutSeconds
                      - idleMessageMaxSpokenCount
                      - idleMessageResetCountOnUserSpeechEnabled
                      - properties
                      - createdAt
                      - updatedAt
                required:
                  - data
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
                description: Validation error
              example:
                type: validation
                code: invalid_parameter
                message: The request was invalid
                param: email
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
                description: Authentication error
              example:
                type: authentication
                code: unauthorized
                message: Authentication required
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
                description: Not found error
              example:
                type: not_found
                code: resource_not_found
                message: The requested resource could not be found
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
                description: Server error
              example:
                type: internal
                code: internal_error
                message: Internal server error
          description: Internal Server Error
      x-codeSamples:
        - lang: JavaScript
          source: >-
            import Roark from '@roarkanalytics/sdk';


            const client = new Roark({
              bearerToken: process.env['ROARK_API_BEARER_TOKEN'], // This is the default and can be omitted
            });


            const simulationPersona = await
            client.simulationPersona.update('personaId');


            console.log(simulationPersona.data);
        - lang: Python
          source: |-
            import os
            from roark_analytics import Roark

            client = Roark(
                bearer_token=os.environ.get("ROARK_API_BEARER_TOKEN"),  # This is the default and can be omitted
            )
            simulation_persona = client.simulation_persona.update(
                persona_id="personaId",
            )
            print(simulation_persona.data)
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        type:
          type: string
          enum:
            - validation
            - authentication
            - forbidden
            - not_found
            - conflict
            - payment_required
            - rate_limit
            - internal
          description: The error type category
          examples:
            - validation
            - authentication
        code:
          type: string
          description: Machine-readable error code identifier
          examples:
            - invalid_parameter
            - missing_required_field
            - unauthorized
        message:
          type: string
          description: Human-readable error message
          examples:
            - The request was invalid
            - Authentication required
        param:
          type: string
          description: The parameter that caused the error (if applicable)
          examples:
            - email
            - user_id
        details:
          description: Additional error context information
      required:
        - type
        - code
        - message
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT

````

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