> ## 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.

# Get an agent

> No key required for a public agent. A private agent needs `agents:read` on a key belonging to its owner account, or the read 404s -- a denied read looks identical to a nonexistent agent.



## OpenAPI

````yaml /api-reference/openapi.yaml get /agents/{agent_id_or_name}
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/{agent_id_or_name}:
    get:
      tags:
        - agents
      summary: Get an agent
      description: >-
        No key required for a public agent. A private agent needs `agents:read`
        on a key belonging to its owner account, or the read 404s -- a denied
        read looks identical to a nonexistent agent.
      operationId: get_agent
      parameters:
        - name: agent_id_or_name
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Agent'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          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"

````