PATCH/PUT
are saved as a draft and do not affect production calls until you
POST /deploy. Test calls and mic sessions run against the draft (when
one exists) so you can try changes before shipping them.
Endpoints
Related agent-scoped surfaces documented on their own pages:
test scenarios & suites,
split testing (A/B variants).
Agent object
Deployed fields
Draft fields
Every configurable field above has adraft_* mirror in the response
(draft_name, draft_prompt, draft_voice, draft_primary_language,
draft_additional_languages, draft_product, draft_background_track,
draft_thinking_level, draft_acknowledgement_prompt_mode,
draft_acknowledgement_prompt, draft_acknowledgement_feedback_mode,
draft_inbound_speak_order, draft_outbound_speak_order,
draft_voicemail_action, draft_voicemail_message,
draft_silence_interval_seconds, draft_silence_max_checkins,
draft_silence_checkins_enabled, draft_connect_tone_enabled,
draft_audio_context_mode, draft_watchdog_enabled,
draft_widget_enabled, draft_split_testing_enabled), plus draft id
lists for attachments (draft_integration_ids,
draft_knowledge_base_ids, draft_knowledge_document_ids,
draft_mcp_server_ids) and two read-only markers:
Production call paths (inbound, outbound, widget) always read the
deployed fields. Mic sessions and simulations read the draft with
fallback to the deployed value.
Product tiers at a glance
List agents
created_at descending.
Create an agent
Returns
201 Created with the new Agent object. A
create deploys immediately (there is no draft yet) and records revision
1 in the version history.
max_hold_seconds (outbound hold timeout, default 900 s) and inline
tools exist on the underlying model but are not writable through
this API — tool configuration is managed via
Integrations,
App connections, and
MCP servers.Retrieve an agent
200 OK with an Agent object, or 404 if not found.
Update an agent (writes the draft)
PATCH and PUT do not modify the deployed configuration.
Every field you send is staged into the corresponding draft_* column;
production calls keep using the deployed values until you
deploy. Sending a value identical to the deployed
value clears that field’s draft (so manually reverting an edit
removes the pending change).
integration_ids / knowledge_base_ids / knowledge_document_ids /
mcp_server_ids lists (staged as draft attachment lists). Returns
200 OK with the Agent object — inspect the
draft_* fields and has_draft to see what is pending.
Optimistic concurrency
To safely make edits from a UI, includeif_updated_at (or
updated_at) with the last updated_at you observed:
updated_at differs, the API returns 409 Conflict
with {"detail": "Agent was modified by another user. Please refresh and try again."}
so you can refresh and retry.
Deploy the draft
Promotes every pendingdraft_* value to the deployed configuration,
clears the draft, and records a new revision in the
version history.
200 OK with the updated Agent object
(has_draft is now false). Deploying with no pending draft is a
no-op that still returns 200 with the current agent.
Discard the draft
Clears every pending draft field, reverting the editor state to the deployed configuration.200 OK with the Agent object.
Delete an agent
204 No Content. Phone numbers that reference the deleted agent
have their inbound/outbound assignment cleared.
Duplicate an agent
Creates a new agent in the same org with the same deployed configuration: name (overridable), prompt, voice, languages, product, thinking level, background track, acknowledgement settings, speak orders, voicemail settings, silence settings, connect tone, audio context mode, watchdog, widget flag, and the attached integrations, knowledge bases/documents, and MCP servers. Pending drafts and split-testing variants are not copied.
Returns
201 Created with the new Agent object.
Transfer an agent to another org
Copy or move an agent to a different organization you’re also a member of. Formode="move", admin+ role is required on both orgs.
Returns
201 Created for copy / 200 OK for move:
Org-scoped attachments (integrations, knowledge, MCP servers) cannot
cross the org boundary — the transferred agent keeps only attachments
that already belong to the target org, which in practice means it
starts with empty attachment lists.
Version history
Deploys (and creates/duplicates/transfers) record anAgentConfigVersion snapshot of the deployed configuration.
Draft autosaves are not versioned — the history reflects what
actually shipped to production.
Response:
Prompt helpers
These three endpoints are convenience wrappers that call the same underlying models we use in the dashboard. All three take and return JSON; none change any persisted resource.Detect prompt language
Response
Translate prompt
Response
Generate acknowledgement prompt
Produces a short “filler while thinking” phrase appropriate for Storm-with-ack products.Response
Voices
List the supported voices and languages — or browse the voice gallery with playable samples:Response
The
name is what you set on an agent’s voice field.
Related
Phone Numbers
Assign agents to inbound/outbound directions on phone numbers.
Knowledge bases
Ground the agent in your documents.
Split testing
A/B test prompt and voice variants on live traffic.
Test scenarios
Regression-test the agent before deploying.