Skip to main content
GET
/
v1
/
agents
/
{agent_id}
Get Agent
curl --request GET \
  --url https://api.xpander.ai/v1/agents/{agent_id} \
  --header 'x-api-key: <api-key>'
{
  "name": "<string>",
  "organization_id": "<string>",
  "webhook_url": "<string>",
  "id": "<string>",
  "unique_name": "<string>",
  "origin_template": "<string>",
  "delegation_end_strategy": "return-to-start",
  "environment_id": "<string>",
  "sub_agents_continuous_thread": true,
  "deployment_type": "serverless",
  "created_by_prompt": "<string>",
  "prompts": [],
  "is_latest": false,
  "has_pending_changes": false,
  "deep_planning": false,
  "enforce_deep_planning": false,
  "connectivity_details": {},
  "framework": "agno",
  "description": "",
  "tools": [],
  "icon": "🚀",
  "avatar": "male-avatar",
  "source_nodes": [],
  "attached_tools": [],
  "access_scope": "personal",
  "instructions": {
    "role": [],
    "goal": [],
    "general": ""
  },
  "oas": {},
  "graph": [],
  "llm_settings": [],
  "status": "ACTIVE",
  "knowledge_bases": [],
  "version": 1,
  "created_by": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "type": "manager",
  "delegation_type": "router",
  "delegation_memory_strategy": "summarization",
  "is_ai_employee": false,
  "using_nemo": false,
  "deletable": true,
  "model_provider": "anthropic",
  "model_name": "claude-sonnet-4-6",
  "llm_reasoning_effort": "medium",
  "llm_api_base": "<string>",
  "output_format": "markdown",
  "voice_id": "<string>",
  "output_schema": {},
  "llm_credentials_key": "<string>",
  "llm_credentials_key_type": "xpander",
  "llm_credentials": {
    "name": "<string>",
    "value": "<string>",
    "description": "<string>"
  },
  "llm_extra_headers": {},
  "expected_output": "",
  "agno_settings": {
    "session_storage": true,
    "learning": false,
    "agent_memories": false,
    "agentic_culture": false,
    "user_memories": false,
    "agentic_memory": false,
    "session_summaries": false,
    "num_history_runs": 10,
    "max_tool_calls_from_history": 0,
    "tool_call_limit": 0,
    "coordinate_mode": true,
    "pii_detection_enabled": false,
    "pii_detection_mask": true,
    "prompt_injection_detection_enabled": false,
    "openai_moderation_enabled": false,
    "reasoning_tools_enabled": false,
    "tool_calls_compression": {
      "enabled": false,
      "instructions": "",
      "threshold": 3
    },
    "max_plan_retries": 15,
    "plan_retry_strategy": "tiered",
    "memory_strategy": "disabled"
  },
  "on_prem_event_streaming": true,
  "prompts_caching_enabled": false,
  "is_supervised": false,
  "orchestration_nodes": [],
  "notification_settings": {},
  "task_level_strategies": {
    "retry_strategy": {
      "enabled": false,
      "max_retries": 3
    },
    "iterative_strategy": {
      "enabled": false,
      "max_iterations": 3,
      "end_condition": {
        "type": "regex",
        "term": "<string>",
        "group_id": "<string>",
        "path": "<string>",
        "value": null
      }
    },
    "stop_strategy": {
      "enabled": false,
      "stop_on_failure": true,
      "stop_on_condition": {
        "type": "regex",
        "term": "<string>",
        "group_id": "<string>",
        "path": "<string>",
        "value": null
      }
    },
    "max_runs_per_day": 123,
    "agentic_context_enabled": false,
    "duplication_prevention": {
      "selectors": [
        "<string>"
      ],
      "enabled": false,
      "ttl_minutes": 10
    }
  },
  "use_oidc_pre_auth": false,
  "pre_auth_audiences": [],
  "use_oidc_pre_auth_token_for_llm": false,
  "oidc_pre_auth_token_llm_audience": "<string>",
  "oidc_pre_auth_token_mcp_audience": "<string>"
}
Returns the complete agent object including its tools with full schemas, the tool graph with customized input/output schemas, structured output schema, webhook URL, LLM settings, and all configuration details. This is the single source of truth for an agent’s current state.

Path Parameters

agent_id
string
required
Unique identifier of the agent (UUID format)

Response

Identity & Status

id
string
Agent UUID
unique_name
string
Auto-generated URL-safe slug (e.g., emerald-emu). Assigned on creation.
name
string
Display name
description
string
Auto-generated on deploy from instructions. Describes what the agent does.
icon
string
Emoji icon (e.g., 🚀)
avatar
string
Avatar identifier (e.g., male-avatar)
status
string
ACTIVE (deployed) or INACTIVE (not yet deployed)
version
integer
Increments on each deploy
deletable
boolean
Whether the agent can be deleted via the API
organization_id
string
Owning organization UUID
created_by
string | null
UUID of the user who created the agent
created_at
string
ISO 8601 timestamp

Instructions

instructions
object
System instructions that define the agent’s behavior. Divided into three sections.
expected_output
string
Describes the desired output format in natural language (e.g., "Short answer, formatted in rich markdown text.").

Model Configuration

model_provider
string
LLM provider: openai, anthropic, bedrock, gemini, etc.
model_name
string
Model identifier (e.g., gpt-5.2, claude-sonnet-4-5-20250929)
llm_reasoning_effort
string
Reasoning effort level: low, medium, or high
llm_api_base
string | null
Custom LLM API base URL. null for default provider endpoints.
llm_settings
array
Model overrides. Each entry can set a different provider/model for specific pipeline stages.

Structured Output

output_format
string
Response format: text, json, or markdown
output_schema
object | null
When output_format is json, this is a full JSON Schema that the agent’s output must conform to. Includes $schema, type, required, properties with types, descriptions, validations, and nested objects/arrays.

Tools

tools
array
The fully-resolved tool definitions available to this agent. Each tool includes its operation ID, HTTP method, path, and complete request schemas (body_schema and parameters). These are the actual tool-calling interfaces the LLM sees at runtime.

Tool Graph

graph
array
The agent’s tool graph — defines how tools are wired together, with optional custom schemas, descriptions, and routing targets. Graph items can override the default tool schemas to lock parameters, customize descriptions, or define expected output formats.

Attached Tools (Toolkit References)

attached_tools
array
References to which toolkits and specific operations are attached to this agent. This maps toolkit UUIDs to the operation IDs selected from each toolkit.

Webhook & Entry Points

webhook_url
string
Auto-generated webhook endpoint for this agent. Accepts POST requests to trigger agent tasks. Includes agent_id and asynchronous query parameters.
See the Webhook documentation for payload format, authentication, and async/sync modes.
source_nodes
array
Entry points through which this agent can be invoked.

Agent Framework Settings

framework
string
Agent framework (e.g., agno)
type
string
Agent type: manager, regular, a2a, curl, or orchestration. Agents with type orchestration are Workflows — visual multi-step pipelines.
delegation_type
string
Delegation strategy: router, sequential, etc.
delegation_end_strategy
string
What happens when delegation completes: return-to-start, etc.
delegation_memory_strategy
string
How delegated context is managed: summarization, full, etc.
deployment_type
string
Infrastructure: serverless or container
agno_settings
object
Framework-level configuration for the Agno runtime.

Knowledge Bases

knowledge_bases
array
Array of knowledge base IDs attached to this agent. Empty [] if none attached.
Knowledge bases and tools are attached to agents through the xpander.ai dashboard or Python SDK — not via the REST API PATCH endpoint.

Other Fields

access_scope
string
personal or organizational
is_latest
boolean
Whether this is the latest version of the agent
has_pending_changes
boolean
Whether there are undeployed changes
deep_planning
boolean
Deep planning mode enabled
sub_agents_continuous_thread
boolean
Sub-agents share the conversation thread
on_prem_event_streaming
boolean
Server-sent events for on-prem deployments
prompts_caching_enabled
boolean
LLM prompt caching
notification_settings
object
Webhook notifications on task success/error
task_level_strategies
object
Task retry, iteration, and rate-limit strategies

Example Request

curl -s -X GET "https://api.xpander.ai/v1/agents/<agent-id>" \
  -H "x-api-key: <your-api-key>"

Example Response

The response is the complete agent configuration. Below is a condensed example showing the key structures — a real response includes full tool schemas and may be 1000+ lines.
{
  "id": "<agent-id>",
  "unique_name": "emerald-emu",
  "name": "Product Specialist",
  "description": "Processes queries to provide comprehensive product information...",
  "icon": "🚀",
  "avatar": "male-avatar",
  "status": "ACTIVE",
  "version": 78,
  "organization_id": "<org-id>",
  "created_by": "<user-id>",
  "created_at": "2026-02-05T18:54:51.388334Z",
  "deployment_type": "serverless",
  "framework": "agno",
  "type": "manager",
  "delegation_type": "router",
  "deletable": true,

  "instructions": {
    "role": [
      "You are a product specialist assistant",
      "Search the knowledge base before answering product questions"
    ],
    "goal": [
      "Help customers understand product features",
      "Provide accurate, sourced answers"
    ],
    "general": "You are a support agent. Use tools to answer questions accurately."
  },
  "expected_output": "Short answer, formatted in rich markdown text.",

  "model_provider": "anthropic",
  "model_name": "claude-sonnet-4-5-20250929",
  "llm_reasoning_effort": "medium",
  "llm_api_base": null,
  "llm_settings": [
    {
      "type": "before",
      "provider": "openai",
      "model": "gpt-5.2",
      "temperature": 0.0
    }
  ],

  "output_format": "json",
  "output_schema": {
    "type": "object",
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "required": ["name"],
    "properties": {
      "name": {
        "type": "string",
        "minLength": 1,
        "description": "Company name."
      },
      "industry": {
        "type": "string",
        "description": "Industry sector."
      },
      "website": {
        "type": "string",
        "format": "uri"
      }
    },
    "additionalProperties": false
  },

  "tools": [
    {
      "id": "TavilySearchServiceExecuteQueryAndReturnResults",
      "name": "Executes a search query using Tavily AI...",
      "raw_description": "Executes a search query using Tavily AI...",
      "function_description": "Executes a search query using Tavily AI...",
      "method": "post",
      "path": "/operation/TavilySearchServiceExecuteQueryAndReturnResults/search",
      "path_params": {},
      "query_params": {},
      "body_schema": {
        "query": {
          "type": "string",
          "description": "The search query to execute.",
          "example": "who is Leo Messi?"
        },
        "max_results": {
          "type": "integer",
          "minimum": 0,
          "maximum": 20,
          "default": 5
        },
        "search_depth": {
          "type": "string",
          "enum": ["basic", "advanced"],
          "default": "basic"
        },
        "topic": {
          "type": "string",
          "enum": ["general", "news"],
          "default": "general"
        }
      },
      "parameters": {
        "type": "object",
        "properties": {
          "body_params": {
            "type": "object",
            "properties": {
              "query": { "type": "string", "description": "The search query." }
            },
            "required": ["query"]
          },
          "path_params": { "type": "object", "properties": {} },
          "query_params": { "type": "object", "properties": {} },
          "headers": {
            "type": "object",
            "properties": {
              "toolcallreasoningtitle": {
                "type": "string",
                "description": "Action title (max 5 words)"
              },
              "toolcallreasoningdescription": {
                "type": "string",
                "description": "One-sentence summary (max 100 chars)"
              }
            }
          }
        },
        "required": ["body_params", "path_params", "query_params", "headers"]
      }
    },
    {
      "id": "XpanderEmailServiceSendEmailWithHtmlOrTextContent",
      "name": "Sends an email with HTML body content...",
      "method": "post",
      "path": "/operation/XpanderEmailServiceSendEmailWithHtmlOrTextContent/messaging/send_email",
      "body_schema": {
        "to": { "type": "array", "items": { "type": "string" } },
        "subject": { "type": "string" },
        "body_html": { "type": "string" }
      },
      "parameters": { "..." : "..." }
    }
  ],

  "graph": [
    {
      "id": "<graph-node-id>",
      "item_id": "TavilySearchServiceExecuteQueryAndReturnResults",
      "name": "Execute Search Query and Retrieve Results",
      "type": "tool",
      "sub_type": null,
      "targets": ["<self-id>"],
      "is_first": false,
      "llm_settings": [],
      "settings": {
        "description": "Search the web for relevant results...",
        "instructions": null,
        "use_cache": true,
        "schemas": {
          "input": {
            "type": "object",
            "required": ["query_params", "path_params", "body_params"],
            "properties": {
              "body_params": {
                "type": "object",
                "required": ["query"],
                "properties": {
                  "query": { "type": "string", "description": "The search query." }
                }
              }
            }
          },
          "output": {
            "type": "object",
            "properties": {
              "query": { "type": "string" },
              "results": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "url": { "type": "string" },
                    "title": { "type": "string" },
                    "content": { "type": "string" },
                    "score": { "type": "number" }
                  }
                }
              }
            }
          }
        }
      }
    },
    {
      "id": "<graph-node-id>",
      "item_id": "MintlifySearchEngineSearchDocsBySubdomainAndQuery",
      "name": "Search Mintlify Documentation by Subdomain and Query",
      "type": "tool",
      "targets": ["<self-id>"],
      "settings": {
        "description": "Search in docs.xpander.ai for documentation",
        "use_cache": true,
        "schemas": {
          "input": {
            "type": "object",
            "properties": {
              "body_params": {
                "properties": {
                  "subdomain": {
                    "type": "string",
                    "permanentValue": "docs.xpander.ai"
                  },
                  "query": { "type": "string" }
                }
              }
            }
          }
        }
      }
    },
    {
      "id": "<graph-node-id>",
      "item_id": "XpanderEmailServiceSendEmailWithHtmlOrTextContent",
      "name": "Send Email",
      "type": "tool",
      "targets": [],
      "settings": null
    }
  ],

  "attached_tools": [
    {
      "id": "<toolkit-id-1>",
      "operation_ids": ["68259fd3ff1266b1d6022eef"]
    },
    {
      "id": "<toolkit-id-2>",
      "operation_ids": ["6910a209b1c2df0f90058ca8"]
    },
    {
      "id": "<toolkit-id-3>",
      "operation_ids": [
        "68230439d76e61ed7e92e4c3",
        "68230439d76e61ed7e92e4c2"
      ]
    }
  ],

  "webhook_url": "https://webhook.xpander.ai/?agent_id=<agent-id>&asynchronous=false",

  "source_nodes": [
    { "id": "<node-id>", "type": "assistant", "targets": null, "metadata": {} },
    { "id": "<node-id>", "type": "sdk", "targets": null, "metadata": {} },
    { "id": "<node-id>", "type": "webhook", "targets": null, "metadata": {} }
  ],

  "knowledge_bases": [],

  "agno_settings": {
    "session_storage": true,
    "agent_memories": false,
    "user_memories": false,
    "session_summaries": false,
    "num_history_runs": 20,
    "tool_call_limit": 0,
    "coordinate_mode": true,
    "pii_detection_enabled": false,
    "prompt_injection_detection_enabled": false,
    "openai_moderation_enabled": false,
    "reasoning_tools_enabled": false,
    "tool_calls_compression": {
      "enabled": false,
      "threshold": 3,
      "instructions": ""
    }
  },

  "access_scope": "organizational",
  "is_latest": true,
  "has_pending_changes": false,
  "deep_planning": false,
  "sub_agents_continuous_thread": true,
  "on_prem_event_streaming": true,
  "notification_settings": { "on_success": {}, "on_error": {} },
  "task_level_strategies": {
    "retry_strategy": null,
    "iterative_strategy": null,
    "stop_strategy": null,
    "max_runs_per_day": null
  }
}

Common Use Cases

Quick Status Check

curl -s -X GET "https://api.xpander.ai/v1/agents/<agent-id>" \
  -H "x-api-key: <your-api-key>" | \
  jq '{name, status, model: .model_name, provider: .model_provider, version, tools: (.tools | length)}'
{
  "name": "Product Specialist",
  "status": "ACTIVE",
  "model": "claude-sonnet-4-5-20250929",
  "provider": "anthropic",
  "version": 78,
  "tools": 4
}

List All Tool IDs and Paths

curl -s -X GET "https://api.xpander.ai/v1/agents/<agent-id>" \
  -H "x-api-key: <your-api-key>" | \
  jq '.tools[] | {id, method, path}'
{"id": "TavilySearchServiceExecuteQueryAndReturnResults", "method": "post", "path": "/operation/.../search"}
{"id": "XpanderEmailServiceSendEmailWithHtmlOrTextContent", "method": "post", "path": "/operation/.../send_email"}
{"id": "MintlifySearchEngineSearchDocsBySubdomainAndQuery", "method": "post", "path": "/operation/.../mintlify_search"}
{"id": "TavilyDataExtractionExtractContentFromUrls", "method": "post", "path": "/operation/.../extract"}

Extract the Output Schema

curl -s -X GET "https://api.xpander.ai/v1/agents/<agent-id>" \
  -H "x-api-key: <your-api-key>" | \
  jq '.output_schema'

Get the Webhook URL

curl -s -X GET "https://api.xpander.ai/v1/agents/<agent-id>" \
  -H "x-api-key: <your-api-key>" | \
  jq '.webhook_url'
"https://webhook.xpander.ai/?agent_id=<agent-id>&asynchronous=false"
Use the webhook_url to trigger agent tasks from external systems without the SDK. See the Webhook documentation for payload format, authentication, and how to switch between sync and async modes.

Inspect Graph Wiring

See how tools are connected and which have custom schemas:
curl -s -X GET "https://api.xpander.ai/v1/agents/<agent-id>" \
  -H "x-api-key: <your-api-key>" | \
  jq '.graph[] | {name, type, item_id, targets, has_custom_schema: (.settings.schemas != null)}'

Extract Tool Body Schema for a Specific Tool

curl -s -X GET "https://api.xpander.ai/v1/agents/<agent-id>" \
  -H "x-api-key: <your-api-key>" | \
  jq '.tools[] | select(.id == "TavilySearchServiceExecuteQueryAndReturnResults") | .body_schema'

Check Attached Toolkit References

curl -s -X GET "https://api.xpander.ai/v1/agents/<agent-id>" \
  -H "x-api-key: <your-api-key>" | \
  jq '.attached_tools'
[
  { "id": "<toolkit-id>", "operation_ids": ["68259fd3ff1266b1d6022eef"] },
  { "id": "<toolkit-id>", "operation_ids": ["6910a209b1c2df0f90058ca8"] },
  { "id": "<toolkit-id>", "operation_ids": ["68230439d76e61ed7e92e4c3", "68230439d76e61ed7e92e4c2"] }
]
attached_tools maps toolkit UUIDs → operation IDs. To manage which tools are attached, use the xpander.ai dashboard or the Python SDK. The REST API PATCH endpoint does not support modifying attached_tools.

Authorizations

x-api-key
string
header
required

API Key for authentication

Path Parameters

agent_id
string
required

Response

Successful Response

name
string
required
organization_id
string
required
webhook_url
string
required
id
string | null
unique_name
string | null
origin_template
string | null
delegation_end_strategy
enum<string> | null
default:return-to-start

Enumeration of the agent delegation end strategies.

Attributes: ReturnToStart: when last agent is finished and about to announce "finish" it will summarize and return to the first agent. FinishWithLast: finish at the last agent.

Available options:
return-to-start,
finish-with-last
environment_id
string | null
sub_agents_continuous_thread
boolean | null
default:true
deployment_type
enum<string> | null
default:serverless
Available options:
serverless,
container
created_by_prompt
string | null
prompts
string[] | null
is_latest
boolean | null
default:false
has_pending_changes
boolean | null
default:false
deep_planning
boolean | null
default:false
enforce_deep_planning
boolean | null
default:false
connectivity_details
AIAgentConnectivityDetailsA2A · object
framework
string | null
default:agno
description
string | null
default:""
tools
any[] | null
icon
string | null
default:🚀
avatar
string | null
default:male-avatar
source_nodes
AIAgentSourceNode · object[] | null
attached_tools
Connector · object[] | null
access_scope
enum<string> | null
default:personal
Available options:
personal,
organizational
instructions
AIAgentInstructions · object
oas
Oas · object
graph
AIAgentGraphItem · object[] | null
llm_settings
AIAgentGraphItemLLMSettings · object[] | null
status
enum<string> | null
default:ACTIVE

Enumeration of possible agent statuses.

Attributes: DRAFT: Agent is in a draft state. ACTIVE: Agent is active and operational. INACTIVE: Agent is inactive and not operational.

Available options:
DRAFT,
ACTIVE,
INACTIVE
knowledge_bases
AgentKnowledgeBase · object[] | null
version
integer | null
default:1
created_by
string | null
created_at
string<date-time> | null
type
enum<string> | null

Enumeration of the agent types.

Attributes: Manager: marks the agent as a Managing agent. Regular: marks the agent as a regular agent. A2A: marks the agent as an external agent used via A2A protocol. Curl: marks the agent as an external agent used via a CURL. Orchestration: marks the agent as an Orchestration object.

Available options:
manager,
regular,
a2a,
curl,
orchestration
delegation_type
enum<string> | null
default:router

Enumeration of the agent delegation types.

Attributes: Router: Marks the agent as a router agent - xpanderAI's LLM will decide which sub-agent to trigger. Sequence: Marks the agent as a sequence agent - sub-agents will delegate to other sub-agents.

Available options:
router,
sequence
delegation_memory_strategy
enum<string> | null
default:summarization

Enumeration of the agent delegation memory strategies.

Attributes: Full: The memory object will be passed completely between agents. Summarization: Between each sub-agent delegation, a summarization will occur, and a new thread will be created for each agent. OriginalInput: the sub agent will get the initial task with a fresh memory thread

Available options:
full,
summarization,
original-input
is_ai_employee
boolean | null
default:false
using_nemo
boolean | null
default:false
deletable
boolean | null
default:true
model_provider
enum<string> | null
default:anthropic
Available options:
openai,
nim,
amazon_bedrock,
azure_ai_foundary,
huggingFace,
friendlyAI,
anthropic,
gemini,
fireworks,
google_ai_studio,
helicone,
bytedance,
tzafon_lightcone,
open_router,
nebius,
cloudflare_ai_gw
model_name
string | null
default:claude-sonnet-4-6
llm_reasoning_effort
enum<string> | null
default:medium
Available options:
low,
medium,
high,
xhigh
llm_api_base
string | null
output_format
enum<string> | null
default:markdown
Available options:
text,
markdown,
json,
voice
voice_id
string | null
output_schema
Output Schema · object
llm_credentials_key
string | null
llm_credentials_key_type
enum<string> | null
default:xpander
Available options:
xpander,
custom
llm_credentials
LLMCredentials · object
llm_extra_headers
Llm Extra Headers · object
expected_output
string | null
default:""
agno_settings
AgnoSettings · object
on_prem_event_streaming
boolean | null
default:true
prompts_caching_enabled
boolean | null
default:false
is_supervised
boolean | null
default:false
orchestration_nodes
OrchestrationNode · object[] | null
notification_settings
NotificationSettings · object

Configuration for event-based notifications.

Attributes: on_success: Notifications to send when an operation succeeds. Maps notification types to a list of notification configurations. on_error: Notifications to send when an operation fails. Maps notification types to a list of notification configurations.

task_level_strategies
TaskLevelStrategies · object

Configuration object for task-level execution strategies.

This model groups optional strategy configurations that control how a task is executed and managed over time, including retries, iterative execution, stopping conditions, and daily run limits.

Attributes: retry_strategy: Optional retry policy configuration that defines how the task should behave when execution fails (e.g., max attempts, backoff rules).

iterative_strategy:
Optional iterative execution configuration for tasks that may run in
repeated cycles/steps until completion or a stop condition is met.

stop_strategy:
Optional stopping policy configuration that defines when the task
should stop running (e.g., timeout, max iterations, success criteria).

max_runs_per_day:
Optional limit on how many times the task is allowed to run within a
24-hour period. If not set, no explicit daily limit is enforced.

agentic_context_enabled:
if agentic memory is enabled and accesible to the executor.
use_oidc_pre_auth
boolean | null
default:false
pre_auth_audiences
string[] | null
use_oidc_pre_auth_token_for_llm
boolean | null
default:false
oidc_pre_auth_token_llm_audience
string | null
oidc_pre_auth_token_mcp_audience
string | null