List Agents
curl --request GET \
--url https://api.revring.ai/v1/agents \
--header 'x-api-key: <api-key>'import requests
url = "https://api.revring.ai/v1/agents"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.revring.ai/v1/agents', 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",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.revring.ai/v1/agents"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.revring.ai/v1/agents")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.revring.ai/v1/agents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"status": "active",
"promptTemplate": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"messagingConnectionId": "<string>",
"messagingConfig": {
"smsPrompt": "<string>",
"inboundMode": "auto_reply",
"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": {
"position": "bottom-right",
"accentColor": "<string>",
"theme": "light",
"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>",
"firstMessageOutbound": "<string>",
"firstMessageDelayMs": 7500,
"startSpeaker": "agent",
"startSpeakerOutbound": "agent",
"firstMessageDelayMsOutbound": 7500,
"beginAfterUserSilenceMs": 30250,
"firstMessageMode": "static",
"turnTimeoutSeconds": 123,
"silenceEndCallTimeoutSeconds": 123,
"maxConversationDurationSeconds": 123,
"llmTemperature": 1,
"llmModel": "revring-standard",
"timezone": "<string>",
"language": "<string>",
"preCallWebhookUrl": "<string>",
"postCallWebhookUrl": "<string>",
"postCallWebhookFormat": "revring",
"webhookEvents": [
"call.started"
],
"postCallExtraction": {
"fields": [
{
"name": "callback_requested",
"description": "Did the caller ask to be called back?",
"type": "boolean"
},
{
"name": "preferred_day",
"description": "Day of the week the caller prefers for the callback",
"type": "enum",
"values": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
]
},
{
"name": "budget",
"description": "Budget the caller mentioned, in dollars",
"type": "number"
}
]
},
"postCallEvaluation": {
"criteria": [
{
"name": "appointment_confirmed",
"description": "The caller confirmed an appointment date and time"
},
{
"name": "callback_requested",
"description": "The caller asked to be called back"
}
]
},
"storageMode": "full",
"piiCategories": [
"person_name"
],
"publishMode": "auto",
"publishedRevision": 123,
"hasUnpublishedChanges": true,
"endCallEnabled": true,
"endCallRulesOverride": "<string>",
"transferEnabled": true,
"transferRoutes": [
{
"to_number": "<string>",
"condition": "<string>",
"extension": "<string>",
"dialTimeoutSeconds": 155,
"waitForHumanSeconds": 307
}
],
"transferDescriptionOverride": "<string>",
"voicemailEnabled": true,
"voicemailAction": "hangup",
"voicemailMessage": "<string>",
"voiceId": "<string>",
"fallbackVoiceId": "<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",
"environment": "<string>",
"trafficSplit": [
{
"environment": "<string>",
"weight": 50
}
]
}
],
"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": {},
"httpMethod": "GET",
"headers": [
{
"key": "<string>",
"value": "<string>"
}
],
"queryParams": [
{
"key": "<string>",
"value": "<string>"
}
],
"sendRawRequestBody": true,
"responseMode": "sync"
}
],
"mode": "single_prompt",
"flowDefinition": {},
"testVariables": {},
"llmReasoningEffort": "low",
"disableInterruptions": true,
"interruptionThresholdMs": 500,
"interruptionIgnoreWords": [
"<string>"
],
"sttKeyterms": [
"<string>"
],
"noiseCancellation": "on",
"minInterruptionWords": 1,
"transferMode": "cold",
"warmTransferConfig": {
"holdMessage": "<string>",
"holdMusicEnabled": true,
"summaryPrompt": "<string>",
"introMessage": "<string>",
"continueRecordingAfterTransfer": true,
"callerIdMode": "agent",
"dialTimeoutSeconds": 155,
"waitForHumanSeconds": 307
},
"playKeypadTouchToneEnabled": true,
"playKeypadTouchToneDescriptionOverride": "<string>",
"knowledgeBaseRetrievalMode": "automatic",
"knowledgeBaseChunks": 10,
"knowledgeBaseSimilarityThreshold": 0.5,
"languagePresets": {},
"doNotCallDetection": false
}
],
"page": 2,
"pageSize": 50,
"total": 123,
"hasNextPage": true
}{
"error": "invalid_body",
"details": {}
}{
"error": "unauthorized"
}{
"error": "billing_inactive"
}Agents
List Agents
List agents with filtering, sorting, and pagination. Default page size is 25 (maximum 100). To hydrate a known set of agents in one call, use POST /agents/batch-get instead.
GET
/
agents
List Agents
curl --request GET \
--url https://api.revring.ai/v1/agents \
--header 'x-api-key: <api-key>'import requests
url = "https://api.revring.ai/v1/agents"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.revring.ai/v1/agents', 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",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.revring.ai/v1/agents"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.revring.ai/v1/agents")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.revring.ai/v1/agents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"status": "active",
"promptTemplate": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"messagingConnectionId": "<string>",
"messagingConfig": {
"smsPrompt": "<string>",
"inboundMode": "auto_reply",
"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": {
"position": "bottom-right",
"accentColor": "<string>",
"theme": "light",
"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>",
"firstMessageOutbound": "<string>",
"firstMessageDelayMs": 7500,
"startSpeaker": "agent",
"startSpeakerOutbound": "agent",
"firstMessageDelayMsOutbound": 7500,
"beginAfterUserSilenceMs": 30250,
"firstMessageMode": "static",
"turnTimeoutSeconds": 123,
"silenceEndCallTimeoutSeconds": 123,
"maxConversationDurationSeconds": 123,
"llmTemperature": 1,
"llmModel": "revring-standard",
"timezone": "<string>",
"language": "<string>",
"preCallWebhookUrl": "<string>",
"postCallWebhookUrl": "<string>",
"postCallWebhookFormat": "revring",
"webhookEvents": [
"call.started"
],
"postCallExtraction": {
"fields": [
{
"name": "callback_requested",
"description": "Did the caller ask to be called back?",
"type": "boolean"
},
{
"name": "preferred_day",
"description": "Day of the week the caller prefers for the callback",
"type": "enum",
"values": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
]
},
{
"name": "budget",
"description": "Budget the caller mentioned, in dollars",
"type": "number"
}
]
},
"postCallEvaluation": {
"criteria": [
{
"name": "appointment_confirmed",
"description": "The caller confirmed an appointment date and time"
},
{
"name": "callback_requested",
"description": "The caller asked to be called back"
}
]
},
"storageMode": "full",
"piiCategories": [
"person_name"
],
"publishMode": "auto",
"publishedRevision": 123,
"hasUnpublishedChanges": true,
"endCallEnabled": true,
"endCallRulesOverride": "<string>",
"transferEnabled": true,
"transferRoutes": [
{
"to_number": "<string>",
"condition": "<string>",
"extension": "<string>",
"dialTimeoutSeconds": 155,
"waitForHumanSeconds": 307
}
],
"transferDescriptionOverride": "<string>",
"voicemailEnabled": true,
"voicemailAction": "hangup",
"voicemailMessage": "<string>",
"voiceId": "<string>",
"fallbackVoiceId": "<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",
"environment": "<string>",
"trafficSplit": [
{
"environment": "<string>",
"weight": 50
}
]
}
],
"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": {},
"httpMethod": "GET",
"headers": [
{
"key": "<string>",
"value": "<string>"
}
],
"queryParams": [
{
"key": "<string>",
"value": "<string>"
}
],
"sendRawRequestBody": true,
"responseMode": "sync"
}
],
"mode": "single_prompt",
"flowDefinition": {},
"testVariables": {},
"llmReasoningEffort": "low",
"disableInterruptions": true,
"interruptionThresholdMs": 500,
"interruptionIgnoreWords": [
"<string>"
],
"sttKeyterms": [
"<string>"
],
"noiseCancellation": "on",
"minInterruptionWords": 1,
"transferMode": "cold",
"warmTransferConfig": {
"holdMessage": "<string>",
"holdMusicEnabled": true,
"summaryPrompt": "<string>",
"introMessage": "<string>",
"continueRecordingAfterTransfer": true,
"callerIdMode": "agent",
"dialTimeoutSeconds": 155,
"waitForHumanSeconds": 307
},
"playKeypadTouchToneEnabled": true,
"playKeypadTouchToneDescriptionOverride": "<string>",
"knowledgeBaseRetrievalMode": "automatic",
"knowledgeBaseChunks": 10,
"knowledgeBaseSimilarityThreshold": 0.5,
"languagePresets": {},
"doNotCallDetection": false
}
],
"page": 2,
"pageSize": 50,
"total": 123,
"hasNextPage": true
}{
"error": "invalid_body",
"details": {}
}{
"error": "unauthorized"
}{
"error": "billing_inactive"
}Authorizations
API key for authentication. Generate API keys from the RevRing dashboard.
Query Parameters
Page number
Required range:
x >= 1Items per page
Required range:
1 <= x <= 100Sort field
Available options:
createdAt, updatedAt, name Sort direction
Available options:
asc, desc Filter by status
Available options:
active, disabled Filter by folder. Pass a folder ID to only return agents in that folder, or none to only return agents not in any folder. Omit to return agents from all folders.
Search agents by name (case-insensitive substring match)
Maximum string length:
128Return a compact representation, omitting prompt template, flow definition, variables, runtime config, custom tools, and knowledge bases