curl --request GET \
--url https://api.duvo.ai/v2/organizations/{orgId}/agents \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.duvo.ai/v2/organizations/{orgId}/agents"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.duvo.ai/v2/organizations/{orgId}/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.duvo.ai/v2/organizations/{orgId}/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 => [
"Authorization: Bearer <token>"
],
]);
$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.duvo.ai/v2/organizations/{orgId}/agents"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.duvo.ai/v2/organizations/{orgId}/agents")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.duvo.ai/v2/organizations/{orgId}/agents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"agents": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"team_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"team_name": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"last_run_at": "<string>",
"last_run_status": "<string>",
"schedule_enabled": true,
"auto_disabled_at": "<string>",
"auto_disabled_reason": "<string>"
}
],
"total": 123,
"limit": 123,
"offset": 123
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}List Org Agents
List every agent across all teams in an organization, with the team it belongs to, the state of its most recent run and the state of its schedules. Intended for external monitoring: it answers ‘which agents have gone silent’ and ‘which agents were switched off’ without a request per team or per agent. Requires an organization Admin, Executive, or Owner role, and an API key scoped to all teams you can access — a key pinned to a single team is rejected, because this endpoint spans every team in the organization.
curl --request GET \
--url https://api.duvo.ai/v2/organizations/{orgId}/agents \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.duvo.ai/v2/organizations/{orgId}/agents"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.duvo.ai/v2/organizations/{orgId}/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.duvo.ai/v2/organizations/{orgId}/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 => [
"Authorization: Bearer <token>"
],
]);
$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.duvo.ai/v2/organizations/{orgId}/agents"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.duvo.ai/v2/organizations/{orgId}/agents")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.duvo.ai/v2/organizations/{orgId}/agents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"agents": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"team_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"team_name": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"last_run_at": "<string>",
"last_run_status": "<string>",
"schedule_enabled": true,
"auto_disabled_at": "<string>",
"auto_disabled_reason": "<string>"
}
],
"total": 123,
"limit": 123,
"offset": 123
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Authorizations
API key authentication. Get your API key from the Duvo dashboard.
Path Parameters
The organization's unique identifier
Query Parameters
Number of agents per page (1-100, default 20)
1 <= x <= 100Number of agents to skip
0 <= x <= 9007199254740991Filter to agents on this team
If true, only agents with at least one enabled schedule; if false, only agents with none (including agents that are never scheduled)
true, false If true, only agents whose schedule was switched off automatically (e.g. after repeated missing-connection failures); if false, only agents with no auto-disabled schedule
true, false Was this page helpful?