> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xpander.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List Agents (Full Details)

> Retrieve a paginated list of AI agents in the simplified view (tools as one flat list, no low-level graph/oas).

Retrieve a paginated list of AI agents. Each item is the **simplified agent view** — core configuration plus a flat `tools` array (see [Get Agent](/api-reference/v1/agents/get-agent) for the per-item field shape, including the `AgentTool` object). Low-level `graph`, `attached_tools`, and `oas` are not included; manage tools via the [Tools API](/api-reference/v1/tools/list-tools).

## Query Parameters

<ParamField query="page" type="integer" default={1}>
  Page number (starting from 1)
</ParamField>

<ParamField query="per_page" type="integer" default={20}>
  Items per page (maximum 50)
</ParamField>

## Response

Returns a paginated list of agents with complete details:

<ResponseField name="items" type="array">
  Array of complete agent objects

  <Expandable title="Agent Object">
    <ResponseField name="id" type="string">
      Unique identifier for the agent (UUID format)
    </ResponseField>

    <ResponseField name="unique_name" type="string">
      URL-safe unique name for the agent
    </ResponseField>

    <ResponseField name="name" type="string">
      Display name of the agent
    </ResponseField>

    <ResponseField name="description" type="string">
      Detailed description of the agent's purpose and capabilities
    </ResponseField>

    <ResponseField name="icon" type="string">
      Emoji icon representing the agent
    </ResponseField>

    <ResponseField name="status" type="string">
      Current deployment status: ACTIVE, INACTIVE
    </ResponseField>

    <ResponseField name="organization_id" type="string">
      Organization UUID this agent belongs to
    </ResponseField>

    <ResponseField name="deployment_type" type="string">
      Deployment method: serverless, container, or null
    </ResponseField>

    <ResponseField name="framework" type="string">
      Agent framework used (e.g., agno)
    </ResponseField>

    <ResponseField name="type" type="string">
      Agent type: `manager`, `regular`, `a2a`, `curl`, or `orchestration`
    </ResponseField>

    <ResponseField name="created_at" type="string">
      ISO timestamp of when the agent was created
    </ResponseField>

    <ResponseField name="created_by" type="string | null">
      UUID of the user who created the agent
    </ResponseField>

    <ResponseField name="created_by_details" type="object | null">
      Resolved creator details, one per agent item — no extra request needed. `null` when `created_by` is empty or the user cannot be resolved — null-check before reading sub-fields.

      <Expandable title="Created By Details">
        <ResponseField name="id" type="string">
          User UUID
        </ResponseField>

        <ResponseField name="name" type="string">
          Display name — first + last name. Falls back to email, then id, when the name is missing. Not guaranteed to be a real first/last name.
        </ResponseField>

        <ResponseField name="email" type="string">
          User email
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="instructions" type="object">
      Complete system instructions configuration with role, goal, and general fields
    </ResponseField>

    <ResponseField name="model_provider" type="string">
      LLM provider: openai, anthropic, etc.
    </ResponseField>

    <ResponseField name="model_name" type="string">
      Specific model version (e.g., gpt-4o, gpt-4.1)
    </ResponseField>

    <ResponseField name="tools" type="array">
      Array of tool configurations attached to this agent
    </ResponseField>

    <ResponseField name="knowledge_bases" type="array">
      Array of knowledge base IDs attached to this agent
    </ResponseField>

    <ResponseField name="graph" type="array">
      Visual graph representation of agent's tool and MCP connections
    </ResponseField>

    <ResponseField name="access_scope" type="string">
      Access control scope: organizational, team, or private
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="total" type="integer">
  Total number of agents across all pages
</ResponseField>

<ResponseField name="page" type="integer">
  Current page number
</ResponseField>

<ResponseField name="per_page" type="integer">
  Number of items per page
</ResponseField>

<ResponseField name="total_pages" type="integer">
  Total number of pages available
</ResponseField>

## Example Request

```bash theme={"dark"}
curl -X GET -H "x-api-key: <your-api-key>" \
  "https://api.xpander.ai/v1/agents/full?page=1&per_page=2"
```

## Example Response

```json theme={"dark"}
{
  "items": [
    {
      "id": "<agent-id>",
      "unique_name": "product-specialist",
      "name": "Product Specialist",
      "description": "Processes queries to provide comprehensive product information",
      "icon": "🚀",
      "status": "ACTIVE",
      "organization_id": "<org-id>",
      "deployment_type": "serverless",
      "framework": "agno",
      "type": "manager",
      "created_at": "2026-02-05T18:35:04.724091Z",
      "created_by": "<user-id>",
      "created_by_details": {
        "id": "<user-id>",
        "name": "Jane Doe",
        "email": "jane@acme.com"
      },
      "model_provider": "openai",
      "model_name": "gpt-4.1",
      "instructions": {
        "role": [
          "You are a product specialist assistant"
        ],
        "goal": [
          "Provide accurate product information to customers"
        ],
        "general": "Be helpful and professional"
      },
      "tools": [
        {
          "id": "search-products",
          "name": "Search Products",
          "method": "get",
          "path": "/products/search"
        }
      ],
      "knowledge_bases": [],
      "graph": [],
      "access_scope": "organizational"
    }
  ],
  "total": 41,
  "page": 1,
  "per_page": 2,
  "total_pages": 21
}
```

## Notes

* This endpoint returns complete agent configurations, which may be slower than the minimal list endpoint
* Use the minimal list endpoint (`GET /v1/agents`) if you only need basic agent information
* The response is automatically filtered based on your API key's permissions
* Large responses may take longer to retrieve due to nested configurations

## See Also

* [List Agents (Minimal)](/api-reference/v1/agents/list-agents) - Lightweight endpoint for basic agent info
* [Get Agent](/api-reference/v1/agents/get-agent) - Get complete details for a single agent


## OpenAPI

````yaml GET /v1/agents/full
openapi: 3.1.0
info:
  title: xpander.ai API Service
  description: |2-

        The xpander.ai API Service provides a unified REST API for managing AI agents,
        executing tasks, managing knowledge bases, and integrating with external systems.
        
        Features:
        - Agent Management: Create, update, deploy, and delete AI agents
        - Task Execution: Invoke agents with support for sync, async, and streaming modes
        - Knowledge Bases: Manage knowledge bases and documents for RAG workflows
        - Tools: Discover, connect, and attach tools (connectors, custom functions, MCP servers, sub-agents, workflows) to agents and workflows
        - MCP Integration: Model Context Protocol support for standardized AI interactions
        
        Authentication: All endpoints require authentication via either an API key (`x-api-key`) or an OAuth2 JWT (`Authorization: Bearer <jwt>`).
        
  version: '0.001'
servers:
  - url: https://api.xpander.ai
security: []
paths:
  /v1/agents/full:
    get:
      tags:
        - API v1
        - Agents
        - Agents CRUD
      summary: List Agents (Full)
      description: >-
        Retrieve a paginated list of AI agents with a simplified view (tools as
        one list, no low-level graph/oas).
      operationId: List_agents__full__v1_agents_full_get
      parameters:
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: Page number (starting from 1)
            default: 1
            title: Page
          description: Page number (starting from 1)
        - name: per_page
          in: query
          required: false
          schema:
            type: integer
            maximum: 50
            minimum: 1
            description: Items per page (max 50)
            default: 20
            title: Per Page
          description: Items per page (max 50)
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_SimplifiedAIAgent_'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyHeader: []
components:
  schemas:
    PaginatedResponse_SimplifiedAIAgent_:
      properties:
        items:
          items:
            $ref: '#/components/schemas/SimplifiedAIAgent'
          type: array
          title: Items
        total:
          type: integer
          title: Total
        page:
          type: integer
          title: Page
        per_page:
          type: integer
          title: Per Page
        total_pages:
          type: integer
          title: Total Pages
      type: object
      required:
        - items
        - total
        - page
        - per_page
        - total_pages
      title: PaginatedResponse[SimplifiedAIAgent]
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    SimplifiedAIAgent:
      properties:
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
          description: Agent id.
        name:
          type: string
          title: Name
          description: Agent name.
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: Agent description.
        icon:
          anyOf:
            - type: string
            - type: 'null'
          title: Icon
          description: Agent icon.
        type:
          anyOf:
            - $ref: '#/components/schemas/AgentType'
            - type: 'null'
          description: Agent type.
        status:
          anyOf:
            - $ref: '#/components/schemas/AgentStatus'
            - type: 'null'
          description: Agent status.
        model_provider:
          anyOf:
            - type: string
            - type: 'null'
          title: Model Provider
          description: LLM provider.
        model_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Model Name
          description: LLM model.
        instructions:
          anyOf:
            - $ref: '#/components/schemas/AIAgentInstructions'
            - type: 'null'
          description: Agent instructions.
        knowledge_base_ids:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Knowledge Base Ids
          description: Attached knowledge base ids.
          default: []
        source_node_types:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Source Node Types
          description: Trigger source types (sdk, webhook, slack, ...).
          default: []
        tools:
          items:
            $ref: '#/components/schemas/AgentTool'
          type: array
          title: Tools
          description: Tools attached to this agent.
          default: []
        created_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Created At
          description: Creation timestamp.
        created_by:
          anyOf:
            - type: string
            - type: 'null'
          title: Created By
          description: Creator user id.
        created_by_details:
          anyOf:
            - $ref: '#/components/schemas/CreatedByDetails'
            - type: 'null'
          description: Creator details.
      type: object
      required:
        - name
      title: SimplifiedAIAgent
      description: >-
        Lean agent view exposing tools as one simple list, hiding low-level
        graph/oas internals.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    AgentType:
      type: string
      enum:
        - manager
        - regular
        - a2a
        - curl
        - orchestration
      title: AgentType
      description: |-
        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.
    AgentStatus:
      type: string
      enum:
        - DRAFT
        - ACTIVE
        - INACTIVE
      title: AgentStatus
      description: |-
        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.
    AIAgentInstructions:
      properties:
        role:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Role
          default: []
        goal:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Goal
          default: []
        general:
          anyOf:
            - type: string
            - type: 'null'
          title: General
          default: ''
      type: object
      title: AIAgentInstructions
    AgentTool:
      properties:
        id:
          type: string
          title: Id
          description: >-
            Stable handle for this attached tool. Pass it to DELETE to remove
            the tool.
        type:
          $ref: '#/components/schemas/AgentToolType'
          description: The kind of attached tool.
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: Human-readable tool name.
        connection_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Connection Id
          description: Connector connection id. Actions only.
        operation_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Operation Id
          description: Operation catalog id. Actions only.
        operation_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Operation Name
          description: OpenAPI operationId. Actions only.
        custom_function_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Custom Function Id
          description: Custom function id. Custom functions only.
        mcp_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Mcp Id
          description: MCP registry id. MCP only.
        allowed_tools:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Allowed Tools
          description: Subset of MCP tools exposed. MCP only.
        target_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Target Id
          description: Referenced sub-agent or workflow id.
      type: object
      required:
        - id
        - type
      title: AgentTool
      description: >-
        A tool attached to an agent — the simplified, unified view of one graph
        entry.
    CreatedByDetails:
      properties:
        id:
          type: string
          title: Id
        name:
          type: string
          title: Name
        email:
          type: string
          title: Email
      type: object
      required:
        - id
        - name
        - email
      title: CreatedByDetails
    AgentToolType:
      type: string
      enum:
        - action
        - custom_function
        - mcp
        - agent
        - workflow
      title: AgentToolType
      description: Type of a tool attached to an agent.
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      description: API Key for authentication
      in: header
      name: x-api-key

````