---
title: "Create a new persona"
method: POST
path: "/v1/persona"
tags: ["Simulation Persona"]
---

# Create a new persona

`POST /v1/persona`

Creates a new persona for the authenticated project.

## Request body

- object — Input for creating a new persona
  - `name` string, required — The name the agent will identify as during conversations
  - `description` string, nullable — Human-readable description of the persona
  - `language` 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT', required — Primary language ISO 639-1 code for the persona
  - `secondaryLanguage` 'EN', nullable — Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
  - `accent` 'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT', required — Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with optional variants
  - `gender` 'MALE' | 'FEMALE', required — Gender of the persona
  - `backgroundNoise` 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM' — Background noise setting
  - `speechPace` 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST' — Speech pace of the persona
  - `speechClarity` 'CLEAR' | 'VAGUE' | 'RAMBLING' — Speech clarity of the persona
  - `hasDisfluencies` boolean — Whether the persona uses filler words like "um" and "uh"
  - `baseEmotion` 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED' — Base emotional state of the persona
  - `intentClarity` 'CLEAR' | 'INDIRECT' | 'VAGUE' — How clearly the persona expresses their intentions
  - `confirmationStyle` 'EXPLICIT' | 'VAGUE' — How the persona confirms information
  - `memoryReliability` 'HIGH' | 'LOW' — How reliable the persona's memory is
  - `responseTiming` 'RELAXED' | 'NORMAL' | 'QUICK' — Controls how quickly the persona responds to pauses in conversation (QUICK, NORMAL, RELAXED)
  - `backstoryPrompt` string, nullable — Background story and behavioral patterns for the persona
  - `idleMessages` string[] — Messages the persona will say when the agent goes silent during a call
  - `idleTimeoutSeconds` integer — Seconds of silence before the persona sends an idle message
  - `idleMessageMaxSpokenCount` integer — Maximum number of idle messages the persona will send before giving up
  - `idleMessageResetCountOnUserSpeechEnabled` boolean — Whether the idle message counter resets when the agent speaks
  - `properties` object — Additional custom properties about the persona

## Response `201`

The created persona

- object
  - `data` object, required
    - `id` string, uuid, required — Unique identifier of the persona
    - `name` string, required — The name the agent will identify as during conversations
    - `description` string, nullable — Human-readable description of the persona
    - `language` 'EN' | 'ES' | 'DE' | 'HI' | 'FR' | 'NL' | 'AR' | 'EL' | 'IT' | 'ID' | 'TH' | 'JA' | 'TL' | 'MS' | 'ZH' | 'TR' | 'PT', required — Primary language ISO 639-1 code for the persona
    - `secondaryLanguage` 'EN', nullable — Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)
    - `accent` 'US' | 'US_X_SOUTH' | 'GB' | 'ES' | 'DE' | 'IN' | 'FR' | 'NL' | 'SA' | 'GR' | 'AU' | 'IT' | 'ID' | 'TH' | 'JP' | 'NZ' | 'PH' | 'SG' | 'MY' | 'HK' | 'TR' | 'PT', required — Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with optional variants
    - `gender` 'MALE' | 'FEMALE', required — Gender of the persona
    - `backgroundNoise` 'NONE' | 'AIRPORT' | 'CHILDREN_PLAYING' | 'CITY' | 'COFFEE_SHOP' | 'DRIVING' | 'OFFICE' | 'THUNDERSTORM', required — Background noise setting
    - `speechPace` 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST', required — Speech pace of the persona
    - `speechClarity` 'CLEAR' | 'VAGUE' | 'RAMBLING', required — Speech clarity of the persona
    - `hasDisfluencies` boolean, required — Whether the persona uses filler words like "um" and "uh"
    - `baseEmotion` 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED', required — Base emotional state of the persona
    - `intentClarity` 'CLEAR' | 'INDIRECT' | 'VAGUE', required — How clearly the persona expresses their intentions
    - `confirmationStyle` 'EXPLICIT' | 'VAGUE', required — How the persona confirms information
    - `memoryReliability` 'HIGH' | 'LOW', required — How reliable the persona's memory is
    - `responseTiming` 'RELAXED' | 'NORMAL' | 'QUICK', required — Controls how quickly the persona responds to pauses in conversation (QUICK, NORMAL, RELAXED)
    - `backstoryPrompt` string, nullable — Background story and behavioral patterns for the persona
    - `idleMessages` string[], required — Messages the persona will say when the agent goes silent during a call
    - `idleTimeoutSeconds` integer, required — Seconds of silence before the persona sends an idle message
    - `idleMessageMaxSpokenCount` integer, required — Maximum number of idle messages the persona will send before giving up
    - `idleMessageResetCountOnUserSpeechEnabled` boolean, required — Whether the idle message counter resets when the agent speaks
    - `properties` object, required — Additional custom properties about the persona
    - `createdAt` string, required — Creation timestamp
    - `updatedAt` string, required — Last update timestamp

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `500` — Internal Server Error

---

[API](https://skmtc.net/roarkhq/apis/roark-analytics-api.md) · [All operations](https://skmtc.net/roarkhq/apis/roark-analytics-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/roarkhq/roark-analytics-api/versions/83528d3618ef/schema)
