curl --request PATCH \
--url 'https://api.voice.stateset.com/api/v1/customer/agent' \
--header "Authorization: Bearer $STATESET_VOICE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"business_profile": {
"business_name": "string",
"description": "Two-person tent, green — replacement for damaged pole set.",
"faqs": [
{
"answer": null,
"question": null
}
],
"hours": "string",
"location": "string",
"notes": "Two-person tent, green — replacement for damaged pole set.",
"services": [
"string"
],
"transfer_to": "string"
},
"greeting": "Hi, thanks for calling Acme!",
"instructions": "Be concise and friendly.",
"voice": "eve"
}'
{
"ok": true,
"agent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"agent_name": "string",
"voice": "eve",
"greeting": "string",
"instructions": "Two-person tent, green — replacement for damaged pole set.",
"realtime_model": "string",
"business_profile": {
"business_name": "string",
"description": "Two-person tent, green — replacement for damaged pole set.",
"faqs": [
{
"answer": null,
"question": null
}
],
"hours": "string",
"location": "string",
"notes": "Two-person tent, green — replacement for damaged pole set.",
"services": [
"string"
],
"transfer_to": "string"
}
}
Update Agent
StateSet Voice API operation.
PATCH
/
api
/
v1
/
customer
/
agent
curl --request PATCH \
--url 'https://api.voice.stateset.com/api/v1/customer/agent' \
--header "Authorization: Bearer $STATESET_VOICE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"business_profile": {
"business_name": "string",
"description": "Two-person tent, green — replacement for damaged pole set.",
"faqs": [
{
"answer": null,
"question": null
}
],
"hours": "string",
"location": "string",
"notes": "Two-person tent, green — replacement for damaged pole set.",
"services": [
"string"
],
"transfer_to": "string"
},
"greeting": "Hi, thanks for calling Acme!",
"instructions": "Be concise and friendly.",
"voice": "eve"
}'
{
"ok": true,
"agent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"agent_name": "string",
"voice": "eve",
"greeting": "string",
"instructions": "Two-person tent, green — replacement for damaged pole set.",
"realtime_model": "string",
"business_profile": {
"business_name": "string",
"description": "Two-person tent, green — replacement for damaged pole set.",
"faqs": [
{
"answer": null,
"question": null
}
],
"hours": "string",
"location": "string",
"notes": "Two-person tent, green — replacement for damaged pole set.",
"services": [
"string"
],
"transfer_to": "string"
}
}
StateSet Voice API operation.
Request body
AgentPatch
BusinessProfile,null
string,null
New greeting line, up to 500 characters
string,null
New system instructions, up to 8000 characters. Supplying this detaches the guided profile — the customer owns the prose from then on.
string,null
New voice id (validated against the voice catalog; see
GET /customer/voices)Response
object
boolean
required
string (uuid)
required
Id of the tenant’s published voice_receptionist agent
string,null
required
Display name the agent introduces itself with
string,null
required
Voice id from the voice catalog
string,null
required
Greeting line spoken when a call connects
string,null
required
System instructions the agent follows
string,null
required
Realtime model the agent runs on
BusinessProfile,null
required
Guided business profile when the agent is still wizard-authored. Null once the customer has hand-edited their instructions.
Show BusinessProfile
Show BusinessProfile
string
required
Trading name, used in the greeting and throughout the prompt.
string,null
One line on what the business does (‘family dental practice’).
Faq[]
string,null
Free-text hours (‘Mon-Fri 9-5, closed weekends’).
string,null
Address or service area.
string,null
Anything else the owner wants the agent to know or avoid.
string[]
Things the business offers; the agent may discuss these.
string,null
E.164 number to transfer a caller to when they ask for a human.
Status codes
| Code | Meaning |
|---|---|
200 | Receptionist agent updated; a new version was created and published. Returns the updated configuration in the same shape as GET /customer/agent. |
400 | Unknown voice id, or greeting/instructions exceed the length limit |
404 | Customer self-serve plane disabled |
409 | No receptionist agent configured for this tenant |
curl --request PATCH \
--url 'https://api.voice.stateset.com/api/v1/customer/agent' \
--header "Authorization: Bearer $STATESET_VOICE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"business_profile": {
"business_name": "string",
"description": "Two-person tent, green — replacement for damaged pole set.",
"faqs": [
{
"answer": null,
"question": null
}
],
"hours": "string",
"location": "string",
"notes": "Two-person tent, green — replacement for damaged pole set.",
"services": [
"string"
],
"transfer_to": "string"
},
"greeting": "Hi, thanks for calling Acme!",
"instructions": "Be concise and friendly.",
"voice": "eve"
}'
{
"ok": true,
"agent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"agent_name": "string",
"voice": "eve",
"greeting": "string",
"instructions": "Two-person tent, green — replacement for damaged pole set.",
"realtime_model": "string",
"business_profile": {
"business_name": "string",
"description": "Two-person tent, green — replacement for damaged pole set.",
"faqs": [
{
"answer": null,
"question": null
}
],
"hours": "string",
"location": "string",
"notes": "Two-person tent, green — replacement for damaged pole set.",
"services": [
"string"
],
"transfer_to": "string"
}
}
Last modified on August 31, 2026