Skip to main content
PATCH
/
agents
/
{id}
Update Agent
curl --request PATCH \
  --url https://api.revring.ai/v1/agents/{id} \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "messagingConnectionId": "<string>",
  "messagingConfig": {
    "smsPrompt": "<string>",
    "inboundWebhookUrl": "<string>",
    "fromNumber": "<string>",
    "sendMessageEnabled": true,
    "sendMessageDescriptionOverride": "<string>",
    "conversationIdleResetDays": 123
  },
  "widgetConfig": {
    "enabled": true,
    "modes": {
      "chat": true,
      "voice": true
    },
    "continuity": {
      "resumeCalls": true,
      "sharedMemory": true
    },
    "allowedDomains": [
      "<string>"
    ],
    "webchatPrompt": "<string>",
    "appearance": {
      "accentColor": "<string>",
      "launcherLabel": "<string>",
      "agentDisplayName": "<string>",
      "avatarUrl": "<string>",
      "welcomeMessage": "<string>",
      "chatPlaceholder": "<string>"
    },
    "limits": {
      "messagesPerDay": 123
    }
  },
  "sipTrunkId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "folderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "<string>",
  "promptTemplate": "<string>",
  "defaultVariables": {},
  "firstMessage": "<string>",
  "turnTimeoutSeconds": 0,
  "silenceEndCallTimeoutSeconds": 0,
  "maxConversationDurationSeconds": 2,
  "llmTemperature": 1,
  "timezone": "<string>",
  "language": "<string>",
  "preCallWebhookUrl": "<string>",
  "postCallWebhookUrl": "<string>",
  "endCallEnabled": true,
  "endCallRulesOverride": "<string>",
  "transferEnabled": true,
  "transferRoutes": [
    {
      "to_number": "<string>",
      "condition": "<string>",
      "extension": "<string>"
    }
  ],
  "transferDescriptionOverride": "<string>",
  "voicemailEnabled": true,
  "voicemailMessage": "<string>",
  "voiceId": "<string>",
  "voiceTemperature": 0.5,
  "voiceSpeed": 1.25,
  "voiceVolume": 0,
  "voiceTopP": 0.5,
  "runtimeConfig": {},
  "flowDefinition": {},
  "testVariables": {},
  "disableInterruptions": true,
  "interruptionThresholdMs": 500,
  "warmTransferConfig": {
    "holdMessage": "<string>",
    "holdMusicEnabled": true,
    "summaryPrompt": "<string>",
    "introMessage": "<string>",
    "continueRecordingAfterTransfer": true
  },
  "playKeypadTouchToneEnabled": true,
  "playKeypadTouchToneDescriptionOverride": "<string>",
  "knowledgeBaseChunks": 10,
  "knowledgeBaseSimilarityThreshold": 0.5
}
'
import requests

url = "https://api.revring.ai/v1/agents/{id}"

payload = {
"messagingConnectionId": "<string>",
"messagingConfig": {
"smsPrompt": "<string>",
"inboundWebhookUrl": "<string>",
"fromNumber": "<string>",
"sendMessageEnabled": True,
"sendMessageDescriptionOverride": "<string>",
"conversationIdleResetDays": 123
},
"widgetConfig": {
"enabled": True,
"modes": {
"chat": True,
"voice": True
},
"continuity": {
"resumeCalls": True,
"sharedMemory": True
},
"allowedDomains": ["<string>"],
"webchatPrompt": "<string>",
"appearance": {
"accentColor": "<string>",
"launcherLabel": "<string>",
"agentDisplayName": "<string>",
"avatarUrl": "<string>",
"welcomeMessage": "<string>",
"chatPlaceholder": "<string>"
},
"limits": { "messagesPerDay": 123 }
},
"sipTrunkId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"folderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"promptTemplate": "<string>",
"defaultVariables": {},
"firstMessage": "<string>",
"turnTimeoutSeconds": 0,
"silenceEndCallTimeoutSeconds": 0,
"maxConversationDurationSeconds": 2,
"llmTemperature": 1,
"timezone": "<string>",
"language": "<string>",
"preCallWebhookUrl": "<string>",
"postCallWebhookUrl": "<string>",
"endCallEnabled": True,
"endCallRulesOverride": "<string>",
"transferEnabled": True,
"transferRoutes": [
{
"to_number": "<string>",
"condition": "<string>",
"extension": "<string>"
}
],
"transferDescriptionOverride": "<string>",
"voicemailEnabled": True,
"voicemailMessage": "<string>",
"voiceId": "<string>",
"voiceTemperature": 0.5,
"voiceSpeed": 1.25,
"voiceVolume": 0,
"voiceTopP": 0.5,
"runtimeConfig": {},
"flowDefinition": {},
"testVariables": {},
"disableInterruptions": True,
"interruptionThresholdMs": 500,
"warmTransferConfig": {
"holdMessage": "<string>",
"holdMusicEnabled": True,
"summaryPrompt": "<string>",
"introMessage": "<string>",
"continueRecordingAfterTransfer": True
},
"playKeypadTouchToneEnabled": True,
"playKeypadTouchToneDescriptionOverride": "<string>",
"knowledgeBaseChunks": 10,
"knowledgeBaseSimilarityThreshold": 0.5
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}

response = requests.patch(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
messagingConnectionId: '<string>',
messagingConfig: {
smsPrompt: '<string>',
inboundWebhookUrl: '<string>',
fromNumber: '<string>',
sendMessageEnabled: true,
sendMessageDescriptionOverride: '<string>',
conversationIdleResetDays: 123
},
widgetConfig: {
enabled: true,
modes: {chat: true, voice: true},
continuity: {resumeCalls: true, sharedMemory: true},
allowedDomains: ['<string>'],
webchatPrompt: '<string>',
appearance: {
accentColor: '<string>',
launcherLabel: '<string>',
agentDisplayName: '<string>',
avatarUrl: '<string>',
welcomeMessage: '<string>',
chatPlaceholder: '<string>'
},
limits: {messagesPerDay: 123}
},
sipTrunkId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
folderId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
name: '<string>',
promptTemplate: '<string>',
defaultVariables: {},
firstMessage: '<string>',
turnTimeoutSeconds: 0,
silenceEndCallTimeoutSeconds: 0,
maxConversationDurationSeconds: 2,
llmTemperature: 1,
timezone: '<string>',
language: '<string>',
preCallWebhookUrl: '<string>',
postCallWebhookUrl: '<string>',
endCallEnabled: true,
endCallRulesOverride: '<string>',
transferEnabled: true,
transferRoutes: [{to_number: '<string>', condition: '<string>', extension: '<string>'}],
transferDescriptionOverride: '<string>',
voicemailEnabled: true,
voicemailMessage: '<string>',
voiceId: '<string>',
voiceTemperature: 0.5,
voiceSpeed: 1.25,
voiceVolume: 0,
voiceTopP: 0.5,
runtimeConfig: {},
flowDefinition: {},
testVariables: {},
disableInterruptions: true,
interruptionThresholdMs: 500,
warmTransferConfig: {
holdMessage: '<string>',
holdMusicEnabled: true,
summaryPrompt: '<string>',
introMessage: '<string>',
continueRecordingAfterTransfer: true
},
playKeypadTouchToneEnabled: true,
playKeypadTouchToneDescriptionOverride: '<string>',
knowledgeBaseChunks: 10,
knowledgeBaseSimilarityThreshold: 0.5
})
};

fetch('https://api.revring.ai/v1/agents/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.revring.ai/v1/agents/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'messagingConnectionId' => '<string>',
'messagingConfig' => [
'smsPrompt' => '<string>',
'inboundWebhookUrl' => '<string>',
'fromNumber' => '<string>',
'sendMessageEnabled' => true,
'sendMessageDescriptionOverride' => '<string>',
'conversationIdleResetDays' => 123
],
'widgetConfig' => [
'enabled' => true,
'modes' => [
'chat' => true,
'voice' => true
],
'continuity' => [
'resumeCalls' => true,
'sharedMemory' => true
],
'allowedDomains' => [
'<string>'
],
'webchatPrompt' => '<string>',
'appearance' => [
'accentColor' => '<string>',
'launcherLabel' => '<string>',
'agentDisplayName' => '<string>',
'avatarUrl' => '<string>',
'welcomeMessage' => '<string>',
'chatPlaceholder' => '<string>'
],
'limits' => [
'messagesPerDay' => 123
]
],
'sipTrunkId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'folderId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'name' => '<string>',
'promptTemplate' => '<string>',
'defaultVariables' => [

],
'firstMessage' => '<string>',
'turnTimeoutSeconds' => 0,
'silenceEndCallTimeoutSeconds' => 0,
'maxConversationDurationSeconds' => 2,
'llmTemperature' => 1,
'timezone' => '<string>',
'language' => '<string>',
'preCallWebhookUrl' => '<string>',
'postCallWebhookUrl' => '<string>',
'endCallEnabled' => true,
'endCallRulesOverride' => '<string>',
'transferEnabled' => true,
'transferRoutes' => [
[
'to_number' => '<string>',
'condition' => '<string>',
'extension' => '<string>'
]
],
'transferDescriptionOverride' => '<string>',
'voicemailEnabled' => true,
'voicemailMessage' => '<string>',
'voiceId' => '<string>',
'voiceTemperature' => 0.5,
'voiceSpeed' => 1.25,
'voiceVolume' => 0,
'voiceTopP' => 0.5,
'runtimeConfig' => [

],
'flowDefinition' => [

],
'testVariables' => [

],
'disableInterruptions' => true,
'interruptionThresholdMs' => 500,
'warmTransferConfig' => [
'holdMessage' => '<string>',
'holdMusicEnabled' => true,
'summaryPrompt' => '<string>',
'introMessage' => '<string>',
'continueRecordingAfterTransfer' => true
],
'playKeypadTouchToneEnabled' => true,
'playKeypadTouchToneDescriptionOverride' => '<string>',
'knowledgeBaseChunks' => 10,
'knowledgeBaseSimilarityThreshold' => 0.5
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.revring.ai/v1/agents/{id}"

payload := strings.NewReader("{\n \"messagingConnectionId\": \"<string>\",\n \"messagingConfig\": {\n \"smsPrompt\": \"<string>\",\n \"inboundWebhookUrl\": \"<string>\",\n \"fromNumber\": \"<string>\",\n \"sendMessageEnabled\": true,\n \"sendMessageDescriptionOverride\": \"<string>\",\n \"conversationIdleResetDays\": 123\n },\n \"widgetConfig\": {\n \"enabled\": true,\n \"modes\": {\n \"chat\": true,\n \"voice\": true\n },\n \"continuity\": {\n \"resumeCalls\": true,\n \"sharedMemory\": true\n },\n \"allowedDomains\": [\n \"<string>\"\n ],\n \"webchatPrompt\": \"<string>\",\n \"appearance\": {\n \"accentColor\": \"<string>\",\n \"launcherLabel\": \"<string>\",\n \"agentDisplayName\": \"<string>\",\n \"avatarUrl\": \"<string>\",\n \"welcomeMessage\": \"<string>\",\n \"chatPlaceholder\": \"<string>\"\n },\n \"limits\": {\n \"messagesPerDay\": 123\n }\n },\n \"sipTrunkId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"folderId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\",\n \"promptTemplate\": \"<string>\",\n \"defaultVariables\": {},\n \"firstMessage\": \"<string>\",\n \"turnTimeoutSeconds\": 0,\n \"silenceEndCallTimeoutSeconds\": 0,\n \"maxConversationDurationSeconds\": 2,\n \"llmTemperature\": 1,\n \"timezone\": \"<string>\",\n \"language\": \"<string>\",\n \"preCallWebhookUrl\": \"<string>\",\n \"postCallWebhookUrl\": \"<string>\",\n \"endCallEnabled\": true,\n \"endCallRulesOverride\": \"<string>\",\n \"transferEnabled\": true,\n \"transferRoutes\": [\n {\n \"to_number\": \"<string>\",\n \"condition\": \"<string>\",\n \"extension\": \"<string>\"\n }\n ],\n \"transferDescriptionOverride\": \"<string>\",\n \"voicemailEnabled\": true,\n \"voicemailMessage\": \"<string>\",\n \"voiceId\": \"<string>\",\n \"voiceTemperature\": 0.5,\n \"voiceSpeed\": 1.25,\n \"voiceVolume\": 0,\n \"voiceTopP\": 0.5,\n \"runtimeConfig\": {},\n \"flowDefinition\": {},\n \"testVariables\": {},\n \"disableInterruptions\": true,\n \"interruptionThresholdMs\": 500,\n \"warmTransferConfig\": {\n \"holdMessage\": \"<string>\",\n \"holdMusicEnabled\": true,\n \"summaryPrompt\": \"<string>\",\n \"introMessage\": \"<string>\",\n \"continueRecordingAfterTransfer\": true\n },\n \"playKeypadTouchToneEnabled\": true,\n \"playKeypadTouchToneDescriptionOverride\": \"<string>\",\n \"knowledgeBaseChunks\": 10,\n \"knowledgeBaseSimilarityThreshold\": 0.5\n}")

req, _ := http.NewRequest("PATCH", url, payload)

req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.patch("https://api.revring.ai/v1/agents/{id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"messagingConnectionId\": \"<string>\",\n \"messagingConfig\": {\n \"smsPrompt\": \"<string>\",\n \"inboundWebhookUrl\": \"<string>\",\n \"fromNumber\": \"<string>\",\n \"sendMessageEnabled\": true,\n \"sendMessageDescriptionOverride\": \"<string>\",\n \"conversationIdleResetDays\": 123\n },\n \"widgetConfig\": {\n \"enabled\": true,\n \"modes\": {\n \"chat\": true,\n \"voice\": true\n },\n \"continuity\": {\n \"resumeCalls\": true,\n \"sharedMemory\": true\n },\n \"allowedDomains\": [\n \"<string>\"\n ],\n \"webchatPrompt\": \"<string>\",\n \"appearance\": {\n \"accentColor\": \"<string>\",\n \"launcherLabel\": \"<string>\",\n \"agentDisplayName\": \"<string>\",\n \"avatarUrl\": \"<string>\",\n \"welcomeMessage\": \"<string>\",\n \"chatPlaceholder\": \"<string>\"\n },\n \"limits\": {\n \"messagesPerDay\": 123\n }\n },\n \"sipTrunkId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"folderId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\",\n \"promptTemplate\": \"<string>\",\n \"defaultVariables\": {},\n \"firstMessage\": \"<string>\",\n \"turnTimeoutSeconds\": 0,\n \"silenceEndCallTimeoutSeconds\": 0,\n \"maxConversationDurationSeconds\": 2,\n \"llmTemperature\": 1,\n \"timezone\": \"<string>\",\n \"language\": \"<string>\",\n \"preCallWebhookUrl\": \"<string>\",\n \"postCallWebhookUrl\": \"<string>\",\n \"endCallEnabled\": true,\n \"endCallRulesOverride\": \"<string>\",\n \"transferEnabled\": true,\n \"transferRoutes\": [\n {\n \"to_number\": \"<string>\",\n \"condition\": \"<string>\",\n \"extension\": \"<string>\"\n }\n ],\n \"transferDescriptionOverride\": \"<string>\",\n \"voicemailEnabled\": true,\n \"voicemailMessage\": \"<string>\",\n \"voiceId\": \"<string>\",\n \"voiceTemperature\": 0.5,\n \"voiceSpeed\": 1.25,\n \"voiceVolume\": 0,\n \"voiceTopP\": 0.5,\n \"runtimeConfig\": {},\n \"flowDefinition\": {},\n \"testVariables\": {},\n \"disableInterruptions\": true,\n \"interruptionThresholdMs\": 500,\n \"warmTransferConfig\": {\n \"holdMessage\": \"<string>\",\n \"holdMusicEnabled\": true,\n \"summaryPrompt\": \"<string>\",\n \"introMessage\": \"<string>\",\n \"continueRecordingAfterTransfer\": true\n },\n \"playKeypadTouchToneEnabled\": true,\n \"playKeypadTouchToneDescriptionOverride\": \"<string>\",\n \"knowledgeBaseChunks\": 10,\n \"knowledgeBaseSimilarityThreshold\": 0.5\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.revring.ai/v1/agents/{id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"messagingConnectionId\": \"<string>\",\n \"messagingConfig\": {\n \"smsPrompt\": \"<string>\",\n \"inboundWebhookUrl\": \"<string>\",\n \"fromNumber\": \"<string>\",\n \"sendMessageEnabled\": true,\n \"sendMessageDescriptionOverride\": \"<string>\",\n \"conversationIdleResetDays\": 123\n },\n \"widgetConfig\": {\n \"enabled\": true,\n \"modes\": {\n \"chat\": true,\n \"voice\": true\n },\n \"continuity\": {\n \"resumeCalls\": true,\n \"sharedMemory\": true\n },\n \"allowedDomains\": [\n \"<string>\"\n ],\n \"webchatPrompt\": \"<string>\",\n \"appearance\": {\n \"accentColor\": \"<string>\",\n \"launcherLabel\": \"<string>\",\n \"agentDisplayName\": \"<string>\",\n \"avatarUrl\": \"<string>\",\n \"welcomeMessage\": \"<string>\",\n \"chatPlaceholder\": \"<string>\"\n },\n \"limits\": {\n \"messagesPerDay\": 123\n }\n },\n \"sipTrunkId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"folderId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"name\": \"<string>\",\n \"promptTemplate\": \"<string>\",\n \"defaultVariables\": {},\n \"firstMessage\": \"<string>\",\n \"turnTimeoutSeconds\": 0,\n \"silenceEndCallTimeoutSeconds\": 0,\n \"maxConversationDurationSeconds\": 2,\n \"llmTemperature\": 1,\n \"timezone\": \"<string>\",\n \"language\": \"<string>\",\n \"preCallWebhookUrl\": \"<string>\",\n \"postCallWebhookUrl\": \"<string>\",\n \"endCallEnabled\": true,\n \"endCallRulesOverride\": \"<string>\",\n \"transferEnabled\": true,\n \"transferRoutes\": [\n {\n \"to_number\": \"<string>\",\n \"condition\": \"<string>\",\n \"extension\": \"<string>\"\n }\n ],\n \"transferDescriptionOverride\": \"<string>\",\n \"voicemailEnabled\": true,\n \"voicemailMessage\": \"<string>\",\n \"voiceId\": \"<string>\",\n \"voiceTemperature\": 0.5,\n \"voiceSpeed\": 1.25,\n \"voiceVolume\": 0,\n \"voiceTopP\": 0.5,\n \"runtimeConfig\": {},\n \"flowDefinition\": {},\n \"testVariables\": {},\n \"disableInterruptions\": true,\n \"interruptionThresholdMs\": 500,\n \"warmTransferConfig\": {\n \"holdMessage\": \"<string>\",\n \"holdMusicEnabled\": true,\n \"summaryPrompt\": \"<string>\",\n \"introMessage\": \"<string>\",\n \"continueRecordingAfterTransfer\": true\n },\n \"playKeypadTouchToneEnabled\": true,\n \"playKeypadTouchToneDescriptionOverride\": \"<string>\",\n \"knowledgeBaseChunks\": 10,\n \"knowledgeBaseSimilarityThreshold\": 0.5\n}"

response = http.request(request)
puts response.read_body
{
  "data": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "name": "<string>",
    "promptTemplate": "<string>",
    "createdAt": "2023-11-07T05:31:56Z",
    "updatedAt": "2023-11-07T05:31:56Z",
    "messagingConnectionId": "<string>",
    "messagingConfig": {
      "smsPrompt": "<string>",
      "inboundWebhookUrl": "<string>",
      "fromNumber": "<string>",
      "sendMessageEnabled": true,
      "sendMessageDescriptionOverride": "<string>",
      "conversationIdleResetDays": 123
    },
    "widgetKey": "<string>",
    "widgetConfig": {
      "enabled": true,
      "modes": {
        "chat": true,
        "voice": true
      },
      "continuity": {
        "resumeCalls": true,
        "sharedMemory": true
      },
      "allowedDomains": [
        "<string>"
      ],
      "webchatPrompt": "<string>",
      "appearance": {
        "accentColor": "<string>",
        "launcherLabel": "<string>",
        "agentDisplayName": "<string>",
        "avatarUrl": "<string>",
        "welcomeMessage": "<string>",
        "chatPlaceholder": "<string>"
      },
      "limits": {
        "messagesPerDay": 123
      }
    },
    "sipTrunkId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "sipTrunk": {
      "friendlyName": "<string>"
    },
    "folderId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "folder": {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "name": "<string>",
      "color": "<string>"
    },
    "defaultVariables": {},
    "firstMessage": "<string>",
    "turnTimeoutSeconds": 123,
    "silenceEndCallTimeoutSeconds": 123,
    "maxConversationDurationSeconds": 123,
    "llmTemperature": 1,
    "timezone": "<string>",
    "language": "<string>",
    "preCallWebhookUrl": "<string>",
    "postCallWebhookUrl": "<string>",
    "endCallEnabled": true,
    "endCallRulesOverride": "<string>",
    "transferEnabled": true,
    "transferRoutes": [
      {
        "to_number": "<string>",
        "condition": "<string>",
        "extension": "<string>"
      }
    ],
    "transferDescriptionOverride": "<string>",
    "voicemailEnabled": true,
    "voicemailMessage": "<string>",
    "voiceId": "<string>",
    "voiceTemperature": 0.5,
    "voiceSpeed": 1.25,
    "voiceVolume": 0,
    "voiceTopP": 0.5,
    "runtimeConfig": {},
    "phoneNumbers": [
      {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "e164": "<string>",
        "createdAt": "2023-11-07T05:31:56Z",
        "updatedAt": "2023-11-07T05:31:56Z"
      }
    ],
    "customTools": [
      {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "name": "<string>",
        "webhookUrl": "<string>",
        "enabled": true,
        "createdAt": "2023-11-07T05:31:56Z",
        "updatedAt": "2023-11-07T05:31:56Z",
        "schema": {},
        "headers": [
          {
            "key": "<string>",
            "value": "<string>"
          }
        ],
        "queryParams": [
          {
            "key": "<string>",
            "value": "<string>"
          }
        ],
        "sendRawRequestBody": true
      }
    ],
    "flowDefinition": {},
    "testVariables": {},
    "disableInterruptions": true,
    "interruptionThresholdMs": 500,
    "warmTransferConfig": {
      "holdMessage": "<string>",
      "holdMusicEnabled": true,
      "summaryPrompt": "<string>",
      "introMessage": "<string>",
      "continueRecordingAfterTransfer": true
    },
    "playKeypadTouchToneEnabled": true,
    "playKeypadTouchToneDescriptionOverride": "<string>",
    "knowledgeBaseChunks": 10,
    "knowledgeBaseSimilarityThreshold": 0.5
  }
}
{
"details": {}
}
{
"error": "unauthorized"
}
{
"error": "billing_inactive"
}
{
"error": "not_found"
}

Authorizations

x-api-key
string
header
required

API key for authentication. Generate API keys from the RevRing dashboard.

Path Parameters

id
string<uuid>
required

Agent ID

Body

application/json

Update an existing AI voice agent. All fields are optional.

messagingConnectionId
string | null

ID of the messaging connection this agent sends and receives texts through (see Messaging Connections).

messagingConfig
object

Per-agent messaging settings. A JSON object; set only the keys you need.

widgetConfig
object

Per-agent website chat widget settings. A JSON object; set only the keys you need. Enabling the widget the first time mints a public embed key (returned as the read-only 'widgetKey' on the agent).

sipTrunkId
string<uuid> | null

SIP trunk ID to use for this agent's calls

folderId
string<uuid> | null

Folder ID. Pass null to move to Uncategorized.

name
string

Agent name

Maximum string length: 128
status
enum<string>

Agent status (active = can receive calls, disabled = inactive)

Available options:
active,
disabled
promptTemplate
string

System prompt with {{variable}} placeholders

defaultVariables
object | null

Default values for template variables

firstMessage
string

Agent's opening message

Maximum string length: 4000
firstMessageMode
enum<string> | null

How the agent opens the call. "static" speaks the first message text. "dynamic" generates the opening line from the agent's prompt, so one agent can greet inbound and outbound callers differently. Pass null to restore the default behavior.

Available options:
static,
dynamic
turnTimeoutSeconds
integer

Seconds to wait for user response (-1 = no timeout)

Required range: x >= -1
silenceEndCallTimeoutSeconds
integer

Silence duration before ending call (-1 = no timeout)

Required range: x >= -1
maxConversationDurationSeconds
integer

Maximum call duration in seconds

Required range: x >= 1
llmTemperature
number

LLM temperature for response randomness (0-2)

Required range: 0 <= x <= 2
llmModel
enum<string>

Language model tier powering the agent. Usage is billed per minute at the tier's rate: revring-standard $0.03/min, revring-max $0.05/min, revring-ultra $0.065/min. Defaults to revring-standard.

Available options:
revring-standard,
revring-max,
revring-ultra
timezone
string

IANA timezone identifier (e.g., America/New_York)

language
string

Language code (e.g., en, es, fr)

preCallWebhookUrl
string<uri> | null

Webhook URL called before answering (optional)

postCallWebhookUrl
string<uri> | null

Webhook URL called after call ends (optional)

endCallEnabled
boolean

Allow agent to end calls

endCallRulesOverride
string | null

Custom instructions for ending calls

transferEnabled
boolean

Allow agent to transfer calls

transferRoutes
object[] | null

Available transfer destinations

transferDescriptionOverride
string | null

Custom transfer instructions

voicemailEnabled
boolean

Detect voicemail

voicemailAction
enum<string>

Action when voicemail detected

Available options:
hangup,
leave_message
voicemailMessage
string | null

Message to leave on voicemail. Supports {{variables}} like the prompt and first message.

voiceId
string

Voice ID (copy from dashboard Voice Library)

voiceTemperature
number

Voice expressiveness (0 = consistent, 1 = more varied). Default 0.7.

Required range: 0 <= x <= 1
voiceSpeed
number

Speaking rate multiplier (0.5 = half speed, 2.0 = double speed). Default 1.0.

Required range: 0.5 <= x <= 2
voiceVolume
number

Output level in decibels (-20 to 20; 0 = standard). Default 0.

Required range: -20 <= x <= 20
voiceTopP
number

Advanced sampling range (0 to 1). Default 0.7.

Required range: 0 <= x <= 1
runtimeConfig
object | null

Advanced runtime configuration (optional)

flowDefinition
object | null

Conversation flow definition (only used when mode is conversation_flow)

testVariables
object | null

Variables used for test calls initiated from the dashboard

llmReasoningEffort
enum<string>

Controls the reasoning effort of the language model. Higher values produce more thorough but slower responses.

Available options:
low,
medium,
high
disableInterruptions
boolean

When enabled, the agent will not be interrupted by the caller while speaking

interruptionThresholdMs
integer
default:500

Minimum speech duration (ms) before the caller's speech is registered as an interruption. Lower values make the agent easier to interrupt. Range: 100-2000, default 500.

Required range: 100 <= x <= 2000
transferMode
enum<string>

Transfer mode. cold disconnects the AI before connecting to the destination. warm keeps the AI on the line to introduce the caller.

Available options:
cold,
warm
warmTransferConfig
object | null

Configuration for warm transfers (only used when transferMode is warm)

playKeypadTouchToneEnabled
boolean

Enable the keypad input (DTMF) tool, allowing callers to press phone keys during the conversation

playKeypadTouchToneDescriptionOverride
string | null

Custom instructions for the keypad input tool behavior

Maximum string length: 2000
knowledgeBaseRetrievalMode
enum<string>

How the agent queries linked knowledge bases. automatic retrieves context on every turn. query_tool lets the agent decide when to search.

Available options:
automatic,
query_tool
knowledgeBaseChunks
integer

Number of text chunks to retrieve per knowledge base query

Required range: 1 <= x <= 20
knowledgeBaseSimilarityThreshold
number

Minimum similarity score for retrieved chunks (0-1). Higher values return only highly relevant results.

Required range: 0 <= x <= 1

Response

Agent updated

data
object

AI Voice Agent configuration