Skip to content
Pitch2SaleDevelopers
Open the app
Early access: these pages are being written and reviewed. Facts in the header boxes come straight from the product.

Update voice agent

PUT
/api/v1/voice-agents/{id}
curl --request PUT \
--url https://api.pitch2sale.com/api/v1/voice-agents/example \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "example", "description": "example", "language": "example", "languages": [ "example" ], "voice_id": "example", "llm_model": "example", "stt_model": "example", "greeting": "example", "prompt": "example", "function_tools": [ { "name": "example", "description": "example", "schema": { "additionalProperty": "example" } } ], "voicemail_drop_id": "example", "enable_end_call_tool": true, "create_opportunity_on_positive": true, "end_call_after_silence_ms": 1, "max_call_duration_ms": 1, "interruption_sensitivity": 1, "webhook_url": "https://example.com", "booking_rules": { "working_hours_start": "example", "working_hours_end": "example", "working_days": [ 1 ], "default_duration_minutes": 1, "callback_sla_minutes": 1, "callback_response_template": "example" }, "conversation_style": { "voice_speed": 1, "voice_temperature": 1, "responsiveness": 1, "enable_backchannel": true, "backchannel_frequency": 1, "backchannel_words": [ "example" ], "reminder_trigger_ms": 1, "reminder_max_count": 1, "check_in_phrase": "example", "ambient_sound": "none", "ambient_sound_volume": 1, "boosted_keywords": [ "example" ], "pronunciation_dictionary": [ { "word": "example", "pronunciation": "example", "alphabet": "ipa" } ], "pacing_mode": "fast", "enable_filler_words": true }, "persona_id": "example", "status": "draft", "tcpa_disclosure_confirmed_at": "2026-04-15T12:00:00Z" }'
id
required
string
Media typeapplication/json
object
name
string
>= 1 characters <= 200 characters
description
Any of:
string
<= 2000 characters
language
string
>= 2 characters <= 20 characters
languages
Any of:
Array<string>
<= 63 items
voice_id
string
>= 1 characters <= 200 characters
llm_model
string
>= 1 characters <= 100 characters
stt_model
string
>= 1 characters <= 100 characters
greeting
string
>= 1 characters <= 2000 characters
prompt
string
>= 1 characters <= 20000 characters
function_tools
Array<object>
object
name
required
string
>= 1 characters
description
required
string
schema
required
object
key
additional properties
voicemail_drop_id
Any of:
string
/^[a-f0-9]{24}$/
enable_end_call_tool
boolean
create_opportunity_on_positive
boolean
end_call_after_silence_ms
integer
<= 600000
max_call_duration_ms
integer
>= 1000 <= 3600000
interruption_sensitivity
number
<= 1
webhook_url
Any of:
string format: uri
<= 2000 characters
booking_rules
object
working_hours_start
string
/^([01]\d|2[0-3]):[0-5]\d$/
working_hours_end
string
/^([01]\d|2[0-3]):[0-5]\d$/
working_days
Array<integer>
>= 1 items
default_duration_minutes
integer
>= 5 <= 480
callback_sla_minutes
integer
>= 5 <= 1440
callback_response_template
string
>= 1 characters <= 2000 characters
conversation_style
object
voice_speed
number
>= 0.5 <= 2
voice_temperature
number
<= 2
responsiveness
number
<= 1
enable_backchannel
boolean
backchannel_frequency
number
<= 1
backchannel_words
Array<string>
<= 20 items
reminder_trigger_ms
integer
>= 1000 <= 60000
reminder_max_count
integer
<= 10
check_in_phrase
string
>= 1 characters <= 500 characters
ambient_sound
string
Allowed values: none coffee_shop office static silent call_center
ambient_sound_volume
number
<= 1
boosted_keywords
Array<string>
<= 100 items
pronunciation_dictionary
Array<object>
<= 100 items
object
word
required
string
>= 1 characters <= 200 characters
pronunciation
required
string
>= 1 characters <= 500 characters
alphabet
required
string
Allowed values: ipa cmu
pacing_mode
string
Allowed values: fast natural slow adaptive
enable_filler_words
boolean
persona_id
Any of:
string
/^[a-f0-9]{24}$/
status
string
Allowed values: draft active archived
tcpa_disclosure_confirmed_at
Any of:
string format: date-time

OK

Validation failed

Media typeapplication/json
object
error
required
string
code
string
message
string
details
Array<object>
object
field
required
string
message
required
string
code
required
string
Examplegenerated
{
"error": "example",
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"message": "example",
"code": "example"
}
]
}

Authentication required or token invalid

Media typeapplication/json
object
error
required
string
code
string
message
string
details
Array<object>
object
field
required
string
message
required
string
code
required
string
Examplegenerated
{
"error": "example",
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"message": "example",
"code": "example"
}
]
}

Feature not available on the organization plan

Media typeapplication/json
object
error
required
string
code
string
message
string
details
Array<object>
object
field
required
string
message
required
string
code
required
string
Examplegenerated
{
"error": "example",
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"message": "example",
"code": "example"
}
]
}

Role permission or token scope missing

Media typeapplication/json
object
error
required
string
code
string
message
string
details
Array<object>
object
field
required
string
message
required
string
code
required
string
Examplegenerated
{
"error": "example",
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"message": "example",
"code": "example"
}
]
}

Rate limit exceeded

Media typeapplication/json
object
error
required
string
code
string
message
string
details
Array<object>
object
field
required
string
message
required
string
code
required
string
Examplegenerated
{
"error": "example",
"code": "example",
"message": "example",
"details": [
{
"field": "example",
"message": "example",
"code": "example"
}
]
}