For the complete documentation index, see llms.txt. This page is also available as Markdown.

Settings

Get retention policy

get

Get the workspace retention policy.

Returns HIPAA-compliant defaults (2190 days / 6 years) for any field not explicitly configured. Advisory in v1 — no automated deletion.

Permissions: authenticated (any role).

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Responses
200

Successful Response

application/json
call_recordings_daysintegerRequired
call_transcripts_daysintegerRequired
audit_log_daysintegerRequired
world_events_daysintegerRequired
phi_data_daysintegerRequired
legal_holdbooleanRequired
legal_hold_reasonstring · nullableOptional
get/v1/{workspace_id}/settings/retention

Update retention policy

put

Update the workspace retention policy.

Partial updates supported — only provided fields are changed. Advisory in v1: policy is stored and displayed but no automated deletion is performed. Legal hold overrides all retention.

Permissions: admin, owner (Workspace.update).

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Body
call_recordings_daysinteger · min: 365 · max: 36500 · nullableOptional
call_transcripts_daysinteger · min: 365 · max: 36500 · nullableOptional
audit_log_daysinteger · min: 365 · max: 36500 · nullableOptional
world_events_daysinteger · min: 365 · max: 36500 · nullableOptional
phi_data_daysinteger · min: 365 · max: 36500 · nullableOptional
legal_holdboolean · nullableOptional
legal_hold_reasonstring · max: 2000 · nullableOptional
Responses
200

Successful Response

application/json
call_recordings_daysintegerRequired
call_transcripts_daysintegerRequired
audit_log_daysintegerRequired
world_events_daysintegerRequired
phi_data_daysintegerRequired
legal_holdbooleanRequired
legal_hold_reasonstring · nullableOptional
put/v1/{workspace_id}/settings/retention

Get gap scanner settings

get

Get the workspace gap scanner settings.

Returns defaults when not configured. Gap scanner is disabled by default.

Permissions: authenticated (any role).

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Responses
200

Successful Response

application/json
enabledbooleanRequired
scan_interval_secondsintegerRequired
appointment_lookahead_hoursintegerRequired
cooldown_hoursintegerRequired
max_surfaces_per_tickintegerRequired
max_pending_surfacesintegerRequired
min_completion_ratenumberRequired
channel_optimizationbooleanRequired
get/v1/{workspace_id}/settings/gap-scanner

Update gap scanner settings

put

Update the workspace gap scanner settings.

Partial updates supported — only provided fields are changed. Requirements list is replaced entirely when provided (not merged).

Permissions: admin, owner (enforced via Workspace.update, matching the outreach-settings sibling).

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Body
enabledboolean · nullableOptional
scan_interval_secondsinteger · min: 60 · max: 86400 · nullableOptional
appointment_lookahead_hoursinteger · min: 1 · max: 720 · nullableOptional
cooldown_hoursinteger · min: 1 · max: 8760 · nullableOptional
max_surfaces_per_tickinteger · min: 1 · max: 100 · nullableOptional
max_pending_surfacesinteger · max: 50 · nullableOptional

Max non-terminal surfaces per entity (0 = disabled)

min_completion_ratenumber · max: 1 · nullableOptional

Min historical completion rate to create new surfaces (0.0 = disabled)

channel_optimizationboolean · nullableOptional

Use entity preferred channel over static requirement channel

Responses
200

Successful Response

application/json
enabledbooleanRequired
scan_interval_secondsintegerRequired
appointment_lookahead_hoursintegerRequired
cooldown_hoursintegerRequired
max_surfaces_per_tickintegerRequired
max_pending_surfacesintegerRequired
min_completion_ratenumberRequired
channel_optimizationbooleanRequired
put/v1/{workspace_id}/settings/gap-scanner

Preview gap detection (dry run)

post

Dry-run gap detection — returns entities with missing fields without creating surfaces.

Proxies to connector-runner /internal/gap-scanner/preview.

Permissions: admin, owner (enforced via Workspace.update).

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Body
limitinteger · min: 1 · max: 200OptionalDefault: 50
Responses
200

Successful Response

application/json
Other propertiesanyOptional
post/v1/{workspace_id}/settings/gap-scanner/preview

Trigger one scan tick

post

Trigger one scan tick immediately — creates surfaces for detected gaps.

Proxies to connector-runner /internal/gap-scanner/scan.

Permissions: admin, owner (enforced via Workspace.update — this creates patient-facing surfaces, so it must not be reachable below admin tier).

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Responses
200

Successful Response

application/json
Other propertiesanyOptional
post/v1/{workspace_id}/settings/gap-scanner/scan

Get metric definitions

get

Get the workspace metric definitions.

Returns built-in defaults when not configured.

Permissions: authenticated (any role).

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Responses
200

Successful Response

application/json
get/v1/{workspace_id}/settings/metrics

Update metric definitions

put

Update the workspace metric definitions.

Partial updates supported — only provided fields are changed. The definitions list is replaced entirely when provided.

Permissions: admin, owner.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Body

Partial update — only provided fields are changed.

The definitions list is replaced entirely when provided. Built-in metrics can be deactivated (active=false) or have their freshness_sla_minutes changed, but their key cannot be reused for custom metrics.

Responses
200

Successful Response

application/json
put/v1/{workspace_id}/settings/metrics

Get outreach settings

get

Get the workspace outreach settings.

Returns empty rules and templates when not configured.

Permissions: authenticated (any role).

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Responses
200

Successful Response

application/json
get/v1/{workspace_id}/settings/outreach

Update outreach settings

put

Update the workspace outreach settings.

Partial updates supported — only provided fields are changed. Rules and data_templates lists are replaced entirely when provided.

Validates that data_template_id references in rules point to templates that exist in the same payload or current settings.

Permissions: admin, owner.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Body

Partial update — only provided fields are changed.

Rules and data_templates lists are replaced entirely when provided.

Responses
200

Successful Response

application/json
put/v1/{workspace_id}/settings/outreach

Get workspace branding

get

Get the workspace default branding for surfaces.

Returns empty branding when not configured.

Permissions: authenticated (any role).

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Responses
200

Successful Response

application/json
get/v1/{workspace_id}/settings/branding

Update workspace branding

put

Update the workspace default branding for surfaces.

Surface-level branding takes precedence over workspace-level branding.

Permissions: admin, owner.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Body

Update workspace branding. All fields are optional — only provided fields are changed.

Responses
200

Successful Response

application/json
put/v1/{workspace_id}/settings/branding

Get environment overrides

get

Get per-environment config overrides.

Returns empty environments when not configured.

Permissions: authenticated (any role).

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Responses
200

Successful Response

application/json
get/v1/{workspace_id}/settings/environments

Update environment overrides

put

Update per-environment config overrides.

Permissions: admin, owner.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Body
Responses
200

Successful Response

application/json
put/v1/{workspace_id}/settings/environments

Get voice settings

get

Get the voice experience settings for a workspace.

Returns voice identity, domain vocabulary, and post-call intelligence configuration. These settings shape how the AI agent sounds and what domain-specific terms it recognizes accurately.

Permissions

  • Requires authenticated API key (any role).

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Responses
200

Successful Response

application/json

Voice experience state — what the PM configured.

voice_idstring · nullableRequired
tonestring · nullableRequired
speednumber · nullableRequired
volumenumber · nullableRequired
languagestringRequired
keytermsstring[]Required
pronunciation_dict_idstring · nullableRequired
sensitive_topicsstring[]Required
post_call_analysis_enabledbooleanRequired
transcript_correction_enabledbooleanRequired
stt_providerstring · enum · nullableRequiredPossible values:
tts_providerstring · enum · nullableRequiredPossible values:
get/v1/{workspace_id}/settings/voice

Update voice settings

put

Update the voice experience settings for a workspace.

Only provided fields are updated; omitted fields retain their current values. Set a field to null to reset it to default.

Voice Identity & Style

  • voice_id: Voice identity UUID — determines the agent's voice persona

  • tone: Emotional baseline (calm, sympathetic, enthusiastic, content, curious, cheerful, serious, friendly). The system also adapts tone dynamically based on real-time caller emotion analysis; this setting provides the baseline when no strong emotional signal is detected.

  • speed: Speech rate multiplier (0.5-2.0)

  • volume: Volume multiplier (0.0-1.0)

  • language: BCP-47 language tag (default en)

Speech Recognition Boost

  • keyterms: Exact words the speech recognition engine should prioritize. Use for specific names, drug names, and org jargon. Example: ["Dr. Ramirez", "metformin", "HIPAA"]

Post-Call Intelligence

  • post_call_analysis_enabled: Run automated quality scoring after each call ends (default true)

  • transcript_correction_enabled: Re-verify transcripts with a high-accuracy batch model after call ends (default true)

Permissions

  • Requires admin or owner role.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Body

Voice experience control plane — PM-facing, high-level controls.

Controls the caller experience without exposing engineering internals. Emotion detection, filler speech, model selection, and buffer tuning are always-on internals managed by engineering.

voice_idstring · max: 128 · nullableOptional
tonestring · max: 2000 · nullableOptional
speednumber · nullableOptional
volumenumber · nullableOptional
languagestring · max: 32 · nullableOptional
keytermsstring[] · max: 200 · nullableOptional
pronunciation_dict_idstring · max: 128 · nullableOptional
sensitive_topicsstring[] · max: 50 · nullableOptional
post_call_analysis_enabledboolean · nullableOptional
transcript_correction_enabledboolean · nullableOptional
stt_providerstring · enum · nullableOptionalPossible values:
tts_providerstring · enum · nullableOptionalPossible values:
Responses
200

Successful Response

application/json

Voice experience state — what the PM configured.

voice_idstring · nullableRequired
tonestring · nullableRequired
speednumber · nullableRequired
volumenumber · nullableRequired
languagestringRequired
keytermsstring[]Required
pronunciation_dict_idstring · nullableRequired
sensitive_topicsstring[]Required
post_call_analysis_enabledbooleanRequired
transcript_correction_enabledbooleanRequired
stt_providerstring · enum · nullableRequiredPossible values:
tts_providerstring · enum · nullableRequiredPossible values:
put/v1/{workspace_id}/settings/voice

Last updated

Was this helpful?