POST
/
v1
/
agents
Create Agent
curl --request POST \
  --url https://api.eqho.ai/v1/agents \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <api-key>' \
  --data '{
  "name": "Liz",
  "description": "An agent that the sales team is testing.",
  "language": "EN",
  "avatar": "MAN",
  "voice_audio_id": "<string>",
  "role_ids": [
    "<string>"
  ],
  "action_ids": [
    "<string>"
  ],
  "action_flows": [
    [
      "<string>"
    ]
  ],
  "script_ids": [
    "<string>"
  ],
  "data_store_ids": [
    "<string>"
  ],
  "personality": {
    "adherence": 0.75,
    "empathy": 0.5,
    "humor": 0.25
  },
  "disable_greeting": true,
  "system_prompt": null,
  "conversation_flow_id": "<string>",
  "end_conversation_on_goodbye": true,
  "enable_user_idle_timeout": true,
  "enable_parallel_tool_calls": true,
  "ai_settings": {
    "ai_model": "<string>",
    "frequency_penalty": 123,
    "max_tokens": 123,
    "presence_penalty": 123,
    "temperature": 123
  },
  "greeting_type_inbound": "static",
  "greeting_type_outbound": "static",
  "structured_greetings": [
    {
      "call_type": "inbound",
      "greeting_type": "static",
      "text": "Hello! Welcome to our service. How can I assist you today?"
    }
  ],
  "tts_settings": {
    "utterance_end_ms": "1000",
    "smart_format": false,
    "profanity_filter": false,
    "punctuate": true,
    "numerals": false,
    "keywords": [
      "<string>"
    ],
    "diarize": false,
    "dictation": false,
    "endpointing": "10",
    "filler_words": false
  },
  "smart_turn_detection": true,
  "voice_settings": null,
  "feature_flags": null
}'
{
  "avatar": "WOMAN",
  "data_store_ids": [
    "65a9758171f55af646a19890"
  ],
  "description": "An agent that the sales team is testing.",
  "greeting_type_inbound": "static",
  "greeting_type_outbound": "ai",
  "name": "Liz",
  "personality": {
    "adherence": 0.75,
    "empathy": 0.5,
    "humor": 0.25
  },
  "role_ids": [
    "65a9758171f55af646a19890"
  ],
  "script_id": "65a9758171f55af646a19890",
  "structured_greetings": [
    {
      "call_type": "inbound",
      "greeting_type": "static",
      "text": "Hello! Welcome to our service. How can I assist you today?"
    },
    {
      "call_type": "outbound",
      "communication_tone": "friendly",
      "greeting_length": "short",
      "greeting_type": "ai",
      "mention_ids": [
        "673e488ce7d69488a458cf3e",
        "973e488ce7d69488a458cf3e"
      ]
    }
  ],
  "voice_audio_id": "Y94lg6clSowTJ0jJOlyc"
}

Authorizations

X-API-KEY
string
header
required

Body

application/json
name
string
required

The name of the agent. Agent may use this name in the conversation.

Examples:

"Liz"

voice_audio_id
string
required

Identifier of the voice that will be used by Agent, you can query them using GET /v1/voices

role_ids
string[]
required

The roles your agent will have, you can query them using GET /v1/roles. When multiple roles are provided, each role will be added to the LLM prompt using Eqho's proprietary prompt structure.

personality
object
required

Agent's personality settings.

description
string | null

The description of the agent. Only used for your own reference.

Examples:

"An agent that the sales team is testing."

language
enum<string>

The langauge Agent speaks in.

Available options:
multi,
bg,
ca,
cs,
da,
da-DK,
de,
de-CH,
el,
en,
en-US,
en-AU,
en-GB,
en-NZ,
en-IN,
es,
et,
fi,
fr,
fr-CA,
hi,
hu,
id,
it,
ja,
lt,
lv,
no,
nl,
pl,
pt,
pt-BR,
pt-PT,
ro,
ru,
sk,
th,
th-TH,
tr,
uk,
vi,
zh,
zh-CN,
zh-TW,
zh-HK
avatar
enum<string> | null

The avatar of the agent used in the UI and widget.

Available options:
MAN,
WOMAN
action_ids
string[] | null

The list of Action IDs Agent will have access to, you can query them using GET /v1/actions.

action_flows
string[][] | null

Action flows allow you to define sequences of actions that an agent must follow in a strict, ordered manner.

Each element in the action_flows array is a list of action ids. Within each list, the agent executes the actions in the order they are listed. Each action on the list should be an action ID listed in action_ids.

If not provided, the agent can execute actions from action_ids in any order.

Use case: appointment booking, where the agent must first check availability, create a calendar entry, and finally confirm the booking with the user.

script_ids
string[] | null

A list of script IDs that the agent will have access to; you can query them using GET /v1/scripts.

Assigning multiple scripts to an Agent is usually not recommended. When multiple scripts are provided, each script will be added to the LLM prompt using Eqho's proprietary prompt structure.

data_store_ids
string[] | null

A list of Knowledge Base IDs that the agent will have access to, you can query them using GET /v1/data-stores. Agent can use content from provided Knowledge Base to enrich responses.

disable_greeting
boolean | null
deprecated

Deprecated. This field is no longer recommended for use and will be removed in future versions. Use greeting_type with value 'none' instead.

system_prompt
object | null

Advanced setting to override the Eqho default system prompt. In most cases, you should not need to use this.

Examples:

null

conversation_flow_id
string | null

The conversation flow your agent should follow. If not provided, it is referred as Single Prompt agent. When provided, agent is referred as Conversation Flow agent. ID should be a valid Conversation Flows Id. Conversation flow agent allows you to create multiple nodes to handle different scenarios in the conversation.

end_conversation_on_goodbye
boolean | null

If true, the agent will end the conversation if the user or agent says 'goodbye' or a similar phrase.

enable_user_idle_timeout
boolean | null
default:false

If true, the agent will end the conversation if the user is idle (not talking, not typing) for a certain period of time. The agent will ask the user if they are still there up to 3 times before ending the conversation.

Amount of time agent waits for user to respond is set by Eqho and can not be changed.

enable_parallel_tool_calls
boolean | null
default:false

If true, the agent can execute multiple tools at the same time.

ai_settings
object | null

Settings for the Agent's LLM model.

greeting_type_inbound
enum<string> | null
default:static
Available options:
static,
ai,
none
greeting_type_outbound
enum<string> | null
default:static
Available options:
static,
ai,
none
structured_greetings
StructuredGreetingInputModel · object[] | null
tts_settings
object | null
smart_turn_detection
boolean | null
default:false

If true, the agent will use ML to detect turns changes in the conversation.

voice_settings
object | null

Advanced setting to override the Eqho default voice settings. In most cases, you should not need to use this. If not provided, the agent will use the default Eqho voice settings.

Examples:

null

feature_flags
string[] | null
Examples:

null

Response

Successful Response

Container for a single agent record.

name
string | null
language
enum<string>

Language codes that are supported by Eqho Agents.

Available options:
multi,
bg,
ca,
cs,
da,
da-DK,
de,
de-CH,
el,
en,
en-US,
en-AU,
en-GB,
en-NZ,
en-IN,
es,
et,
fi,
fr,
fr-CA,
hi,
hu,
id,
it,
ja,
lt,
lv,
no,
nl,
pl,
pt,
pt-BR,
pt-PT,
ro,
ru,
sk,
th,
th-TH,
tr,
uk,
vi,
zh,
zh-CN,
zh-TW,
zh-HK
description
string | null
avatar
string | null
voice_audio_id
string | null
role_ids
string[] | null
action_ids
string[] | null
action_flows
string[][] | null
script_id
string | null
deprecated

Deprecated. Use script_ids instead.

script_ids
string[] | null
data_store_ids
string[] | null
personality
object | null

Describes the personality of an agent. These values will be injected into the agent's prompt. LLM might use them to adjust the agent's responses.

disable_greeting
boolean | null
deprecated

Deprecated. This field is no longer recommended for use and will be removed in future versions. Use greeting_type with value 'none' instead.

rag_collection
string | null
system_prompt
object | null
conversation_flow_id
string | null
enable_parallel_tool_calls
boolean | null
default:false
end_conversation_on_goodbye
boolean | null
enable_user_idle_timeout
boolean | null
default:false
ai_settings
object | null

Settings for the Agent's LLM model.

tts_settings
object | null
voice_settings
object | null
greeting_type_inbound
enum<string> | null
default:static
Available options:
static,
ai,
none
greeting_type_outbound
enum<string> | null
default:static
Available options:
static,
ai,
none
structured_greetings
StructuredGreetingModel · object[] | null
greetings
string[] | null
deprecated

Deprecated. Use structured_greetings instead.

alias
string | null
smart_turn_detection
boolean | null
default:false
feature_flags
string[] | null
Examples:

"CHAT_HISTORY"

"VAPI_ENABLED"

"CONVERSATION_STREAM"

_id
string | null
account_id
string | null
enabled
boolean | null
default:true
history
object