Agents API

List agents

GET/v1/agents

Returns

200.

curl "https://api.dialgem.com/v1/agents" \
  -H "X-API-Key: $DIALGEM_API_KEY"
Response 200
[
  {
    "id": "string",
    "agent_id": "agent_123",
    "name": "Example",
    "agent_type": "string",
    "system_prompt": "string",
    "llm_provider": "string",
    "llm_model": "string",
    "tts_engine": "string",
    "voice_id": "voice_123",
    "first_message": "string",
    "temperature": 0,
    "max_tokens": 0
  }
]

Create agent

POST/v1/agents

Request body application/json

namestringrequired
agent_typestring

One of llm, multi_prompt, flow

Default "llm"

system_promptstring
statesarray<object>
4 properties
namestringrequired
state_promptstring
edgesarray<object>
3 properties
destination_state_namestringrequired
descriptionstring
parametersobject
toolsarray<object>
14 properties
namestringrequired
idstring
descriptionstring
parametersobject
urlstring
methodstring

Default "POST"

timeout_msinteger

Default 10000

headersarray<object>
query_paramsarray<object>
speak_during_executionstring
Show 4 more parameters
speak_after_executionboolean

Default true

args_at_rootboolean

Default false

kindstring

One of custom, check_availability_cal, book_appointment_cal, cancel_appointment_cal, reschedule_appointment_cal, check_availability_gcal, book_appointment_gcal, end_call, transfer_call, press_digit, agent_swap

Default "custom"

configobject
starting_statestring
default_dynamic_variablesobject
llm_providerstring

One of anthropic, openai

llm_modelstring
tts_enginestring

Default "cartesia"

voice_idstring
Show 58 more parameters
first_messagestring
temperaturenumber

Default 0.7

max_tokensinteger

Default 150

flow_configobject
23 properties
nodesarray<object>
21 properties
idstringrequired
typestringrequired
instructionobjectrequired
namestring
display_positionobject
global_node_settingobject
edgesarray<object>
else_edgeobject
always_edgeobject
skip_response_edgeobject
Show 11 more parameters
model_choiceobject
interruption_sensitivitynumber
responsivenessnumber
voice_speednumber
allow_dtmf_interruptionboolean
reminder_trigger_msnumber
reminder_max_countinteger
knowledge_base_idsarray<string>
kb_configobject
finetune_conversation_examplesarray<any>
finetune_transition_examplesarray<any>
start_node_idstring
start_speakerstring

One of user, agent

global_promptstring
model_choiceobject
3 properties
typestring
modelstring
high_priorityboolean
model_temperaturenumber
tool_call_strict_modeboolean
default_dynamic_variablesobject
knowledge_base_idsarray<string>
kb_configobject
2 properties
top_kinteger
filter_scorenumber
Show 13 more parameters
toolsarray<object>
11 properties
tool_idstringrequired
typestring
namestring
descriptionstring
urlstring
methodstring
parametersobject
timeout_msinteger
speak_during_executionboolean
speak_after_executionboolean
response_variablesobject
mcpsarray<any>
componentsarray<any>
notesarray<any>
begin_after_user_silence_msinteger
begin_tag_display_positionobject
2 properties
xnumber
ynumber
flex_modeboolean
is_transfer_llmboolean
conversation_flow_idstring
versioninteger
last_modification_timestampinteger
is_publishedboolean
dialgem_extensionsobject
5 properties
uses_extensionsboolean
featuresarray<string>
content_hashstring
equation_grammar_versioninteger
not_runnablearray<object>
flow_idstring
llm_idstring
responsivenessnumber

Default 1

interruption_sensitivitynumber

Default 1

enable_backchannelboolean

Default false

backchannel_frequencynumber

Default 0.8

reminder_trigger_msinteger

Default 10000

reminder_messagestring
reminder_max_countinteger
pronunciation_dictionaryarray<object>
5 properties
wordstringrequired
aliasstring
alphabetstring

One of ipa, cmu

phonemestring
case_sensitiveboolean

Default false

allow_user_dtmfboolean

Default false

user_dtmf_optionsobject
ambient_soundstring

One of none, coffee-shop, call-center, convention-hall, summer-outdoor, mountain-outdoor, static-noise

Default "none"

ambient_sound_volumenumber

Default 1

voice_speednumber

Default 1

voice_temperaturenumber

Default 0.5

stt_modelstring

One of whisper, conformer, deepgram

languagestring

Default "en"

enable_transcription_formattingboolean

Default false

boosted_keywordsarray<string>
denoising_modestring

One of off, noise-cancellation, noise-and-background-speech-cancellation

Default "off"

adaptive_response_waitboolean

Default false

denoising_strengthnumber

Default 0.5

stt_modestring

One of fast, accurate

Default "fast"

vocab_specializationstring

One of general, medical

Default "general"

begin_message_delay_msinteger

Default 0

end_call_after_silence_msinteger

Default 600000

max_call_duration_msinteger

Default 3600000

ring_duration_msinteger

Default 30000

voicemail_detection_enabledboolean

Default false

voicemail_actionstring

One of hangup, leave_message

Default "hangup"

voicemail_messagestring
voicemail_promptstring
ivr_hangup_enabledboolean

Default false

ivr_promptstring
call_screen_handling_enabledboolean

Default false

call_screen_messagestring
dnc_detection_enabledboolean

Default false

post_call_analysis_dataarray<object>
6 properties
namestringrequired
typestringrequired

One of string, number, boolean, enum

descriptionstring
choicesarray<string>
requiredboolean

Default false

examplesarray<string>
post_call_analysis_modelstring

Default "claude-sonnet-4-6"

post_call_builtin_fieldsobject
fallback_llm_providerstring

One of anthropic, openai

fallback_llm_modelstring
fallback_voice_idstring
pii_redaction_enabledboolean

Default false

opt_out_call_recordingboolean

Default false

opt_out_transcript_storageboolean

Default false

data_retention_daysinteger
data_storage_settingstring

One of everything, everything_except_pii, basic_attributes_only

Default "everything"

pii_categoriesarray<string>
webhook_urlstring
webhook_eventsarray<string>
webhook_signing_secretstring
webhook_timeout_msinteger

Default 10000

Returns

201 with the fields below.

idstringrequired

The agent's id.

agent_idstringrequired

The agent's id. Same value as `id`.

namestringrequired

Display name.

agent_typestringrequired

How the agent is driven: `llm`, `multi_prompt` or `flow`.

system_promptstringrequired

The instructions the model follows on every call.

llm_providerstringrequired

Which model provider answers: `anthropic` or `openai`.

llm_modelstringrequired

The model that answers the caller.

tts_enginestringrequired

The speech engine that voices the agent.

voice_idstringrequired

The voice the agent speaks with.

temperaturenumberrequired

How varied the model's replies are.

Show 65 more parameters
max_tokensintegerrequired

The longest reply the model may produce, in tokens.

statesarray<object>required

The prompt states of a `multi_prompt` agent. Empty for other agent types.

default_dynamic_variablesobjectrequired

Values filled into `{{variables}}` in the prompt when a call does not supply its own.

responsivenessnumberrequired

How quickly the agent replies once the caller stops talking, from 0 to 1.

interruption_sensitivitynumberrequired

How easily the caller can interrupt the agent, from 0 to 1.

enable_backchannelbooleanrequired

Whether the agent says short acknowledgements such as "uh-huh" while the caller talks.

backchannel_frequencynumberrequired

How often the agent backchannels, from 0 to 1.

reminder_trigger_msintegerrequired

How long the caller can stay silent, in milliseconds, before the agent sends a reminder.

reminder_messagestringrequired

What the agent says as a reminder. Empty means the model decides.

pronunciation_dictionaryarray<object>required

Words with a spoken form to use instead of the default.

allow_user_dtmfbooleanrequired

Whether keypad presses from the caller are passed to the agent.

user_dtmf_optionsobjectrequired

How keypad input is collected: digit limit, end key and timeout.

ambient_soundstringrequired

Background sound mixed into the call, or `none`.

ambient_sound_volumenumberrequired

Volume of the background sound.

voice_speednumberrequired

Speaking speed. 1.0 is normal.

voice_temperaturenumberrequired

How expressive the voice is, from 0 to 1.

stt_modelstringrequired

The speech recognition model that transcribes the caller.

languagestringrequired

The language the agent listens for.

enable_transcription_formattingbooleanrequired

Whether transcripts get punctuation and number formatting.

boosted_keywordsarray<string>required

Words the speech recognizer should favor.

denoising_modestringrequired

How background noise is removed from the caller's audio.

adaptive_response_waitbooleanrequired

Whether the agent waits longer when the caller sounds unfinished.

denoising_strengthnumberrequired

How aggressively noise is removed, from 0 to 1.

stt_modestringrequired

Whether transcription favors speed (`fast`) or accuracy.

vocab_specializationstringrequired

The vocabulary the recognizer is tuned for, such as `general` or `medical`.

begin_message_delay_msintegerrequired

How long the agent waits before its first message, in milliseconds.

end_call_after_silence_msintegerrequired

The call ends after this much silence, in milliseconds.

max_call_duration_msintegerrequired

The longest a call may run, in milliseconds.

ring_duration_msintegerrequired

How long an outbound call rings before giving up, in milliseconds.

voicemail_detection_enabledbooleanrequired

Whether the agent detects when a voicemail box answers.

voicemail_actionstringrequired

What to do on voicemail: `hangup` or `leave_message`.

voicemail_messagestringrequired

The message left on voicemail when `voicemail_action` is `leave_message`.

voicemail_promptstringrequired

Extra instructions that help the agent recognize a voicemail greeting.

ivr_hangup_enabledbooleanrequired

Whether the agent hangs up when it reaches an automated phone menu.

ivr_promptstringrequired

Extra instructions that help the agent recognize an automated phone menu.

call_screen_handling_enabledbooleanrequired

Whether the agent handles call-screening prompts.

call_screen_messagestringrequired

What the agent says to a call-screening prompt.

dnc_detection_enabledbooleanrequired

Whether the agent ends the call when the caller asks not to be contacted again.

post_call_analysis_dataarray<object>required

Custom fields extracted from every call after it ends.

post_call_analysis_modelstringrequired

The model that analyzes calls after they end.

post_call_builtin_fieldsobjectrequired

Settings for the built-in analysis fields: `call_summary`, `call_successful` and `user_sentiment`. A field you have not customized is absent.

pii_redaction_enabledbooleanrequired

Whether personal information is removed from stored transcripts.

opt_out_call_recordingbooleanrequired

True if calls are not recorded.

opt_out_transcript_storagebooleanrequired

True if transcripts are not stored.

data_storage_settingstringrequired

What call data is stored, such as `everything`.

pii_categoriesarray<string>required

The kinds of personal information that are redacted.

webhook_eventsarray<string>required

The call events sent to the webhook.

has_webhook_signing_secretbooleanrequired

Whether a signing secret is set.

webhook_timeout_msintegerrequired

How long to wait for the webhook to answer, in milliseconds.

phone_numbersarray<string>required

Numbers that send calls to, or place calls from, this agent. Only filled in the list response.

call_countintegerrequired

How many calls the agent has handled. Zero in the create and update responses.

first_messagestring

What the agent says when the call connects. Null means it waits for the caller to speak first.

flow_configobject

The conversation flow, for `flow` agents. Null for other agent types.

starting_statestring

The name of the state a `multi_prompt` agent starts in.

reminder_max_countinteger

The most reminders sent in a row. Null means no limit.

fallback_llm_providerstring

Provider of the backup model used if the main one fails.

fallback_llm_modelstring

The backup model used if the main one fails.

fallback_voice_idstring

The backup voice used if the main one fails.

data_retention_daysinteger

Days call data is kept before deletion. Null keeps it until you delete it.

webhook_urlstring

Where call events are sent for this agent.

webhook_signing_secretstring

The secret used to sign webhook deliveries. Returned when you create, fetch or update one agent, and null in the list.

created_atstring

ISO 8601 creation time.

updated_atstring

ISO 8601 time of the last change.

folder_idstring

The folder the agent is in. Null means it is under All agents.

flow_validationobject

Present only when a flow was saved with warnings.

1 properties
issuesarray<object>required

Warnings found in the flow. The flow was still saved. Each issue says where the problem is and what it is.

curl -X POST "https://api.dialgem.com/v1/agents" \
  -H "X-API-Key: $DIALGEM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Example"
  }'
Response 201
{
  "id": "string",
  "agent_id": "agent_123",
  "name": "Example",
  "agent_type": "string",
  "system_prompt": "string",
  "llm_provider": "string",
  "llm_model": "string",
  "tts_engine": "string",
  "voice_id": "voice_123",
  "first_message": "string",
  "temperature": 0,
  "max_tokens": 0
}

Get agent

GET/v1/agents/{agent_id}

Path parameters

agent_idstringrequired

Returns

200 with the fields below.

idstringrequired

The agent's id.

agent_idstringrequired

The agent's id. Same value as `id`.

namestringrequired

Display name.

agent_typestringrequired

How the agent is driven: `llm`, `multi_prompt` or `flow`.

system_promptstringrequired

The instructions the model follows on every call.

llm_providerstringrequired

Which model provider answers: `anthropic` or `openai`.

llm_modelstringrequired

The model that answers the caller.

tts_enginestringrequired

The speech engine that voices the agent.

voice_idstringrequired

The voice the agent speaks with.

temperaturenumberrequired

How varied the model's replies are.

Show 65 more parameters
max_tokensintegerrequired

The longest reply the model may produce, in tokens.

statesarray<object>required

The prompt states of a `multi_prompt` agent. Empty for other agent types.

default_dynamic_variablesobjectrequired

Values filled into `{{variables}}` in the prompt when a call does not supply its own.

responsivenessnumberrequired

How quickly the agent replies once the caller stops talking, from 0 to 1.

interruption_sensitivitynumberrequired

How easily the caller can interrupt the agent, from 0 to 1.

enable_backchannelbooleanrequired

Whether the agent says short acknowledgements such as "uh-huh" while the caller talks.

backchannel_frequencynumberrequired

How often the agent backchannels, from 0 to 1.

reminder_trigger_msintegerrequired

How long the caller can stay silent, in milliseconds, before the agent sends a reminder.

reminder_messagestringrequired

What the agent says as a reminder. Empty means the model decides.

pronunciation_dictionaryarray<object>required

Words with a spoken form to use instead of the default.

allow_user_dtmfbooleanrequired

Whether keypad presses from the caller are passed to the agent.

user_dtmf_optionsobjectrequired

How keypad input is collected: digit limit, end key and timeout.

ambient_soundstringrequired

Background sound mixed into the call, or `none`.

ambient_sound_volumenumberrequired

Volume of the background sound.

voice_speednumberrequired

Speaking speed. 1.0 is normal.

voice_temperaturenumberrequired

How expressive the voice is, from 0 to 1.

stt_modelstringrequired

The speech recognition model that transcribes the caller.

languagestringrequired

The language the agent listens for.

enable_transcription_formattingbooleanrequired

Whether transcripts get punctuation and number formatting.

boosted_keywordsarray<string>required

Words the speech recognizer should favor.

denoising_modestringrequired

How background noise is removed from the caller's audio.

adaptive_response_waitbooleanrequired

Whether the agent waits longer when the caller sounds unfinished.

denoising_strengthnumberrequired

How aggressively noise is removed, from 0 to 1.

stt_modestringrequired

Whether transcription favors speed (`fast`) or accuracy.

vocab_specializationstringrequired

The vocabulary the recognizer is tuned for, such as `general` or `medical`.

begin_message_delay_msintegerrequired

How long the agent waits before its first message, in milliseconds.

end_call_after_silence_msintegerrequired

The call ends after this much silence, in milliseconds.

max_call_duration_msintegerrequired

The longest a call may run, in milliseconds.

ring_duration_msintegerrequired

How long an outbound call rings before giving up, in milliseconds.

voicemail_detection_enabledbooleanrequired

Whether the agent detects when a voicemail box answers.

voicemail_actionstringrequired

What to do on voicemail: `hangup` or `leave_message`.

voicemail_messagestringrequired

The message left on voicemail when `voicemail_action` is `leave_message`.

voicemail_promptstringrequired

Extra instructions that help the agent recognize a voicemail greeting.

ivr_hangup_enabledbooleanrequired

Whether the agent hangs up when it reaches an automated phone menu.

ivr_promptstringrequired

Extra instructions that help the agent recognize an automated phone menu.

call_screen_handling_enabledbooleanrequired

Whether the agent handles call-screening prompts.

call_screen_messagestringrequired

What the agent says to a call-screening prompt.

dnc_detection_enabledbooleanrequired

Whether the agent ends the call when the caller asks not to be contacted again.

post_call_analysis_dataarray<object>required

Custom fields extracted from every call after it ends.

post_call_analysis_modelstringrequired

The model that analyzes calls after they end.

post_call_builtin_fieldsobjectrequired

Settings for the built-in analysis fields: `call_summary`, `call_successful` and `user_sentiment`. A field you have not customized is absent.

pii_redaction_enabledbooleanrequired

Whether personal information is removed from stored transcripts.

opt_out_call_recordingbooleanrequired

True if calls are not recorded.

opt_out_transcript_storagebooleanrequired

True if transcripts are not stored.

data_storage_settingstringrequired

What call data is stored, such as `everything`.

pii_categoriesarray<string>required

The kinds of personal information that are redacted.

webhook_eventsarray<string>required

The call events sent to the webhook.

has_webhook_signing_secretbooleanrequired

Whether a signing secret is set.

webhook_timeout_msintegerrequired

How long to wait for the webhook to answer, in milliseconds.

phone_numbersarray<string>required

Numbers that send calls to, or place calls from, this agent. Only filled in the list response.

call_countintegerrequired

How many calls the agent has handled. Zero in the create and update responses.

first_messagestring

What the agent says when the call connects. Null means it waits for the caller to speak first.

flow_configobject

The conversation flow, for `flow` agents. Null for other agent types.

starting_statestring

The name of the state a `multi_prompt` agent starts in.

reminder_max_countinteger

The most reminders sent in a row. Null means no limit.

fallback_llm_providerstring

Provider of the backup model used if the main one fails.

fallback_llm_modelstring

The backup model used if the main one fails.

fallback_voice_idstring

The backup voice used if the main one fails.

data_retention_daysinteger

Days call data is kept before deletion. Null keeps it until you delete it.

webhook_urlstring

Where call events are sent for this agent.

webhook_signing_secretstring

The secret used to sign webhook deliveries. Returned when you create, fetch or update one agent, and null in the list.

created_atstring

ISO 8601 creation time.

updated_atstring

ISO 8601 time of the last change.

folder_idstring

The folder the agent is in. Null means it is under All agents.

flow_validationobject

Present only when a flow was saved with warnings.

1 properties
issuesarray<object>required

Warnings found in the flow. The flow was still saved. Each issue says where the problem is and what it is.

curl "https://api.dialgem.com/v1/agents/AGENT_ID" \
  -H "X-API-Key: $DIALGEM_API_KEY"
Response 200
{
  "id": "string",
  "agent_id": "agent_123",
  "name": "Example",
  "agent_type": "string",
  "system_prompt": "string",
  "llm_provider": "string",
  "llm_model": "string",
  "tts_engine": "string",
  "voice_id": "voice_123",
  "first_message": "string",
  "temperature": 0,
  "max_tokens": 0
}

Update agent

PATCH/v1/agents/{agent_id}

Path parameters

agent_idstringrequired

Request body application/json

namestring
folder_idstring
agent_typestring

One of llm, multi_prompt, flow

system_promptstring
statesarray<object>
4 properties
namestringrequired
state_promptstring
edgesarray<object>
3 properties
destination_state_namestringrequired
descriptionstring
parametersobject
toolsarray<object>
14 properties
namestringrequired
idstring
descriptionstring
parametersobject
urlstring
methodstring

Default "POST"

timeout_msinteger

Default 10000

headersarray<object>
query_paramsarray<object>
speak_during_executionstring
Show 4 more parameters
speak_after_executionboolean

Default true

args_at_rootboolean

Default false

kindstring

One of custom, check_availability_cal, book_appointment_cal, cancel_appointment_cal, reschedule_appointment_cal, check_availability_gcal, book_appointment_gcal, end_call, transfer_call, press_digit, agent_swap

Default "custom"

configobject
starting_statestring
default_dynamic_variablesobject
llm_providerstring

One of anthropic, openai

llm_modelstring
tts_enginestring
Show 59 more parameters
voice_idstring
first_messagestring
temperaturenumber
max_tokensinteger
flow_configobject
23 properties
nodesarray<object>
21 properties
idstringrequired
typestringrequired
instructionobjectrequired
namestring
display_positionobject
global_node_settingobject
edgesarray<object>
else_edgeobject
always_edgeobject
skip_response_edgeobject
Show 11 more parameters
model_choiceobject
interruption_sensitivitynumber
responsivenessnumber
voice_speednumber
allow_dtmf_interruptionboolean
reminder_trigger_msnumber
reminder_max_countinteger
knowledge_base_idsarray<string>
kb_configobject
finetune_conversation_examplesarray<any>
finetune_transition_examplesarray<any>
start_node_idstring
start_speakerstring

One of user, agent

global_promptstring
model_choiceobject
3 properties
typestring
modelstring
high_priorityboolean
model_temperaturenumber
tool_call_strict_modeboolean
default_dynamic_variablesobject
knowledge_base_idsarray<string>
kb_configobject
2 properties
top_kinteger
filter_scorenumber
Show 13 more parameters
toolsarray<object>
11 properties
tool_idstringrequired
typestring
namestring
descriptionstring
urlstring
methodstring
parametersobject
timeout_msinteger
speak_during_executionboolean
speak_after_executionboolean
response_variablesobject
mcpsarray<any>
componentsarray<any>
notesarray<any>
begin_after_user_silence_msinteger
begin_tag_display_positionobject
2 properties
xnumber
ynumber
flex_modeboolean
is_transfer_llmboolean
conversation_flow_idstring
versioninteger
last_modification_timestampinteger
is_publishedboolean
dialgem_extensionsobject
5 properties
uses_extensionsboolean
featuresarray<string>
content_hashstring
equation_grammar_versioninteger
not_runnablearray<object>
flow_idstring
llm_idstring
responsivenessnumber
interruption_sensitivitynumber
enable_backchannelboolean
backchannel_frequencynumber
reminder_trigger_msinteger
reminder_messagestring
reminder_max_countinteger
pronunciation_dictionaryarray<object>
5 properties
wordstringrequired
aliasstring
alphabetstring

One of ipa, cmu

phonemestring
case_sensitiveboolean

Default false

allow_user_dtmfboolean
user_dtmf_optionsobject
3 properties
digit_limitinteger
termination_keystring

One of 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, #, *

timeout_msinteger

Default 2500

ambient_soundstring

One of none, coffee-shop, call-center, convention-hall, summer-outdoor, mountain-outdoor, static-noise

ambient_sound_volumenumber
voice_speednumber
voice_temperaturenumber
stt_modelstring

One of whisper, conformer, deepgram

languagestring
enable_transcription_formattingboolean
boosted_keywordsarray<string>
denoising_modestring

One of off, noise-cancellation, noise-and-background-speech-cancellation

adaptive_response_waitboolean
denoising_strengthnumber
stt_modestring

One of fast, accurate

vocab_specializationstring

One of general, medical

begin_message_delay_msinteger
end_call_after_silence_msinteger
max_call_duration_msinteger
ring_duration_msinteger
voicemail_detection_enabledboolean
voicemail_actionstring

One of hangup, leave_message

voicemail_messagestring
voicemail_promptstring
ivr_hangup_enabledboolean
ivr_promptstring
call_screen_handling_enabledboolean
call_screen_messagestring
dnc_detection_enabledboolean
post_call_analysis_dataarray<object>
6 properties
namestringrequired
typestringrequired

One of string, number, boolean, enum

descriptionstring
choicesarray<string>
requiredboolean

Default false

examplesarray<string>
post_call_analysis_modelstring
post_call_builtin_fieldsobject
3 properties
call_summaryobject
3 properties
enabledboolean

Default true

descriptionstring
choicesarray<string>
call_successfulobject
3 properties
enabledboolean

Default true

descriptionstring
choicesarray<string>
user_sentimentobject
3 properties
enabledboolean

Default true

descriptionstring
choicesarray<string>
fallback_llm_providerstring

One of anthropic, openai

fallback_llm_modelstring
fallback_voice_idstring
pii_redaction_enabledboolean
opt_out_call_recordingboolean
opt_out_transcript_storageboolean
data_retention_daysinteger
data_storage_settingstring

One of everything, everything_except_pii, basic_attributes_only

pii_categoriesarray<string>
webhook_urlstring
webhook_eventsarray<string>
webhook_signing_secretstring
webhook_timeout_msinteger

Returns

200 with the fields below.

idstringrequired

The agent's id.

agent_idstringrequired

The agent's id. Same value as `id`.

namestringrequired

Display name.

agent_typestringrequired

How the agent is driven: `llm`, `multi_prompt` or `flow`.

system_promptstringrequired

The instructions the model follows on every call.

llm_providerstringrequired

Which model provider answers: `anthropic` or `openai`.

llm_modelstringrequired

The model that answers the caller.

tts_enginestringrequired

The speech engine that voices the agent.

voice_idstringrequired

The voice the agent speaks with.

temperaturenumberrequired

How varied the model's replies are.

Show 65 more parameters
max_tokensintegerrequired

The longest reply the model may produce, in tokens.

statesarray<object>required

The prompt states of a `multi_prompt` agent. Empty for other agent types.

default_dynamic_variablesobjectrequired

Values filled into `{{variables}}` in the prompt when a call does not supply its own.

responsivenessnumberrequired

How quickly the agent replies once the caller stops talking, from 0 to 1.

interruption_sensitivitynumberrequired

How easily the caller can interrupt the agent, from 0 to 1.

enable_backchannelbooleanrequired

Whether the agent says short acknowledgements such as "uh-huh" while the caller talks.

backchannel_frequencynumberrequired

How often the agent backchannels, from 0 to 1.

reminder_trigger_msintegerrequired

How long the caller can stay silent, in milliseconds, before the agent sends a reminder.

reminder_messagestringrequired

What the agent says as a reminder. Empty means the model decides.

pronunciation_dictionaryarray<object>required

Words with a spoken form to use instead of the default.

allow_user_dtmfbooleanrequired

Whether keypad presses from the caller are passed to the agent.

user_dtmf_optionsobjectrequired

How keypad input is collected: digit limit, end key and timeout.

ambient_soundstringrequired

Background sound mixed into the call, or `none`.

ambient_sound_volumenumberrequired

Volume of the background sound.

voice_speednumberrequired

Speaking speed. 1.0 is normal.

voice_temperaturenumberrequired

How expressive the voice is, from 0 to 1.

stt_modelstringrequired

The speech recognition model that transcribes the caller.

languagestringrequired

The language the agent listens for.

enable_transcription_formattingbooleanrequired

Whether transcripts get punctuation and number formatting.

boosted_keywordsarray<string>required

Words the speech recognizer should favor.

denoising_modestringrequired

How background noise is removed from the caller's audio.

adaptive_response_waitbooleanrequired

Whether the agent waits longer when the caller sounds unfinished.

denoising_strengthnumberrequired

How aggressively noise is removed, from 0 to 1.

stt_modestringrequired

Whether transcription favors speed (`fast`) or accuracy.

vocab_specializationstringrequired

The vocabulary the recognizer is tuned for, such as `general` or `medical`.

begin_message_delay_msintegerrequired

How long the agent waits before its first message, in milliseconds.

end_call_after_silence_msintegerrequired

The call ends after this much silence, in milliseconds.

max_call_duration_msintegerrequired

The longest a call may run, in milliseconds.

ring_duration_msintegerrequired

How long an outbound call rings before giving up, in milliseconds.

voicemail_detection_enabledbooleanrequired

Whether the agent detects when a voicemail box answers.

voicemail_actionstringrequired

What to do on voicemail: `hangup` or `leave_message`.

voicemail_messagestringrequired

The message left on voicemail when `voicemail_action` is `leave_message`.

voicemail_promptstringrequired

Extra instructions that help the agent recognize a voicemail greeting.

ivr_hangup_enabledbooleanrequired

Whether the agent hangs up when it reaches an automated phone menu.

ivr_promptstringrequired

Extra instructions that help the agent recognize an automated phone menu.

call_screen_handling_enabledbooleanrequired

Whether the agent handles call-screening prompts.

call_screen_messagestringrequired

What the agent says to a call-screening prompt.

dnc_detection_enabledbooleanrequired

Whether the agent ends the call when the caller asks not to be contacted again.

post_call_analysis_dataarray<object>required

Custom fields extracted from every call after it ends.

post_call_analysis_modelstringrequired

The model that analyzes calls after they end.

post_call_builtin_fieldsobjectrequired

Settings for the built-in analysis fields: `call_summary`, `call_successful` and `user_sentiment`. A field you have not customized is absent.

pii_redaction_enabledbooleanrequired

Whether personal information is removed from stored transcripts.

opt_out_call_recordingbooleanrequired

True if calls are not recorded.

opt_out_transcript_storagebooleanrequired

True if transcripts are not stored.

data_storage_settingstringrequired

What call data is stored, such as `everything`.

pii_categoriesarray<string>required

The kinds of personal information that are redacted.

webhook_eventsarray<string>required

The call events sent to the webhook.

has_webhook_signing_secretbooleanrequired

Whether a signing secret is set.

webhook_timeout_msintegerrequired

How long to wait for the webhook to answer, in milliseconds.

phone_numbersarray<string>required

Numbers that send calls to, or place calls from, this agent. Only filled in the list response.

call_countintegerrequired

How many calls the agent has handled. Zero in the create and update responses.

first_messagestring

What the agent says when the call connects. Null means it waits for the caller to speak first.

flow_configobject

The conversation flow, for `flow` agents. Null for other agent types.

starting_statestring

The name of the state a `multi_prompt` agent starts in.

reminder_max_countinteger

The most reminders sent in a row. Null means no limit.

fallback_llm_providerstring

Provider of the backup model used if the main one fails.

fallback_llm_modelstring

The backup model used if the main one fails.

fallback_voice_idstring

The backup voice used if the main one fails.

data_retention_daysinteger

Days call data is kept before deletion. Null keeps it until you delete it.

webhook_urlstring

Where call events are sent for this agent.

webhook_signing_secretstring

The secret used to sign webhook deliveries. Returned when you create, fetch or update one agent, and null in the list.

created_atstring

ISO 8601 creation time.

updated_atstring

ISO 8601 time of the last change.

folder_idstring

The folder the agent is in. Null means it is under All agents.

flow_validationobject

Present only when a flow was saved with warnings.

1 properties
issuesarray<object>required

Warnings found in the flow. The flow was still saved. Each issue says where the problem is and what it is.

curl -X PATCH "https://api.dialgem.com/v1/agents/AGENT_ID" \
  -H "X-API-Key: $DIALGEM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Example"
  }'
Response 200
{
  "id": "string",
  "agent_id": "agent_123",
  "name": "Example",
  "agent_type": "string",
  "system_prompt": "string",
  "llm_provider": "string",
  "llm_model": "string",
  "tts_engine": "string",
  "voice_id": "voice_123",
  "first_message": "string",
  "temperature": 0,
  "max_tokens": 0
}

Delete agent

DELETE/v1/agents/{agent_id}

Path parameters

agent_idstringrequired

Returns

200 with the fields below.

deletedbooleanrequired

Always true on success.

idstringrequired

The id that was deleted.

curl -X DELETE "https://api.dialgem.com/v1/agents/AGENT_ID" \
  -H "X-API-Key: $DIALGEM_API_KEY"
Response 200
{
  "deleted": false,
  "id": "string"
}

List functions

GET/v1/agents/{agent_id}/functions

Path parameters

agent_idstringrequired

Returns

200.

curl "https://api.dialgem.com/v1/agents/AGENT_ID/functions" \
  -H "X-API-Key: $DIALGEM_API_KEY"
Response 200
[
  {
    "id": "string",
    "agent_id": "agent_123",
    "name": "Example",
    "description": "string",
    "parameters": {},
    "url": "https://example.com",
    "method": "string",
    "timeout_ms": 0,
    "headers": [
      {}
    ],
    "query_params": [
      {}
    ],
    "speak_during_execution": "string",
    "speak_after_execution": false
  }
]

Create function

POST/v1/agents/{agent_id}/functions

Path parameters

agent_idstringrequired

Request body application/json

namestringrequired
descriptionstring
parametersobject
urlstring
methodstring

Default "POST"

timeout_msinteger

Default 10000

headersarray<object>
2 properties
keystringrequired
valuestringrequired
query_paramsarray<object>
2 properties
keystringrequired
valuestringrequired
speak_during_executionstring
speak_after_executionboolean

Default true

Show 4 more parameters
args_at_rootboolean

Default false

kindstring

One of custom, end_call, transfer_call, press_digit, agent_swap, check_availability_cal, book_appointment_cal, cancel_appointment_cal, reschedule_appointment_cal, check_availability_gcal, book_appointment_gcal

Default "custom"

configobject
response_variablesobject

Returns

201 with the fields below.

idstringrequired

The function's id.

agent_idstringrequired

The agent it belongs to.

namestringrequired

The name the model calls the function by.

descriptionstringrequired

What the function does, shown to the model so it knows when to call it.

parametersobjectrequired

JSON Schema for the arguments the model passes.

urlstringrequired

The endpoint called for a `custom` function. Empty for built-in kinds.

methodstringrequired

HTTP method used for a `custom` function.

timeout_msintegerrequired

How long to wait for the endpoint, in milliseconds.

headersarray<object>required

Headers sent with the request, as `{key, value}` pairs.

query_paramsarray<object>required

Query parameters sent with the request, as `{key, value}` pairs.

Show 8 more parameters
speak_after_executionbooleanrequired

Whether the agent speaks again once the function returns.

args_at_rootbooleanrequired

Whether the arguments are sent as the whole request body.

sort_orderintegerrequired

Position in the agent's function list.

kindstringrequired

`custom` for your own endpoint, or the built-in action such as `end_call` or `transfer_call`.

configobjectrequired

Settings for a built-in kind. Empty for `custom`.

response_variablesobjectrequired

Values taken from the response and saved as variables, as variable name to path.

speak_during_executionstring

What the agent says while the function runs. Null means it stays quiet.

created_atstring

ISO 8601 creation time.

curl -X POST "https://api.dialgem.com/v1/agents/AGENT_ID/functions" \
  -H "X-API-Key: $DIALGEM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Example"
  }'
Response 201
{
  "id": "string",
  "agent_id": "agent_123",
  "name": "Example",
  "description": "string",
  "parameters": {},
  "url": "https://example.com",
  "method": "string",
  "timeout_ms": 0,
  "headers": [
    {}
  ],
  "query_params": [
    {}
  ],
  "speak_during_execution": "string",
  "speak_after_execution": false
}

Reorder functions

POST/v1/agents/{agent_id}/functions/reorder

Path parameters

agent_idstringrequired

Request body application/json

orderarray<string>required

Returns

204 with the resulting object.

curl -X POST "https://api.dialgem.com/v1/agents/AGENT_ID/functions/reorder" \
  -H "X-API-Key: $DIALGEM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "order": [
      "string"
    ]
  }'

Update function

PATCH/v1/agents/{agent_id}/functions/{function_id}

Path parameters

agent_idstringrequired
function_idstringrequired

Request body application/json

descriptionstring
parametersobject
urlstring
methodstring
timeout_msinteger
headersarray<object>
2 properties
keystringrequired
valuestringrequired
query_paramsarray<object>
2 properties
keystringrequired
valuestringrequired
speak_during_executionstring
speak_after_executionboolean
args_at_rootboolean
configobject
response_variablesobject

Returns

200 with the fields below.

idstringrequired

The function's id.

agent_idstringrequired

The agent it belongs to.

namestringrequired

The name the model calls the function by.

descriptionstringrequired

What the function does, shown to the model so it knows when to call it.

parametersobjectrequired

JSON Schema for the arguments the model passes.

urlstringrequired

The endpoint called for a `custom` function. Empty for built-in kinds.

methodstringrequired

HTTP method used for a `custom` function.

timeout_msintegerrequired

How long to wait for the endpoint, in milliseconds.

headersarray<object>required

Headers sent with the request, as `{key, value}` pairs.

query_paramsarray<object>required

Query parameters sent with the request, as `{key, value}` pairs.

Show 8 more parameters
speak_after_executionbooleanrequired

Whether the agent speaks again once the function returns.

args_at_rootbooleanrequired

Whether the arguments are sent as the whole request body.

sort_orderintegerrequired

Position in the agent's function list.

kindstringrequired

`custom` for your own endpoint, or the built-in action such as `end_call` or `transfer_call`.

configobjectrequired

Settings for a built-in kind. Empty for `custom`.

response_variablesobjectrequired

Values taken from the response and saved as variables, as variable name to path.

speak_during_executionstring

What the agent says while the function runs. Null means it stays quiet.

created_atstring

ISO 8601 creation time.

curl -X PATCH "https://api.dialgem.com/v1/agents/AGENT_ID/functions/FUNCTION_ID" \
  -H "X-API-Key: $DIALGEM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "string"
  }'
Response 200
{
  "id": "string",
  "agent_id": "agent_123",
  "name": "Example",
  "description": "string",
  "parameters": {},
  "url": "https://example.com",
  "method": "string",
  "timeout_ms": 0,
  "headers": [
    {}
  ],
  "query_params": [
    {}
  ],
  "speak_during_execution": "string",
  "speak_after_execution": false
}

Delete function

DELETE/v1/agents/{agent_id}/functions/{function_id}

Path parameters

agent_idstringrequired
function_idstringrequired

Returns

204 with the resulting object.

curl -X DELETE "https://api.dialgem.com/v1/agents/AGENT_ID/functions/FUNCTION_ID" \
  -H "X-API-Key: $DIALGEM_API_KEY"

List documents

GET/v1/agents/{agent_id}/knowledge

Path parameters

agent_idstringrequired

Returns

200.

curl "https://api.dialgem.com/v1/agents/AGENT_ID/knowledge" \
  -H "X-API-Key: $DIALGEM_API_KEY"
Response 200
[
  {
    "source_id": "source_123",
    "filename": "string",
    "chunk_count": 0,
    "embedded": false,
    "created_at": "string"
  }
]

Add a document

POST/v1/agents/{agent_id}/knowledge

Path parameters

agent_idstringrequired

Request body application/json

filenamestringrequired
contentstringrequired

Returns

201 with the fields below.

source_idstringrequired

The id of the document. Use it to delete the document.

chunk_countintegerrequired

How many pieces the document was split into for search.

embeddedbooleanrequired

True once every piece is searchable.

filenamestring

The name the document was added under.

curl -X POST "https://api.dialgem.com/v1/agents/AGENT_ID/knowledge" \
  -H "X-API-Key: $DIALGEM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filename": "string",
    "content": "string"
  }'
Response 201
{
  "source_id": "source_123",
  "filename": "string",
  "chunk_count": 0,
  "embedded": false
}

Delete document

DELETE/v1/agents/{agent_id}/knowledge/{source_id}

Path parameters

agent_idstringrequired
source_idstringrequired

Returns

204 with the resulting object.

curl -X DELETE "https://api.dialgem.com/v1/agents/AGENT_ID/knowledge/SOURCE_ID" \
  -H "X-API-Key: $DIALGEM_API_KEY"

List MCP servers

GET/v1/agents/{agent_id}/mcp-servers

Path parameters

agent_idstringrequired

Returns

200.

curl "https://api.dialgem.com/v1/agents/AGENT_ID/mcp-servers" \
  -H "X-API-Key: $DIALGEM_API_KEY"
Response 200
[
  {
    "id": "string",
    "agent_id": "agent_123",
    "name": "Example",
    "url": "https://example.com",
    "has_auth_token": false,
    "enabled": false,
    "timeout_ms": 0,
    "headers": [
      {}
    ],
    "query_params": [
      {}
    ],
    "last_status": {},
    "created_at": "string"
  }
]

Create MCP server

POST/v1/agents/{agent_id}/mcp-servers

Path parameters

agent_idstringrequired

Request body application/json

namestringrequired
urlstringrequired
auth_tokenstring
enabledboolean

Default true

timeout_msinteger

Default 10000

headersarray<object>
2 properties
keystringrequired
valuestringrequired
query_paramsarray<object>
2 properties
keystringrequired
valuestringrequired

Returns

201 with the fields below.

idstringrequired

The MCP server's id.

agent_idstringrequired

The agent it belongs to.

namestringrequired

The name the agent's tools from this server are grouped under.

urlstringrequired

The server's address.

has_auth_tokenbooleanrequired

Whether an auth token is stored. The token itself is never returned.

enabledbooleanrequired

Whether the agent uses this server.

timeout_msintegerrequired

How long to wait for the server, in milliseconds.

headersarray<object>required

Headers sent with each request, as `{key, value}` pairs.

query_paramsarray<object>required

Query parameters sent with each request, as `{key, value}` pairs.

last_statusobject

The result of the last connection test: `ok`, `tools`, `error` and `at`. Null if never tested.

created_atstring

ISO 8601 creation time.

curl -X POST "https://api.dialgem.com/v1/agents/AGENT_ID/mcp-servers" \
  -H "X-API-Key: $DIALGEM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Example",
    "url": "https://example.com"
  }'
Response 201
{
  "id": "string",
  "agent_id": "agent_123",
  "name": "Example",
  "url": "https://example.com",
  "has_auth_token": false,
  "enabled": false,
  "timeout_ms": 0,
  "headers": [
    {}
  ],
  "query_params": [
    {}
  ],
  "last_status": {},
  "created_at": "string"
}

Update MCP server

PATCH/v1/agents/{agent_id}/mcp-servers/{server_id}

Path parameters

agent_idstringrequired
server_idstringrequired

Request body application/json

urlstring
auth_tokenstring
enabledboolean
timeout_msinteger
headersarray<object>
2 properties
keystringrequired
valuestringrequired
query_paramsarray<object>
2 properties
keystringrequired
valuestringrequired

Returns

200 with the fields below.

idstringrequired

The MCP server's id.

agent_idstringrequired

The agent it belongs to.

namestringrequired

The name the agent's tools from this server are grouped under.

urlstringrequired

The server's address.

has_auth_tokenbooleanrequired

Whether an auth token is stored. The token itself is never returned.

enabledbooleanrequired

Whether the agent uses this server.

timeout_msintegerrequired

How long to wait for the server, in milliseconds.

headersarray<object>required

Headers sent with each request, as `{key, value}` pairs.

query_paramsarray<object>required

Query parameters sent with each request, as `{key, value}` pairs.

last_statusobject

The result of the last connection test: `ok`, `tools`, `error` and `at`. Null if never tested.

created_atstring

ISO 8601 creation time.

curl -X PATCH "https://api.dialgem.com/v1/agents/AGENT_ID/mcp-servers/SERVER_ID" \
  -H "X-API-Key: $DIALGEM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com"
  }'
Response 200
{
  "id": "string",
  "agent_id": "agent_123",
  "name": "Example",
  "url": "https://example.com",
  "has_auth_token": false,
  "enabled": false,
  "timeout_ms": 0,
  "headers": [
    {}
  ],
  "query_params": [
    {}
  ],
  "last_status": {},
  "created_at": "string"
}

Delete MCP server

DELETE/v1/agents/{agent_id}/mcp-servers/{server_id}

Path parameters

agent_idstringrequired
server_idstringrequired

Returns

204 with the resulting object.

curl -X DELETE "https://api.dialgem.com/v1/agents/AGENT_ID/mcp-servers/SERVER_ID" \
  -H "X-API-Key: $DIALGEM_API_KEY"

Test MCP server

POST/v1/agents/{agent_id}/mcp-servers/{server_id}/test

Attempt a live connection, persist the result, and return it.

Path parameters

agent_idstringrequired
server_idstringrequired

Returns

200 with the fields below.

okbooleanrequired

True if the server was reached.

toolsarray<string>required

Names of the tools the server offers.

atstringrequired

ISO 8601 time of the test.

errorstring

Why the connection failed. Null on success.

curl -X POST "https://api.dialgem.com/v1/agents/AGENT_ID/mcp-servers/SERVER_ID/test" \
  -H "X-API-Key: $DIALGEM_API_KEY"
Response 200
{
  "ok": false,
  "tools": [
    "string"
  ],
  "error": "string",
  "at": "string"
}

List MCP server tools

GET/v1/agents/{agent_id}/mcp-servers/{server_id}/tools

What the server offers right now: `{tools: [{name, description, input_schema}], error}`.

Path parameters

agent_idstringrequired
server_idstringrequired

Returns

200 with the fields below.

toolsarray<object>required

The tools the server offers right now. Empty if it could not be reached.

3 properties
namestringrequired

The tool's name.

descriptionstringrequired

What the tool does.

input_schemaobjectrequired

JSON Schema for the tool's arguments.

errorstring

Why the server could not be reached. Null on success.

curl "https://api.dialgem.com/v1/agents/AGENT_ID/mcp-servers/SERVER_ID/tools" \
  -H "X-API-Key: $DIALGEM_API_KEY"
Response 200
{
  "tools": [
    {
      "name": "Example",
      "description": "string",
      "input_schema": {}
    }
  ],
  "error": "string"
}

List agent versions

GET/v1/agents/{agent_id}/versions

Published versions, newest first. The draft (0) is not one of them.

Path parameters

agent_idstringrequired

Query parameters

limitinteger

Default 50

before_versioninteger

Return versions below this one. Page by passing the last `version` of the previous page.

Returns

200 with the fields below.

versionsarray<object>required

Published versions, newest first.

10 properties
idstringrequired

The version record's id.

agent_idstringrequired

The agent the version belongs to.

versionintegerrequired

The version number. The first published version is 1.

namestringrequired

The agent's name when the version was published.

function_countintegerrequired

How many functions the version holds.

mcp_server_countintegerrequired

How many MCP servers the version holds.

titlestring

A label you gave the release.

descriptionstring

Notes you gave the release.

published_atstring

ISO 8601 time the version was published.

published_bystring

Who published it.

has_morebooleanrequired

True if older versions remain. Pass the last `version` as `before_version` to get them.

curl "https://api.dialgem.com/v1/agents/AGENT_ID/versions" \
  -H "X-API-Key: $DIALGEM_API_KEY"
Response 200
{
  "versions": [
    {
      "id": "string",
      "agent_id": "agent_123",
      "version": 0,
      "name": "Example",
      "title": "Example",
      "description": "string",
      "published_at": "string",
      "published_by": "string",
      "function_count": 0,
      "mcp_server_count": 0
    }
  ],
  "has_more": false
}

Publish agent version

POST/v1/agents/{agent_id}/versions

Freeze the agent's current state as the next version.

Path parameters

agent_idstringrequired

Request body application/json

titlestring
descriptionstring

Returns

201 with the fields below.

idstringrequired

The version record's id.

agent_idstringrequired

The agent the version belongs to.

versionintegerrequired

The version number. The first published version is 1.

namestringrequired

The agent's name when the version was published.

function_countintegerrequired

How many functions the version holds.

mcp_server_countintegerrequired

How many MCP servers the version holds.

configobjectrequired

The agent's configuration as published, without secrets.

functionsarray<object>required

The agent's functions as published.

mcp_serversarray<object>required

The agent's MCP servers as published, without auth tokens.

titlestring

A label you gave the release.

Show 4 more parameters
descriptionstring

Notes you gave the release.

published_atstring

ISO 8601 time the version was published.

published_bystring

Who published it.

warningsarray<object>

Present when the version was published although a required test suite has not passed.

curl -X POST "https://api.dialgem.com/v1/agents/AGENT_ID/versions" \
  -H "X-API-Key: $DIALGEM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Example"
  }'
Response 201
{
  "id": "string",
  "agent_id": "agent_123",
  "version": 0,
  "name": "Example",
  "title": "Example",
  "description": "string",
  "published_at": "string",
  "published_by": "string",
  "function_count": 0,
  "mcp_server_count": 0,
  "config": {},
  "functions": [
    {}
  ]
}

Get agent version

GET/v1/agents/{agent_id}/versions/{version}

Path parameters

agent_idstringrequired
versionintegerrequired

Returns

200 with the fields below.

idstringrequired

The version record's id.

agent_idstringrequired

The agent the version belongs to.

versionintegerrequired

The version number. The first published version is 1.

namestringrequired

The agent's name when the version was published.

function_countintegerrequired

How many functions the version holds.

mcp_server_countintegerrequired

How many MCP servers the version holds.

configobjectrequired

The agent's configuration as published, without secrets.

functionsarray<object>required

The agent's functions as published.

mcp_serversarray<object>required

The agent's MCP servers as published, without auth tokens.

titlestring

A label you gave the release.

Show 3 more parameters
descriptionstring

Notes you gave the release.

published_atstring

ISO 8601 time the version was published.

published_bystring

Who published it.

curl "https://api.dialgem.com/v1/agents/AGENT_ID/versions/VERSION" \
  -H "X-API-Key: $DIALGEM_API_KEY"
Response 200
{
  "id": "string",
  "agent_id": "agent_123",
  "version": 0,
  "name": "Example",
  "title": "Example",
  "description": "string",
  "published_at": "string",
  "published_by": "string",
  "function_count": 0,
  "mcp_server_count": 0,
  "config": {},
  "functions": [
    {}
  ]
}