curl --request GET \
--url https://service.abundly.ai/workspaceapi/agents/{agentId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://service.abundly.ai/workspaceapi/agents/{agentId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://service.abundly.ai/workspaceapi/agents/{agentId}', 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://service.abundly.ai/workspaceapi/agents/{agentId}",
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://service.abundly.ai/workspaceapi/agents/{agentId}"
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://service.abundly.ai/workspaceapi/agents/{agentId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://service.abundly.ai/workspaceapi/agents/{agentId}")
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{
"id": "<string>",
"type": "<string>",
"name": "<string>",
"handle": "<string>",
"customerId": "<string>",
"enabled": true,
"access": {
"customer": "<string>",
"link": "<string>",
"users": [
{
"userId": "<string>",
"level": "<string>"
}
]
},
"instructions": {},
"capabilities": [
"<string>"
],
"scheduledTriggers": [
{
"name": "<string>",
"timezone": "<string>",
"cron": "<string>",
"time": "<string>",
"message": "<string>",
"scriptDocumentId": "<string>",
"overlapBehaviour": "<string>",
"missedRunBehaviour": "<string>",
"llmPreference": {
"model": "<string>",
"effort": "<string>"
}
}
],
"toolCredentials": [
{
"type": "<string>",
"fields": [
{
"key": "<string>",
"isSet": true
}
]
}
],
"isEvalClone": true,
"description": "<string>",
"imageUrl": "<string>",
"groupId": "<string>",
"phase": "<string>",
"effectivePhase": "<string>",
"timeZone": "<string>",
"tags": [
"<string>"
],
"criticality": "<string>",
"valueEntries": [
{}
],
"dailyCreditLimit": 123,
"adminOnly": true,
"adminRestriction": "<string>",
"agentDiscoverability": "<string>",
"crossTeamSharing": {},
"llmPreferences": {
"defaultAgentLlm": {
"model": "<string>",
"effort": "<string>"
},
"defaultChatLlm": {
"model": "<string>",
"effort": "<string>"
},
"defaultScheduledTaskLlm": {
"model": "<string>",
"effort": "<string>"
},
"incomingEmailLlm": {
"model": "<string>",
"effort": "<string>"
},
"incomingSlackLlm": {
"model": "<string>",
"effort": "<string>"
},
"incomingMsTeamsLlm": {
"model": "<string>",
"effort": "<string>"
},
"incomingGoogleChatLlm": {
"model": "<string>",
"effort": "<string>"
},
"incomingAgentMessageLlm": {
"model": "<string>",
"effort": "<string>"
},
"incomingChatWidgetLlm": {
"model": "<string>",
"effort": "<string>"
},
"backupModel": {
"model": "<string>",
"effort": "<string>"
}
},
"disabledLlmModels": [
"<string>"
],
"httpApis": [
{
"configId": "<string>",
"credentialBindings": [
{
"authId": "<string>",
"isBound": true
}
]
}
],
"mcpServers": [
{
"id": "<string>",
"name": "<string>",
"url": "<string>",
"status": "<string>",
"isEnabled": true,
"source": "<string>",
"errorMessage": "<string>",
"enabledTools": [
"<string>"
],
"discoveredTools": [
{
"name": "<string>",
"description": "<string>",
"inputSchema": {}
}
],
"lastDiscoveredAt": "<string>",
"oauthClientId": "<string>",
"auth": {
"type": "<string>"
}
}
],
"agentEvals": [
{
"id": "<string>",
"name": "<string>"
}
],
"evalSettings": {},
"mcpServerExposed": {
"enabled": true
},
"httpApiExposed": {
"enabled": true
},
"documentApiExposed": {
"enabled": true
},
"webhooksExposed": {},
"widgetExposed": {},
"allowWorkspaceKeys": true,
"publicSharing": {},
"voice": {},
"voicePhoneNumber": "<string>",
"smsPhoneNumber": "<string>",
"chatStartMode": "<string>",
"chatStartMessage": "<string>",
"diaryEnabled": true,
"messageLogEnabled": true,
"showTokenOptimisationInfo": true,
"dreaming": {},
"notificationSettings": {},
"clonedFromAgentId": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Get an agent's configuration
The agent’s full configuration, including handle, scheduled triggers with their cron expressions, LLM preferences, and tool credentials as metadata with isSet flags rather than values. Returns 403 for a private agent.
curl --request GET \
--url https://service.abundly.ai/workspaceapi/agents/{agentId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://service.abundly.ai/workspaceapi/agents/{agentId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://service.abundly.ai/workspaceapi/agents/{agentId}', 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://service.abundly.ai/workspaceapi/agents/{agentId}",
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://service.abundly.ai/workspaceapi/agents/{agentId}"
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://service.abundly.ai/workspaceapi/agents/{agentId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://service.abundly.ai/workspaceapi/agents/{agentId}")
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{
"id": "<string>",
"type": "<string>",
"name": "<string>",
"handle": "<string>",
"customerId": "<string>",
"enabled": true,
"access": {
"customer": "<string>",
"link": "<string>",
"users": [
{
"userId": "<string>",
"level": "<string>"
}
]
},
"instructions": {},
"capabilities": [
"<string>"
],
"scheduledTriggers": [
{
"name": "<string>",
"timezone": "<string>",
"cron": "<string>",
"time": "<string>",
"message": "<string>",
"scriptDocumentId": "<string>",
"overlapBehaviour": "<string>",
"missedRunBehaviour": "<string>",
"llmPreference": {
"model": "<string>",
"effort": "<string>"
}
}
],
"toolCredentials": [
{
"type": "<string>",
"fields": [
{
"key": "<string>",
"isSet": true
}
]
}
],
"isEvalClone": true,
"description": "<string>",
"imageUrl": "<string>",
"groupId": "<string>",
"phase": "<string>",
"effectivePhase": "<string>",
"timeZone": "<string>",
"tags": [
"<string>"
],
"criticality": "<string>",
"valueEntries": [
{}
],
"dailyCreditLimit": 123,
"adminOnly": true,
"adminRestriction": "<string>",
"agentDiscoverability": "<string>",
"crossTeamSharing": {},
"llmPreferences": {
"defaultAgentLlm": {
"model": "<string>",
"effort": "<string>"
},
"defaultChatLlm": {
"model": "<string>",
"effort": "<string>"
},
"defaultScheduledTaskLlm": {
"model": "<string>",
"effort": "<string>"
},
"incomingEmailLlm": {
"model": "<string>",
"effort": "<string>"
},
"incomingSlackLlm": {
"model": "<string>",
"effort": "<string>"
},
"incomingMsTeamsLlm": {
"model": "<string>",
"effort": "<string>"
},
"incomingGoogleChatLlm": {
"model": "<string>",
"effort": "<string>"
},
"incomingAgentMessageLlm": {
"model": "<string>",
"effort": "<string>"
},
"incomingChatWidgetLlm": {
"model": "<string>",
"effort": "<string>"
},
"backupModel": {
"model": "<string>",
"effort": "<string>"
}
},
"disabledLlmModels": [
"<string>"
],
"httpApis": [
{
"configId": "<string>",
"credentialBindings": [
{
"authId": "<string>",
"isBound": true
}
]
}
],
"mcpServers": [
{
"id": "<string>",
"name": "<string>",
"url": "<string>",
"status": "<string>",
"isEnabled": true,
"source": "<string>",
"errorMessage": "<string>",
"enabledTools": [
"<string>"
],
"discoveredTools": [
{
"name": "<string>",
"description": "<string>",
"inputSchema": {}
}
],
"lastDiscoveredAt": "<string>",
"oauthClientId": "<string>",
"auth": {
"type": "<string>"
}
}
],
"agentEvals": [
{
"id": "<string>",
"name": "<string>"
}
],
"evalSettings": {},
"mcpServerExposed": {
"enabled": true
},
"httpApiExposed": {
"enabled": true
},
"documentApiExposed": {
"enabled": true
},
"webhooksExposed": {},
"widgetExposed": {},
"allowWorkspaceKeys": true,
"publicSharing": {},
"voice": {},
"voicePhoneNumber": "<string>",
"smsPhoneNumber": "<string>",
"chatStartMode": "<string>",
"chatStartMessage": "<string>",
"diaryEnabled": true,
"messageLogEnabled": true,
"showTokenOptimisationInfo": true,
"dreaming": {},
"notificationSettings": {},
"clonedFromAgentId": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Authorizations
Workspace API key (wk_). GET endpoints require the Workspace read API scope, POST endpoints the Workspace write API scope.
Path Parameters
The agent id to inspect. Must belong to the current scope (workspace, or team for team-scoped explorers).
Response
Success. Empty result sets are also 200.
The agent's full configuration. Credential and API key values never appear — toolCredentials reports the type and which fields are set, and MCP auth is referenced by secret id.
The agent's unique address for email, Slack and other channels.
Who may reach the agent in the portal.
Show child attributes
Show child attributes
Standing instructions, keyed by section. Versioning metadata is flattened away here.
Show child attributes
Show child attributes
Mixed array: plain strings, or objects for capabilities that carry settings.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Stored lifecycle phase — only present on agents someone promoted, and kept even if the workspace later switches phases off.
"production" or "sandbox"; absent when the workspace has lifecycle phases switched off, in which case nothing is phase-gated.
IANA name; the default for this agent's scheduled triggers.
Value per workspace value-capture category.
Show child attributes
Show child attributes
Absent means the agent inherits the workspace default.
"none", "team" or "workspace".
Which other agents may contact this one.
Show child attributes
Show child attributes
Model and effort per context; an unset context inherits from the one above it.
Show child attributes
Show child attributes
API Capabilities on this agent. Entries whose config was deleted are dropped.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
See /agents/{agentId}/evals for the full eval shape.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Whether workspace keys may call this agent's exposed APIs.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
ISO 8601 timestamp.
ISO 8601 timestamp.

