Workspaces
Manage workspaces: tenant isolation, voice settings, speech recognition, and test caller numbers.
Key Concepts
Workspace Resource
List Workspaces
List workspaces accessible to this API key. Requires Workspace.view permission.
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
50Successful Response
Missing or invalid API key.
Insufficient permissions.
Validation Error
GET /v1/workspaces HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"items": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"slug": "text",
"name": "text",
"backend_org_id": "text",
"region": "text",
"connector_type": "text",
"provisioned_at": "2026-01-01T00:00:00.000Z",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}
],
"has_more": true,
"continuation_token": null
}Get a Workspace
Retrieve a workspace by ID. Requires Workspace.view permission.
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
Missing or invalid API key.
Insufficient permissions.
Workspace not found.
GET /v1/workspaces/{workspace_id} HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"slug": "text",
"name": "text",
"backend_org_id": "text",
"region": "text",
"connector_type": "text",
"provisioned_at": "2026-01-01T00:00:00.000Z",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}Update a Workspace
Update workspace fields. Requires Workspace.update permission.
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
Missing or invalid API key.
Insufficient permissions.
Workspace not found.
Invalid request body.
PATCH /v1/workspaces/{workspace_id} HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 60
{
"name": "text",
"region": "us-east-1",
"connector_type": "epic"
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"slug": "text",
"name": "text",
"backend_org_id": "text",
"region": "text",
"connector_type": "text",
"provisioned_at": "2026-01-01T00:00:00.000Z",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}Provisioning
Seed default integrations and mark workspace as provisioned. Idempotent. Requires Workspace.update permission.
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
Missing or invalid API key.
Insufficient permissions.
Workspace not found.
POST /v1/workspaces/{workspace_id}/provision HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"workspace": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"slug": "text",
"name": "text",
"backend_org_id": "text",
"region": "text",
"connector_type": "text",
"provisioned_at": "2026-01-01T00:00:00.000Z",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}
}Archive
Archive a workspace and remove it from active access flows while preserving underlying data. Requires owner access and slug confirmation.
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
^[a-z0-9][a-z0-9-]*[a-z0-9]$Successful Response
Missing or invalid API key.
Only owners can archive a workspace.
Workspace not found.
Workspace slug confirmation did not match.
POST /v1/workspaces/{workspace_id}/archive HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 15
{
"slug": "text"
}{
"id": "123e4567-e89b-12d3-a456-426614174000",
"slug": "text",
"name": "text",
"backend_org_id": "text",
"region": "text",
"connector_type": "text",
"provisioned_at": "2026-01-01T00:00:00.000Z",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}Invitations
Access Audit Logging
Environment Conversion
Pre-Check an Environment Conversion
Convert a Workspace Environment
Voice Settings
Get Voice Settings
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).
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
Voice experience state — what the PM configured.
Rate limited
GET /v1/{workspace_id}/settings/voice HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"voice_id": "text",
"tone": "text",
"speed": 1,
"volume": 1,
"language": "text",
"keyterms": [
"text"
],
"pronunciation_dict_id": "text",
"sensitive_topics": [
"text"
],
"post_call_analysis_enabled": true,
"transcript_correction_enabled": true,
"stt_provider": "deepgram",
"tts_provider": "cartesia",
"tts_config": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"language_providers": {
"ANY_ADDITIONAL_PROPERTY": {
"provider": "cartesia",
"config": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
}
}Update Voice Settings
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.
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
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.
Successful Response
Voice experience state — what the PM configured.
Workspace not found
Validation error
Rate limited
PUT /v1/{workspace_id}/settings/voice HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 447
{
"voice_id": "text",
"tone": "text",
"speed": 1,
"volume": 1,
"language": "text",
"keyterms": [
"text"
],
"pronunciation_dict_id": "text",
"sensitive_topics": [
"text"
],
"post_call_analysis_enabled": true,
"transcript_correction_enabled": true,
"stt_provider": "deepgram",
"tts_provider": "cartesia",
"tts_config": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"language_providers": {
"ANY_ADDITIONAL_PROPERTY": {
"provider": "cartesia",
"config": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
}
}{
"voice_id": "text",
"tone": "text",
"speed": 1,
"volume": 1,
"language": "text",
"keyterms": [
"text"
],
"pronunciation_dict_id": "text",
"sensitive_topics": [
"text"
],
"post_call_analysis_enabled": true,
"transcript_correction_enabled": true,
"stt_provider": "deepgram",
"tts_provider": "cartesia",
"tts_config": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"language_providers": {
"ANY_ADDITIONAL_PROPERTY": {
"provider": "cartesia",
"config": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}
}
}Voice Identity & Style
Providers
Speech Recognition
Pronunciation
Proactive Intelligence
Post-Call Intelligence
How Settings Interact with Emotional Adaptation
Test Caller Numbers
Get Test Caller Numbers
Get phone numbers configured as test callers for this workspace.
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
GET /v1/workspaces/{workspace_id}/test-caller-numbers HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Successful Response
{
"numbers": [
"text"
]
}Update Test Caller Numbers
Set phone numbers to be treated as test callers. Calls from these numbers are tagged source='test' and excluded from billing, scores, analytics, outbound EHR sync, and entity views.
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
Validation Error
PUT /v1/workspaces/{workspace_id}/test-caller-numbers HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 20
{
"numbers": [
"text"
]
}{
"numbers": [
"text"
]
}Test Credential IDs
Get Test Credential IDs
Get the credential IDs configured as test principals for this workspace's text channel.
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
GET /v1/workspaces/{workspace_id}/test-credential-ids HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Successful Response
{
"credential_ids": [
"123e4567-e89b-12d3-a456-426614174000"
]
}Update Test Credential IDs
Set credential IDs to be treated as test principals. Text turns from these credentials are tagged source='test' and excluded from billing, scores, analytics, outbound EHR sync, and entity views.
API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.
Successful Response
Validation Error
PUT /v1/workspaces/{workspace_id}/test-credential-ids HTTP/1.1
Host: api.platform.amigo.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 59
{
"credential_ids": [
"123e4567-e89b-12d3-a456-426614174000"
]
}{
"credential_ids": [
"123e4567-e89b-12d3-a456-426614174000"
]
}Last updated
Was this helpful?

