curl --request PATCH \
--url https://api.omnia-voice.com/api/v1/agents/{id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"name": "<string>",
"description": "<string>",
"config": {
"languageId": "<string>",
"voiceId": "<string>",
"basePrompt": "<string>",
"greeting": "<string>",
"context": "<string>",
"questions": "<string>",
"customInstructions": "<string>",
"recordingEnabled": true,
"temperature": 0,
"maxDuration": 3000,
"firstSpeaker": "agent",
"interruptible": false,
"inactivityTimeout": 155,
"model": "llama",
"language": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"isActive": true
},
"voice": {
"id": "<string>",
"name": "<string>",
"description": "<string>",
"previewUrl": "<string>",
"languageCode": "<string>",
"gender": "<string>",
"isActive": true,
"language": {
"code": "<string>",
"name": "<string>"
}
}
},
"changeNote": "<string>"
}
'const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
config: {
languageId: '<string>',
voiceId: '<string>',
basePrompt: '<string>',
greeting: '<string>',
context: '<string>',
questions: '<string>',
customInstructions: '<string>',
recordingEnabled: true,
temperature: 0,
maxDuration: 3000,
firstSpeaker: 'agent',
interruptible: false,
inactivityTimeout: 155,
model: 'llama',
language: {id: '<string>', code: '<string>', name: '<string>', isActive: true},
voice: {
id: '<string>',
name: '<string>',
description: '<string>',
previewUrl: '<string>',
languageCode: '<string>',
gender: '<string>',
isActive: true,
language: {code: '<string>', name: '<string>'}
}
},
changeNote: '<string>'
})
};
fetch('https://api.omnia-voice.com/api/v1/agents/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.omnia-voice.com/api/v1/agents/{id}"
payload = {
"name": "<string>",
"description": "<string>",
"config": {
"languageId": "<string>",
"voiceId": "<string>",
"basePrompt": "<string>",
"greeting": "<string>",
"context": "<string>",
"questions": "<string>",
"customInstructions": "<string>",
"recordingEnabled": True,
"temperature": 0,
"maxDuration": 3000,
"firstSpeaker": "agent",
"interruptible": False,
"inactivityTimeout": 155,
"model": "llama",
"language": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"isActive": True
},
"voice": {
"id": "<string>",
"name": "<string>",
"description": "<string>",
"previewUrl": "<string>",
"languageCode": "<string>",
"gender": "<string>",
"isActive": True,
"language": {
"code": "<string>",
"name": "<string>"
}
}
},
"changeNote": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"id": "<string>",
"name": "<string>",
"description": "<string>",
"status": "ACTIVE",
"type": "standard",
"workspaceId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"standardConfig": {
"languageId": "<string>",
"voiceId": "<string>",
"basePrompt": "<string>",
"greeting": "<string>",
"context": "<string>",
"questions": "<string>",
"customInstructions": "<string>",
"recordingEnabled": true,
"temperature": 0,
"maxDuration": 3000,
"firstSpeaker": "agent",
"interruptible": false,
"inactivityTimeout": 155,
"inactivityAction": "hang_up",
"model": "llama",
"language": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"isActive": true
},
"voice": {
"id": "<string>",
"name": "<string>",
"description": "<string>",
"previewUrl": "<string>",
"languageCode": "<string>",
"gender": "<string>",
"isActive": true,
"language": {
"code": "<string>",
"name": "<string>"
}
}
},
"actions": [
{}
],
"knowledgeBases": [
{}
]
}{
"error": "Invalid request body",
"details": {
"formErrors": [
"<string>"
],
"fieldErrors": {
"baseUrlPattern": [
"Internal URLs are not allowed"
]
}
}
}{
"error": "Invalid request body",
"details": {
"formErrors": [
"<string>"
],
"fieldErrors": {
"baseUrlPattern": [
"Internal URLs are not allowed"
]
}
}
}Update agent (partial)
Update an existing agent
curl --request PATCH \
--url https://api.omnia-voice.com/api/v1/agents/{id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"name": "<string>",
"description": "<string>",
"config": {
"languageId": "<string>",
"voiceId": "<string>",
"basePrompt": "<string>",
"greeting": "<string>",
"context": "<string>",
"questions": "<string>",
"customInstructions": "<string>",
"recordingEnabled": true,
"temperature": 0,
"maxDuration": 3000,
"firstSpeaker": "agent",
"interruptible": false,
"inactivityTimeout": 155,
"model": "llama",
"language": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"isActive": true
},
"voice": {
"id": "<string>",
"name": "<string>",
"description": "<string>",
"previewUrl": "<string>",
"languageCode": "<string>",
"gender": "<string>",
"isActive": true,
"language": {
"code": "<string>",
"name": "<string>"
}
}
},
"changeNote": "<string>"
}
'const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
config: {
languageId: '<string>',
voiceId: '<string>',
basePrompt: '<string>',
greeting: '<string>',
context: '<string>',
questions: '<string>',
customInstructions: '<string>',
recordingEnabled: true,
temperature: 0,
maxDuration: 3000,
firstSpeaker: 'agent',
interruptible: false,
inactivityTimeout: 155,
model: 'llama',
language: {id: '<string>', code: '<string>', name: '<string>', isActive: true},
voice: {
id: '<string>',
name: '<string>',
description: '<string>',
previewUrl: '<string>',
languageCode: '<string>',
gender: '<string>',
isActive: true,
language: {code: '<string>', name: '<string>'}
}
},
changeNote: '<string>'
})
};
fetch('https://api.omnia-voice.com/api/v1/agents/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.omnia-voice.com/api/v1/agents/{id}"
payload = {
"name": "<string>",
"description": "<string>",
"config": {
"languageId": "<string>",
"voiceId": "<string>",
"basePrompt": "<string>",
"greeting": "<string>",
"context": "<string>",
"questions": "<string>",
"customInstructions": "<string>",
"recordingEnabled": True,
"temperature": 0,
"maxDuration": 3000,
"firstSpeaker": "agent",
"interruptible": False,
"inactivityTimeout": 155,
"model": "llama",
"language": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"isActive": True
},
"voice": {
"id": "<string>",
"name": "<string>",
"description": "<string>",
"previewUrl": "<string>",
"languageCode": "<string>",
"gender": "<string>",
"isActive": True,
"language": {
"code": "<string>",
"name": "<string>"
}
}
},
"changeNote": "<string>"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"id": "<string>",
"name": "<string>",
"description": "<string>",
"status": "ACTIVE",
"type": "standard",
"workspaceId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"standardConfig": {
"languageId": "<string>",
"voiceId": "<string>",
"basePrompt": "<string>",
"greeting": "<string>",
"context": "<string>",
"questions": "<string>",
"customInstructions": "<string>",
"recordingEnabled": true,
"temperature": 0,
"maxDuration": 3000,
"firstSpeaker": "agent",
"interruptible": false,
"inactivityTimeout": 155,
"inactivityAction": "hang_up",
"model": "llama",
"language": {
"id": "<string>",
"code": "<string>",
"name": "<string>",
"isActive": true
},
"voice": {
"id": "<string>",
"name": "<string>",
"description": "<string>",
"previewUrl": "<string>",
"languageCode": "<string>",
"gender": "<string>",
"isActive": true,
"language": {
"code": "<string>",
"name": "<string>"
}
}
},
"actions": [
{}
],
"knowledgeBases": [
{}
]
}{
"error": "Invalid request body",
"details": {
"formErrors": [
"<string>"
],
"fieldErrors": {
"baseUrlPattern": [
"Internal URLs are not allowed"
]
}
}
}{
"error": "Invalid request body",
"details": {
"formErrors": [
"<string>"
],
"fieldErrors": {
"baseUrlPattern": [
"Internal URLs are not allowed"
]
}
}
}Authorizations
API key for authentication
Path Parameters
Agent ID
Body
Partial update — send only what you are changing. Omitted fields keep
their current values. Use PATCH; there is no PUT handler.
1 - 100ACTIVE, INACTIVE, SUSPENDED Any subset of the configuration fields.
Show child attributes
Show child attributes
Recorded against the version this update creates. An update that changes nothing does not create a version.
Response
Agent updated successfully
An agent as returned by the API.
Note the asymmetry with the create/update payloads: you write
configuration under config, and read it back under
standardConfig (or customProvider). The type field tells you which
one is present.
Only ACTIVE agents accept calls.
ACTIVE, INACTIVE, SUSPENDED standard agents carry standardConfig. custom agents use
caller-supplied STT/LLM/TTS providers and carry customProvider.
standard, custom The workspace this agent belongs to.
Present when type is standard.
Show child attributes
Show child attributes
Actions attached to this agent.
Knowledge bases attached to this agent.