Clone current agent settings and knowledge into an independent draft
const url = 'https://api.vocapable.com/v1/agents/example/clone';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"name":"example","expected_updated_at":"2026-04-15T12:00:00Z"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.vocapable.com/v1/agents/example/clone \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "name": "example", "expected_updated_at": "2026-04-15T12:00:00Z" }'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Header Parameters
Section titled “Header Parameters”Request Bodyrequired
Section titled “Request Bodyrequired”Copy this company’s current editable configuration into a new draft.
object
Examplegenerated
{ "name": "example", "expected_updated_at": "2026-04-15T12:00:00Z"}Responses
Section titled “Responses”Successful Response
A definition in full.
object
object
Versioned dialogue policy; language availability is qualified by the speech service.
object
object
object
Conversation-level controls frozen into the published version.
object
Allow quoting approved company prices; never invent or negotiate prices.
object
One server-resolved, immutable direct-rep target in an agent snapshot.
A write request names only rep_id values. Control-api resolves those ids against
active, transfer-enabled tenant reps and persists this compact snapshot so an AgentVersion
never follows a later mutable Settings record. A raw destination is deliberately not part
of this customer/model/runtime representation.
object
Provider routing chain with health-checked failover (CANON fact 24).
LLM chain only. STT and TTS chains are platform-defaulted at P1 and are not
API-settable (CANON fact 80), which is what extra="forbid" refuses here.
object
object
The tenant’s two slots in a platform-composed voicemail drop (ADR-0023).
This is the DisclosureSlots doctrine applied to voicemail: the customer supplies a
body and a callback number, and nothing else. The AI-disclosure opener, the order
of the elements, and the identification/opt-out closing are composed by the platform
from the same pinned version the live conversation discloses from, so a voicemail and
a conversation can never disagree about who is calling or that it is artificial.
body is keyed by language tag exactly as disclosure_config is, and the drop
resolves the same tag for both: a message whose opener and body were in different
languages would be a disclosure in name only. An empty model is the ordinary state -
it means this agent leaves no messages.
Example
{ "use_case": "sdr", "status": "draft", "conversation_settings": { "default_language": "en", "supported_languages": [ "en" ], "allow_language_switch": true, "action_decision_mode": "auto" }, "guardrails": { "pricing_talk_enabled": false }, "tools": [ "check_calendar" ]}Validation Error
object
object
object
Examplegenerated
{ "detail": [ { "loc": [ "example" ], "msg": "example", "type": "example", "input": "example", "ctx": {} } ]}