Update an agent

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Path parameters

agent_idstringRequired

Request

This endpoint expects an object.
display_namestringOptional
descriptionstringOptional
languagestringOptional
knowledge_base_idstringOptional

Attach a knowledge base (kb_… id, must belong to the workspace) so hosted-AI turns answer from its documents. Empty string detaches.

ai_providerstringOptional

AI backend. Use GET /admin/ai/providers to see available providers (typically gemini or openai). Set to byom to switch to your own webhook; also supply webhook_url in the same PATCH. New calls use the new mode immediately; in-flight calls keep the mode they started with.

ai_modelstringOptional

Model ID for the chosen provider. Must be an active model in the platform catalogue (validated against voicebip_v1.ai_models). Omit or leave unchanged to keep the current value; field is ignored when ai_provider is byom.

tts_voicestringOptional

The voice the agent speaks with. Pass a voice_id from GET /v1/voice/models (e.g. aura-asteria-en). Validated at save time (unknown id → 400). Omit to leave unchanged; send an empty string to reset to the platform-default voice.

system_promptstringOptional
webhook_urlstringOptional
Required when `ai_provider` is `byom`. This single URL receives both BYOM turn requests (`BYOMVoiceWebhookRequest`) and lifecycle events (`call.initiated`, `call.transcription`, `call.completed`). Detect lifecycle events by the presence of `event_type` in the body and return `{"received": true}`; for turn requests return a `BYOMVoiceWebhookResponse`. See the [BYOM guide](/guides/byom).
greeting_textstringOptional
Custom greeting played via TTS when a call connects
greeting_audio_urlstringOptional

URL of a hosted WAV to play as the greeting instead of greeting_text. Must be 8 kHz mono 16-bit linear-PCM (telephony format); validated and stored at save time, so a bad URL or wrong format fails this request, never mid-call. Send an empty string to clear it. Omit to leave it unchanged (omitting avoids a needless re-fetch + re-upload).

tool_definitionsstringOptional

JSON array of OpenAI-compatible tool definitions. Defaults to ’[]’.

shareablebooleanOptional
Enable or disable the public 'try my agent' shareable link
call_window_startstringOptional
call_window_endstringOptional
call_window_timezonestringOptional
pre_call_announcementstringOptional
recording_enabledbooleanOptional
Enable or disable call recording for this agent.
consent_requiredbooleanOptional

Whether a DTMF consent prompt is played before recording starts. Audit-logged on every change.

screening_enabledbooleanOptional

BYOM only. Enable/disable the synchronous pre-greeting call.screening webhook for inbound calls.

screening_fail_closedbooleanOptional

Screening failure policy: false = fail-open (allow on webhook error), true = fail-closed (reject).

statusenumOptional
Allowed values:

Response

Agent updated
agent_idstring
workspace_idstring
display_namestring
descriptionstring
languagestring
ai_providerstring
ai_modelstring
tts_voicestring

The voice the agent speaks with. This is a voice_id from GET /v1/voice/models (e.g. aura-asteria-en). Null/absent means the platform-default voice.

system_promptstring
webhook_urlstring
greeting_textstring
Custom greeting played via TTS when a call connects. If null, a default greeting is used.
greeting_audio_urlstring

The source URL of a hosted WAV played as the greeting instead of greeting_text. Set via UpdateAgent; validated and stored at save time. The system-managed storage key is never returned.

tool_definitionsstringDefaults to []

JSON array of OpenAI-compatible function/tool definitions. The AI can invoke these tools during voice calls. Built-in tools: hang_up, transfer_call, hold_call, resume_call. Custom tools are dispatched to the agent’s webhook_url. Defaults to ”[]”.

shareableboolean

When true, enables a public ‘try my agent’ link for browser-based test calls.

knowledge_base_idstring

Attached knowledge base (RAG). When set, hosted-AI turns answer from this KB’s documents. Empty/absent = none.

call_window_startstringDefaults to 08:00

Earliest permitted outbound call time (HH:MM, 24hr). CBN compliance.

call_window_endstringDefaults to 20:00

Latest permitted outbound call time (HH:MM, 24hr). CBN compliance.

call_window_timezonestringDefaults to Africa/Lagos
IANA timezone for call window evaluation.
pre_call_announcementstring

CBN requirement: spoken announcement at start of call identifying the sponsoring institution.

recording_enabledboolean

Whether call recording is enabled for this agent. Workspace-level recording must also be enabled via POST /v1/workspace/recording for calls to be recorded.

consent_requiredboolean

When true (default), the caller hears a consent prompt before recording starts. When false, recording begins immediately. Only disable if you have an independent legal basis under NDPR.

screening_enabledboolean

BYOM only. When true, inbound calls trigger a synchronous call.screening webhook (to the agent’s webhook_url) BEFORE the greeting so you can allow/reject the caller and optionally override the greeting. See the BYOM guide.

screening_fail_closedboolean

Screening failure policy. false (default) = fail-open (allow the call if the screening webhook errors/times out); true = fail-closed (reject).

statusenum
created_atdatetime
updated_atdatetime

Errors

404
Update Agent Request Not Found Error