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

# List agents

> Every agent in the workspace, private ones included (marked with `isPrivate`). `capabilities` is a mixed array of plain strings and `{ name, settings }` objects, so normalise to the name before counting. With `includeOverview=true` the response also carries `overview.reducedAgents` — one entry per agent with its `access`, instructions, integrations and exposure flags — plus `overview.lastUsageByAgent`. That single call is the reliable way to cover the whole estate, since per-agent endpoints reject private agents.



## OpenAPI

````yaml /api-reference/workspace-api.json get /workspaceapi/agents
openapi: 3.1.0
info:
  title: Abundly Workspace API
  description: >-
    Read-only access to workspace-level and per-agent data. Every endpoint is a
    GET authenticated with a workspace API key (wk_) that has the Workspace read
    API scope.


    Private agents are listed by /workspaceapi/agents but return 403 on every
    per-agent endpoint, so enumerate from
    /workspaceapi/agents?includeOverview=true rather than iterating agent ids.
  version: 1.0.0
servers:
  - url: https://service.abundly.ai
    description: Shared platform
  - url: https://{tenant}.service.abundly.ai
    description: Dedicated deployment
    variables:
      tenant:
        default: your-tenant
security:
  - workspaceApiKey: []
paths:
  /workspaceapi/agents:
    get:
      summary: List agents
      description: >-
        Every agent in the workspace, private ones included (marked with
        `isPrivate`). `capabilities` is a mixed array of plain strings and `{
        name, settings }` objects, so normalise to the name before counting.
        With `includeOverview=true` the response also carries
        `overview.reducedAgents` — one entry per agent with its `access`,
        instructions, integrations and exposure flags — plus
        `overview.lastUsageByAgent`. That single call is the reliable way to
        cover the whole estate, since per-agent endpoints reject private agents.
      operationId: agents
      parameters:
        - name: includeOverview
          in: query
          required: false
          description: >-
            When true, also returns the management overview (per-agent reduced
            configs + last-usage timestamps). Defaults to false.
          schema:
            type: boolean
      responses:
        '200':
          description: Success. Empty result sets are also 200.
          content:
            application/json:
              schema:
                type: object
                properties:
                  agents:
                    type: array
                    items:
                      description: One entry of the /agents list.
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        description:
                          type: string
                        imageUrl:
                          type: string
                        groupId:
                          description: Id of the team the agent belongs to, if any.
                          type: string
                        adminOnly:
                          type: boolean
                        adminRestriction:
                          type: string
                        agentDiscoverability:
                          type: string
                        enabled:
                          type: boolean
                        capabilities:
                          description: >-
                            Mixed array: plain strings, or objects for
                            capabilities that carry settings.
                          type: array
                          items:
                            anyOf:
                              - type: string
                              - type: object
                                properties:
                                  name:
                                    type: string
                                  settings: {}
                                required:
                                  - name
                                  - settings
                                additionalProperties: {}
                        tags:
                          type: array
                          items:
                            type: string
                        valueEntries:
                          type: array
                          items: {}
                        criticality:
                          type: string
                        dailyCreditLimit:
                          type: number
                        updatedAt:
                          type: string
                        isPrivate:
                          description: >-
                            True when default access is 'Nothing'. Per-agent
                            endpoints return 403.
                          type: boolean
                      required:
                        - id
                        - name
                        - adminOnly
                        - enabled
                        - capabilities
                        - isPrivate
                      additionalProperties: {}
                  overview:
                    description: Only present when includeOverview=true.
                    type: object
                    properties:
                      reducedAgents:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                            isPrivate:
                              type: boolean
                          required:
                            - id
                            - isPrivate
                          additionalProperties: {}
                      lastUsageByAgent:
                        type: object
                        propertyNames:
                          type: string
                        additionalProperties:
                          type: string
                    required:
                      - reducedAgents
                      - lastUsageByAgent
                    additionalProperties: false
                required:
                  - agents
                additionalProperties: false
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/Error'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
components:
  responses:
    Error:
      description: >-
        Error. Every failure on this API returns JSON with a single `error`
        field.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                description: >-
                  Human-readable message. Every error on this API uses this
                  shape.
                type: string
            required:
              - error
            additionalProperties: false
  securitySchemes:
    workspaceApiKey:
      type: http
      scheme: bearer
      description: Workspace API key (wk_) with the Workspace read API scope enabled.

````