Skip to main content
PATCH
/
agent-eval
/
personas
/
{id}
Update persona
curl --request PATCH \
  --url https://api.goyappr.com/agent-eval/personas/{id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "description": "<string>",
  "identity_prompt": "<string>",
  "behavior_traits": {},
  "voice_config": {}
}
'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "company_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "Frustrated tenant",
  "identity_prompt": "You are a 38-year-old tenant calling about a leaking pipe in your kitchen. You're frustrated because this is the third time you've reported it.",
  "language": "en",
  "created_at": "2023-11-07T05:31:56Z",
  "description": "<string>",
  "behavior_traits": {
    "patience": "low",
    "verbosity": "chatty",
    "cooperation": "cooperative",
    "interruption_tendency": "occasional",
    "goal": "Get a maintenance technician scheduled today"
  },
  "voice_config": {},
  "updated_at": "2023-11-07T05:31:56Z",
  "deleted_at": "2023-11-07T05:31:56Z"
}

Documentation Index

Fetch the complete documentation index at: https://docs.goyappr.com/llms.txt

Use this file to discover all available pages before exploring further.

Send only fields you want to change. Existing cases referencing the persona will use the updated identity on their next run — there is no version history on personas (use a separate persona row if you want to A/B compare two versions).

Authorizations

Authorization
string
header
required

Your Yappr API key (e.g. ypr_live_...). Generate one in the dashboard under Settings → API Keys.

Path Parameters

id
string<uuid>
required

Body

application/json
name
string
description
string | null
identity_prompt
string
behavior_traits
object
language
enum<string>
Available options:
he,
en
voice_config
object

Response

Updated persona

Reusable caller archetype consumed by eval cases. The identity_prompt plus behavior_traits shape how the persona LLM responds; the same persona can be reused across many cases.

id
string<uuid>
required
company_id
string<uuid>
required
name
string
required
Example:

"Frustrated tenant"

identity_prompt
string
required

System prompt fragment defining who the persona is. Written second-person ("You are…").

Example:

"You are a 38-year-old tenant calling about a leaking pipe in your kitchen. You're frustrated because this is the third time you've reported it."

language
enum<string>
default:en
required
Available options:
he,
en
created_at
string<date-time>
required
description
string | null
behavior_traits
object

Free-form JSON. Common keys: patience (low|medium|high), verbosity (terse|chatty), cooperation (cooperative|adversarial), interruption_tendency (none|occasional|frequent), accent / dialect hints, goal (what the persona is trying to achieve in the call).

Example:
{
"patience": "low",
"verbosity": "chatty",
"cooperation": "cooperative",
"interruption_tendency": "occasional",
"goal": "Get a maintenance technician scheduled today"
}
voice_config
object

Forward-compat for v2 voice-mode (TTS/STT loopback). Ignored in text mode.

updated_at
string<date-time>
deleted_at
string<date-time> | null