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

# List agents

> No key required to see public agents. With a key holding `agents:read`, the results also include the account's own private agents.



## OpenAPI

````yaml /api-reference/openapi.yaml get /agents
openapi: 3.0.3
info:
  title: Guild Public API
  version: 1.0.0
  description: >-
    The Guild public API, served at https://api.guild.ai/v1 and authenticated
    with account API keys (HTTP Basic, key id as the username and the secret as
    the password). See https://docs.guild.ai/api-reference/introduction for
    scopes and behavior. A session-events websocket also exists at
    wss://api.guild.ai/v1/sessions/{session_id}/events/ws with the same Basic
    auth on the handshake; OpenAPI cannot describe websockets, so it is not
    listed in paths.
servers:
  - url: https://api.guild.ai/v1
    description: Production
security: []
tags:
  - name: accounts
  - name: agents
  - name: sessions
  - name: skills
  - name: workspaces
paths:
  /agents:
    get:
      tags:
        - agents
      summary: List agents
      description: >-
        No key required to see public agents. With a key holding `agents:read`,
        the results also include the account's own private agents.
      operationId: list_agents
      parameters:
        - name: sort_by
          in: query
          required: false
          schema:
            default: null
            title: Sort By
            nullable: true
            type: string
        - name: limit
          in: query
          required: false
          schema:
            default: 20
            maximum: 1000
            minimum: 0
            title: Limit
            type: integer
        - name: offset
          in: query
          required: false
          schema:
            default: 0
            maximum: 9223372036854776000
            minimum: 0
            title: Offset
            type: integer
        - name: search
          in: query
          required: false
          schema:
            default: null
            title: Search
            nullable: true
            type: string
        - name: fast
          in: query
          required: false
          schema:
            default: false
            title: Fast
            type: boolean
        - name: published_only
          in: query
          required: false
          schema:
            default: false
            title: Published Only
            type: boolean
        - name: is_public
          in: query
          required: false
          schema:
            default: false
            title: Is Public
            type: boolean
        - name: is_pinned
          in: query
          required: false
          schema:
            default: null
            title: Is Pinned
            nullable: true
            type: boolean
        - name: for_workspace
          in: query
          required: false
          schema:
            default: null
            title: For Workspace
            nullable: true
            type: string
        - name: tags
          in: query
          required: false
          schema:
            default: null
            title: Tags
            nullable: true
            type: string
        - name: categories
          in: query
          required: false
          schema:
            default: null
            title: Categories
            nullable: true
            type: string
        - name: agent_types
          in: query
          required: false
          schema:
            default: null
            title: Agent Types
            nullable: true
            type: string
        - name: owner
          in: query
          required: false
          schema:
            default: null
            title: Owner
            nullable: true
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Agent'
                  pagination:
                    type: object
                    properties:
                      total_count:
                        type: integer
                      limit:
                        type: integer
                      offset:
                        type: integer
                      has_more:
                        type: boolean
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    Agent:
      type: object
      properties:
        id:
          type: string
          format: uuid
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        agent_type:
          type: string
          enum:
            - GUILD_TYPESCRIPT
            - GUILD_NATIVE
            - GOOSE
            - OPENCLAW
            - LANGGRAPH
        description:
          type: string
          description: >-
            Manual description field. Can be empty; the effective description
            falls back to generated_description.
        is_public:
          type: boolean
          description: Whether the asset is visible to the community or only its owner.
        name:
          type: string
          maxLength: 100
          description: Unique name identifying the asset within the owner account.
        owner_id:
          type: string
          format: uuid
          description: The account that owns this entity.
        cached_forks_count:
          type: integer
          description: A cached version of the forks count. Might not be up to date.
        cached_installs_count:
          type: integer
          description: A cached version of the installs count. Might not be up to date.
        cached_likes_count:
          type: integer
          description: A cached version of the likes count. Might not be up to date.
        is_pinned:
          type: boolean
          description: >-
            If true, it means the agent is pinned on the owner's account's
            profile.
        moderation_state:
          type: string
          enum:
            - ACTIVE
            - DEMOTED
            - UNLISTED
            - DISABLED
            - TAKEN_DOWN
          description: >-
            Operator-controlled moderation/curation state. Owners cannot change
            this; only operators can, via the hub kebab menu or ops tooling.
        status:
          type: string
          enum:
            - CREATED
            - GIT_REPOSITORY_CREATED
            - READY
        archived_at:
          type: string
          format: date-time
          nullable: true
        archived_by_id:
          type: string
          format: uuid
          nullable: true
        avatar_url:
          type: string
          maxLength: 255
          nullable: true
        category_id:
          type: string
          format: uuid
          nullable: true
          description: The category this agent is sorted in.
        creation_template:
          type: string
          enum:
            - LLM
            - AUTO_MANAGED_STATE
            - BLANK
            - GOOSE
            - GUILD_NATIVE
            - OPENCLAW
            - LANGGRAPH
          nullable: true
          description: >-
            If applicable, the template that was selected during the creation of
            this agent. Note: it doesn't mean the agent is still following the
            template now.
        forked_from_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            If applicable, the ID of the agent version this agent was forked
            from.
        generated_description:
          type: string
          nullable: true
          description: >-
            LLM-generated description based on agent code. Regenerated
            automatically on every commit.
        maintainer_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            OPTIONAL. Refers to the person within an organization that is tasked
            with maintaining the agent.
        archived_by: {}
        category: {}
        forks_count:
          type: integer
          description: Number of times this agent has been forked
        full_name:
          type: string
          description: Full agent name in format "owner_name/agent_name"
        git_url:
          type: string
          description: URL to the agent's git repository
        installs_count:
          type: integer
          description: Number of times this agent has been installed in workspaces
        is_description_autogenerated: {}
        latest_published_version: {}
        latest_version: {}
        likes_count:
          type: integer
          description: Number of likes this agent has received
        maintainer:
          type: object
          nullable: true
          description: Maintainer of the agent (for organization-owned agents)
        owner:
          $ref: '#/components/schemas/Account'
        public_profile_url: {}
        type: {}
        viewer_can_edit:
          type: boolean
          description: Whether the current viewer can edit this agent
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
    Account:
      oneOf:
        - $ref: '#/components/schemas/Organization'
        - $ref: '#/components/schemas/User'
    Organization:
      type: object
      properties:
        id:
          type: string
          format: uuid
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        creator_id:
          type: string
          format: uuid
          description: >-
            The user who created this organization. Note that this does not give
            that user membership.
        name:
          type: string
          maxLength: 100
          description: The unique name identifying this account.
        cached_forks_count:
          type: integer
          description: A cached version of the forks count. Might not be up to date.
        cached_forks_public_count:
          type: integer
          description: >-
            A cached version of the forks count for public agents. Might not be
            up to date.
        cached_installs_count:
          type: integer
          description: A cached version of the installs count. Might not be up to date.
        cached_installs_public_count:
          type: integer
          description: >-
            A cached version of the installs count for public agents. Might not
            be up to date.
        cached_likes_count:
          type: integer
          description: A cached version of the likes count. Might not be up to date.
        cached_likes_public_count:
          type: integer
          description: >-
            A cached version of the likes count for public agents. Might not be
            up to date.
        avatar_url:
          type: string
          maxLength: 255
          nullable: true
        banner_url:
          type: string
          maxLength: 255
          nullable: true
        bio:
          type: string
          nullable: true
        discord_url:
          type: string
          maxLength: 255
          nullable: true
        email_domain:
          type: string
          maxLength: 100
          nullable: true
          description: >-
            The email domain of the organization. Members will be automatically
            invited to this organization if they have an email with this domain.
        full_name:
          type: string
          maxLength: 100
          nullable: true
          description: The display name of the account.
        github_url:
          type: string
          maxLength: 255
          nullable: true
        linkedin_url:
          type: string
          maxLength: 255
          nullable: true
        threads_url:
          type: string
          maxLength: 255
          nullable: true
        website_url:
          type: string
          maxLength: 255
          nullable: true
        x_url:
          type: string
          maxLength: 255
          nullable: true
        youtube_url:
          type: string
          maxLength: 255
          nullable: true
        member_count: {}
        viewer_membership_id: {}
        viewer_membership_public: {}
        viewer_role:
          type: string
          enum:
            - ADMIN
            - MEMBER
          nullable: true
          description: Current viewer's role in the organization (null if not a member)
        type:
          type: string
          enum:
            - organization
          description: Account type, always "organization"
    User:
      type: object
      properties:
        id:
          type: string
          format: uuid
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        email:
          type: string
          maxLength: 100
        name:
          type: string
          maxLength: 100
          description: The unique name identifying this account.
        cached_forks_count:
          type: integer
          description: A cached version of the forks count. Might not be up to date.
        cached_forks_public_count:
          type: integer
          description: >-
            A cached version of the forks count for public agents. Might not be
            up to date.
        cached_installs_count:
          type: integer
          description: A cached version of the installs count. Might not be up to date.
        cached_installs_public_count:
          type: integer
          description: >-
            A cached version of the installs count for public agents. Might not
            be up to date.
        cached_likes_count:
          type: integer
          description: A cached version of the likes count. Might not be up to date.
        cached_likes_public_count:
          type: integer
          description: >-
            A cached version of the likes count for public agents. Might not be
            up to date.
        is_operator:
          type: boolean
          description: >-
            Whether or not the user is a Guild employee (or operator). BE VERY
            CAREFUL WITH THIS.
        notification_email_level:
          type: string
          enum:
            - NONE
            - IMPORTANT
            - ALL
          description: >-
            NONE = no emails, IMPORTANT = invitations and agent-ask only, ALL =
            all notification types.
        avatar_url:
          type: string
          maxLength: 255
          nullable: true
        banner_url:
          type: string
          maxLength: 255
          nullable: true
        bio:
          type: string
          nullable: true
        closed_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Set when an operator closes the account. A closed user cannot start
            a login session by any method.
        discord_url:
          type: string
          maxLength: 255
          nullable: true
        full_name:
          type: string
          maxLength: 100
          nullable: true
          description: The display name of the account.
        github_url:
          type: string
          maxLength: 255
          nullable: true
        hubspot_synced_at:
          type: string
          format: date-time
          nullable: true
        linkedin_url:
          type: string
          maxLength: 255
          nullable: true
        threads_url:
          type: string
          maxLength: 255
          nullable: true
        username_set_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Set when the user picks their username during onboarding. Once set,
            the username cannot be changed.
        website_url:
          type: string
          maxLength: 255
          nullable: true
        x_url:
          type: string
          maxLength: 255
          nullable: true
        youtube_url:
          type: string
          maxLength: 255
          nullable: true
        type:
          type: string
          enum:
            - user
          description: Account type, always "user"

````