Create Agent
Agents
Create Agent
Create a new AI agent with custom configuration
POST
Create Agent
Overview
Creates a new AI agent that can handle phone calls, SMS messages, and chat conversations. Agents are fully customizable with their own personality, voice, and capabilities.Request
Headers
Bearer token — either a Supabase JWT or a
mgp_ API key.Must be
application/jsonBody Parameters
Display name for the agent.Example:
"Reception Agent"Constraints:- 1-100 characters
The message the agent says when answering a call.Example:
"Hello, thanks for calling Acme Corp. How can I help you today?"Constraints:- Maximum 500 characters
- Should be under 15 seconds when spoken
Instructions that define the agent’s personality, knowledge, and behavior. This is the most important setting for customizing agent responses.Example:Constraints:
- Maximum 10,000 characters
- Supports markdown formatting
ID of the voice to use for phone calls. Use the List Voices endpoint to get all available options, including any cloned voices on your account.ElevenLabs voices:
OpenAI voices (prefix
Default:
| Voice ID | Name | Description |
|---|---|---|
EXAVITQu4vr4xnSDxMaL | Sarah | Professional, American female |
MF3mGyEYCl7XYWbV9V6O | Elli | Youthful, American female |
TxGEqnHWrfWFTfGW9XjX | Josh | Strong, American male |
pFZP5JQG7iQjIQuC4Bku | Lily | Confident, British female |
nPczCjzI2devNBz1zQrb | Brian | Classy, American male |
onwK4e9ZLuTAKqWW03F9 | Daniel | Formal, British male |
cjVigY5qzO86Huf0OWal | Eric | Friendly, American male |
cgSgspJ2msm6clMCkdW9 | Jessica | Expressive, American female |
XrExE9yKIg1WjnnlVkGX | Matilda | Upbeat, American female |
CwhRBWXzGAHq8TQ4Fs17 | Roger | Classy, American male |
FGY2WhTYpPnrIDTdsKH5 | Laura | Sassy, American female |
IKne3meq5aSn9XLyUdCD | Charlie | Hyped, Australian male |
JBFqnCBsd6RMkjVDRZzb | George | Mature, British male |
N2lVS1w4EtoT3dr4eOWO | Callum | Husky, American male |
SAz9YHcvj6GT2YYXdXww | River | Calm, neutral American |
SOYHLrjzK2X1ezoPC6cr | Harry | Rough, American male |
TX3LPaxmHKxFdv7VOQHJ | Liam | Confident, American male |
Xb7hH8MSUJpSbSDYk0k2 | Alice | Professional, British female |
bIHbv24MWmeRgasZH58o | Will | Chill, American male |
hpp4J3VqNfWAUOO0d1Us | Bella | Professional, American female |
iP95p4xoKVk53GoZ742B | Chris | Casual, American male |
pNInz6obpgDQGcFmaJgB | Adam | Deep, American male |
pqHfZKP75CvOlQylNhV4 | Bill | Trustworthy, American male |
openai-):| Voice ID | Name | Description |
|---|---|---|
openai-alloy | Alloy | Neutral, professional |
openai-echo | Echo | Warm, friendly |
openai-fable | Fable | Expressive, dynamic |
openai-nova | Nova | Bright, energetic |
openai-onyx | Onyx | Deep, authoritative |
openai-shimmer | Shimmer | Soft, calm |
EXAVITQu4vr4xnSDxMaL (Sarah)LLM model for conversations. Use the List Models endpoint to get all available options.
Default:
| Model ID | Description |
|---|---|
gpt-4.1 | Recommended — best balance of speed and quality (default) |
gpt-4o-mini | Fast and cost-effective |
gpt-4o | Most capable, higher latency |
gpt-4.1Primary language for the agent.Default:
en-USSupported: en-US, en-GB, es-ES, fr-FR, de-DEThe channel type this agent handles.
Default:
| Value | Description |
|---|---|
inbound_voice | Answers incoming phone calls (default) |
outbound_voice | Places outgoing phone calls |
text | Handles SMS conversations |
chat_widget | Handles web chat widget conversations |
whatsapp | Handles WhatsApp messages |
email | Handles email conversations |
inbound_voiceName of the organization the agent represents.Example:
"Acme Corp"Name of the agent’s owner.Example:
"Jane Smith"Description of the agent’s role.Example:
"Front desk receptionist"Phone number to transfer calls to when requested.Example:
"+14155551234"Whether the agent is active and can receive calls.Default:
trueLLM temperature for response creativity.Default:
0.7Range: 0 to 1Configuration for agent functions (capabilities) the agent can use during calls.
Transfer number format:
Example:
end_call
| Property | Type | Description |
|---|---|---|
enabled | boolean | Allow agent to hang up when conversation is complete. Default: true |
description | string | When to end calls. Default: “End the call when the conversation is complete or caller says goodbye.” |
transfer
| Property | Type | Description |
|---|---|---|
enabled | boolean | Allow agent to transfer calls. Default: false |
numbers | array | Transfer destinations. Each: { number, label, description } |
description | string | General instruction for transfer behavior |
sms
| Property | Type | Description |
|---|---|---|
enabled | boolean | Allow agent to send SMS messages. Default: false |
description | string | When to send SMS |
templates | array | Pre-defined message templates |
extract_data
| Property | Type | Description |
|---|---|---|
enabled | boolean | Extract structured data from conversations. Default: false |
schema | object | JSON schema defining fields to extract |
description | string | What data to collect |
booking
| Property | Type | Description |
|---|---|---|
enabled | boolean | Allow agent to book appointments. Default: false |
calendar_id | string | Connected calendar ID |
description | string | Booking behavior instruction |
get_availability | object | { enabled, description } for availability checks |
Dynamic variables for extracting structured data from conversations. These are stored separately from the agent config and define what information the AI should capture during calls.Each variable object:You can also manage dynamic variables independently via the Dynamic Variables API.
name(string, required) — Variable name (e.g.,caller_name)description(string) — What to extractvar_type(string) —text(default),number,boolean, orenumenum_options(array) — Required whenvar_typeisenum
Response
Returns the full agent object wrapped in anagent key.
Example Request
Example Response
Error Responses
Related Endpoints
- List Agents - Get all agents
- Get Agent - Get agent details
- Update Agent - Modify an agent
- Delete Agent - Remove an agent