POST
/
v2
/
personas
curl --request POST \
  --url https://tavusapi.com/v2/personas \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '{
  "persona_name": "Life Coach",
  "system_prompt": "As a Life Coach, you are a dedicated professional who specializes in...",
  "pipeline_mode": "full",
  "context": "Here are a few times that you have helped an individual make a breakthrough in...",
  "default_replica_id": "r79e1c033f",
  "layers": {
    "llm": {
      "model": "<string>",
      "base_url": "your-base-url",
      "api_key": "your-api-key",
      "tools": [
        {
          "type": "function",
          "function": {
            "name": "get_current_weather",
            "description": "Get the current weather in a given location",
            "parameters": {
              "type": "object",
              "properties": {
                "location": {
                  "type": "string",
                  "description": "The city and state, e.g. San Francisco, CA"
                },
                "unit": {
                  "type": "string",
                  "enum": [
                    "celsius",
                    "fahrenheit"
                  ]
                }
              },
              "required": [
                "location"
              ]
            }
          }
        }
      ]
    },
    "tts": {
      "api_key": "your-api-key",
      "tts_engine": "cartesia",
      "external_voice_id": "external-voice-id",
      "voice_settings": {
        "speed": "normal",
        "emotion": [
          "positivity:high",
          "curiosity"
        ]
      },
      "playht_user_id": "your-playht-user-id",
      "tts_emotion_control": "false",
      "tts_model_name": "sonic"
    },
    "perception": {
      "perception_model": "raven-0",
      "ambient_awareness_queries": [
        "Is the user showing an ID card?",
        "Does the user appear distressed or uncomfortable?"
      ],
      "perception_tool_prompt": "You have a tool to notify the system when an ID card is detected, named `notify_if_id_shown`. You MUST use this tool when a form of ID is detected.",
      "perception_tools": [
        {
          "type": "function",
          "function": {
            "name": "notify_if_id_shown",
            "description": "Use this function when a drivers license or passport is detected in the image with high confidence. After collecting the ID, internally use final_ask()",
            "parameters": {
              "type": "object",
              "properties": {
                "id_type": {
                  "type": "string",
                  "description": "best guess on what type of ID it is"
                }
              },
              "required": [
                "id_type"
              ]
            }
          }
        }
      ]
    },
    "stt": {
      "stt_engine": "tavus-turbo",
      "participant_pause_sensitivity": "high",
      "participant_interrupt_sensitivity": "high",
      "hotwords": "Roey is the name of the person you'\''re speaking with.",
      "smart_turn_detection": true
    }
  }
}'
{
  "persona_id": "p5317866",
  "persona_name": "Life Coach",
  "created_at": "<string>"
}

Authorizations

x-api-key
string
header
required

Body

application/json
persona_name
string

A name for the persona.

Example:

"Life Coach"

system_prompt
string

This is the system prompt that will be used by the llm.

Example:

"As a Life Coach, you are a dedicated professional who specializes in..."

pipeline_mode
enum<string>

The pipeline mode to use for the persona. Possible values: full, echo. full will provide the default end-to-end experience. echo will turn off most steps, and allow the replica to sync video with audio passed in through Echo events, which it will speak out.

Available options:
full,
echo
context
string

This is the context that will be used by the llm.

Example:

"Here are a few times that you have helped an individual make a breakthrough in..."

default_replica_id
string

The default replica_id associated with this persona if one exists. When creating a conversation, a persona_id with a default_replica_id associated can we used to create a conversation without specifying a replica_id.

Example:

"r79e1c033f"

layers
object

Response

200 - application/json
persona_id
string

A unique identifier for the persona.

Example:

"p5317866"

persona_name
string

The name of the persona.

Example:

"Life Coach"

created_at
string

The date and time the persona was created.