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

# Create a new persona

> Creates a new persona for the authenticated project.



## OpenAPI

````yaml /api-reference/openapi.documented.json post /v1/persona
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: Simulation Persona
  - name: Simulation Scenario
  - name: Simulation Run Plan
  - name: Simulation Run Plan Job
  - name: Simulation Job
  - name: HTTP Request Definition
  - name: Webhook
  - name: Issue
  - name: Knowledge Base
  - name: Call Analysis
  - name: Health
paths:
  /v1/persona:
    post:
      tags:
        - Simulation Persona
      summary: Create a new persona
      description: Creates a new persona for the authenticated project.
      operationId: postV1Persona
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name the agent will identify as during conversations
                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)
                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
                gender:
                  type: string
                  enum:
                    - MALE
                    - FEMALE
                  description: Gender of the persona
                backgroundNoise:
                  type: string
                  enum:
                    - NONE
                    - AIRPORT
                    - CHILDREN_PLAYING
                    - CITY
                    - COFFEE_SHOP
                    - DRIVING
                    - OFFICE
                    - THUNDERSTORM
                  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
                  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
                  default: NORMAL
                  description: >-
                    Controls how quickly the persona responds to pauses in
                    conversation (QUICK, NORMAL, RELAXED)
                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. Defaults to language-appropriate phrases when
                    omitted or sent as null.
                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:
                    path: /v1/integrations/livekit-sdk/chunk-upload-url
                  default: {}
                  description: Additional custom properties about the persona
                  example:
                    age: 35
                    zipCode: '94105'
                    occupation: Software Engineer
              required:
                - name
                - language
                - accent
                - gender
              title: CreatePersonaInput
              description: Input for creating a new persona
      responses:
        '201':
          description: The created 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
                      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)
                      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
                      gender:
                        type: string
                        enum:
                          - MALE
                          - FEMALE
                        description: Gender of the persona
                      backgroundNoise:
                        type: string
                        enum:
                          - NONE
                          - AIRPORT
                          - CHILDREN_PLAYING
                          - CITY
                          - COFFEE_SHOP
                          - DRIVING
                          - OFFICE
                          - THUNDERSTORM
                        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
                        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
                        default: NORMAL
                        description: >-
                          Controls how quickly the persona responds to pauses in
                          conversation (QUICK, NORMAL, RELAXED)
                      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:
                          path: /v1/integrations/livekit-sdk/chunk-upload-url
                        default: {}
                        description: Additional custom properties about the persona
                        example:
                          age: 35
                          zipCode: '94105'
                          occupation: Software Engineer
                      createdAt:
                        type: string
                        description: Creation timestamp
                      updatedAt:
                        type: string
                        description: Last update timestamp
                    required:
                      - id
                      - name
                      - language
                      - accent
                      - gender
                      - backgroundNoise
                      - speechPace
                      - speechClarity
                      - hasDisfluencies
                      - baseEmotion
                      - intentClarity
                      - confirmationStyle
                      - memoryReliability
                      - responseTiming
                      - 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
        '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.create({
              accent: 'US',
              gender: 'MALE',
              language: 'EN',
              name: 'name',
            });

            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.create(
                accent="US",
                gender="MALE",
                language="EN",
                name="name",
            )
            print(simulation_persona.data)
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        type:
          type: string
          enum:
            - validation
            - authentication
            - forbidden
            - not_found
            - conflict
            - 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

````