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

# List tools

> Returns the tool list. Two modes:
- **Full mode** (default): paginated, super admin only. Returns full tool objects with
  `unavailable`/`unavailableReason` enrichment for Google-service tools based on the
  caller's institution Google Cloud configuration.
- **Minimum mode** (`minimum=true`): no pagination, available to any authenticated user.
  Returns a lightweight projection (`name, _id, status, description, rtEnabled, rtOnly, categories`)
  used by RT dropdown selectors. Excludes both `deleted` and `inactive` tools. Pass
  `institution` to additionally get Google-service availability flags
  (`unavailable`/`unavailableReason`/`locked`) computed for that institution.




## OpenAPI

````yaml /mdx/api-reference/admin/admin-api.json post /api/admin/tools
openapi: 3.0.0
info:
  title: Pria Admin API
  version: 2.0.1
  description: >-
    Pria API Documentation Praxis's developer platform is a core part of our
    mission to empower organizations to grow better. Our APIs are designed to
    enable teams of any shape or size to build robust integrations that help
    them customize and get the most value out of Pria. All Pria APIs are built
    using REST conventions and designed to have a predictable URL structure.
    <br/>  <br/>They use many standard HTTP features, including methods (POST,
    GET, PUT, DELETE) and error response codes.  <br/> <br/>All API calls are
    made under https://hiimpria.ai/api and all responses return standard JSON.
    In these docs, you'll find lists of all available endpoints for a given API,
    along with interactive code blocks for building requests. For walkthroughs
    of basic usage for these APIs, check out the API guides.
servers:
  - url: https://pria.praxislxp.com
    description: Pria API Server
security: []
tags:
  - name: Authentication
    description: User authentication, registration, and password management (/api/auth)
  - name: OAuth
    description: OAuth authentication providers - Google, GitHub, SSO (/api/auth/oauth)
  - name: User
    description: User profile management and account operations (/api/user)
  - name: User Institutions
    description: User institution memberships and switching (/api/user/institution)
  - name: User Tools
    description: Available tools for authenticated users (/api/user/tools)
  - name: Institutions
    description: Institution settings and configuration (/api/user/institution)
  - name: Conversation
    description: AI conversation and Q&A endpoints (/api/ai)
  - name: Realtime
    description: Real-time voice AI and WebRTC sessions (/api/ai/rt)
  - name: Assistant
    description: AI assistant configuration and management (/api/user/assistant)
  - name: History
    description: Conversation history and favorites (/api/user/history)
  - name: RAG
    description: >-
      Document upload, embedding, and retrieval-augmented generation
      (/api/user/files, /api/user/rag)
  - name: Setting
    description: Instance variables and settings management (/api/user/setting)
  - name: Branding
    description: Digital twin branding and customization (/api/agent/branding)
  - name: Agent
    description: Agent engagement and session management (/api/agent)
  - name: SDK Launch
    description: >-
      SDK launch token signing and verification for secure iframe embedding
      (/api/auth/sdk-sign, /api/auth/sdk-verify)
  - name: Testing
    description: Health checks, diagnostics, and test endpoints (/api/test)
  - name: Admin Accounts
    description: Account management for super admins (/api/admin/account)
  - name: Admin Institutions
    description: Institution management for admins (/api/admin/institution)
  - name: Admin Users
    description: User management for admins (/api/admin/user)
  - name: Admin Entitlements
    description: >-
      User-institution relationships and permissions
      (/api/admin/userInstitution)
  - name: Admin Sessions
    description: Session management for admins (/api/admin/session)
  - name: Admin Histories
    description: Conversation history management and analytics (/api/admin/history)
  - name: Admin Assistants
    description: AI assistant management for admins (/api/admin/assistant)
  - name: Admin Questions
    description: Institution question and prompt management (/api/admin/question)
  - name: Admin Tools
    description: Tool configuration management (/api/admin/tool)
  - name: Admin AI Models
    description: AI model configuration (/api/admin/aimodel)
  - name: Admin MCP Servers
    description: Model Context Protocol server management (/api/admin/mcpserver)
  - name: Admin Feedbacks
    description: User feedback management (/api/admin/feedback)
  - name: Admin Uploads
    description: Upload management (/api/admin/upload)
  - name: Admin Charts
    description: Analytics and visualization chart management (/api/admin/chart)
  - name: Admin Memory
    description: Admin inspection and editing of user/instance memory parameters.
  - name: Admin Usage Limits
    description: Per-user usage-vs-cap reporting and account-wide at-limit counts.
paths:
  /api/admin/tools:
    post:
      tags:
        - Admin Tools
      summary: List tools
      description: >
        Returns the tool list. Two modes:

        - **Full mode** (default): paginated, super admin only. Returns full
        tool objects with
          `unavailable`/`unavailableReason` enrichment for Google-service tools based on the
          caller's institution Google Cloud configuration.
        - **Minimum mode** (`minimum=true`): no pagination, available to any
        authenticated user.
          Returns a lightweight projection (`name, _id, status, description, rtEnabled, rtOnly, categories`)
          used by RT dropdown selectors. Excludes both `deleted` and `inactive` tools. Pass
          `institution` to additionally get Google-service availability flags
          (`unavailable`/`unavailableReason`/`locked`) computed for that institution.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ToolListRequest'
      responses:
        '200':
          description: Tool list retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolListResponse'
        '400':
          description: Query error
        '401':
          description: Authentication required
        '403':
          description: Forbidden — super admin required for full (non-minimum) mode
      security:
        - apiKeyAuth: []
components:
  schemas:
    ToolListRequest:
      type: object
      properties:
        minimum:
          type: boolean
          description: >
            When true, returns a lightweight list (name, _id, status,
            description,

            rtEnabled, rtOnly, categories) with NO pagination. Used by RT
            dropdown

            selectors. Available to all authenticated users; full mode requires
            super admin.
        institution:
          type: string
          description: >
            Minimum mode only. Institution to compute Google-service
            availability for —

            rows gain `unavailable`/`unavailableReason`/`locked` based on that

            institution's Google Cloud configuration (used by the instance
            editor's

            Connector MCP and Tools tab). Super admins may target any
            institution;

            other callers are limited to their own.
        page:
          type: integer
          minimum: 1
          default: 1
          description: Page number (1-based, ignored when minimum=true)
        pageSize:
          type: integer
          minimum: 1
          maximum: 5000
          default: 100
          description: Number of results per page (ignored when minimum=true)
    ToolListResponse:
      type: object
      properties:
        success:
          type: boolean
        data:
          type: array
          items:
            $ref: '#/components/schemas/Tool'
          description: >-
            Array of tools (sorted by name asc). Excludes `deleted` status;
            minimum mode also excludes `inactive`.
        total:
          type: integer
          description: Total number of matching tools (omitted when minimum=true)
        hasMore:
          type: boolean
          description: Whether more pages remain (omitted when minimum=true)
        page:
          type: integer
          description: Current page number (omitted when minimum=true)
        pageSize:
          type: integer
          description: Page size used (omitted when minimum=true)
        message:
          type: string
    Tool:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
          description: Unique tool name (e.g. get_browser, read_url, call_google_maps)
        responseLength:
          type: number
        responseDurationMs:
          type: number
        success:
          type: boolean
        _id:
          type: string
          description: MongoDB ObjectId
        description:
          type: string
          description: Short user-facing description of what the tool does
        instructions:
          type: string
          description: Long-form instructions to the model on when/how to invoke this tool
        argument_1:
          type: string
          description: >-
            Natural-language description of the first argument the model should
            pass
        argument_2:
          type: string
          description: Natural-language description of the second argument
        argument_3:
          type: string
          description: Natural-language description of the third argument
        argument_4:
          type: string
          description: Natural-language description of the fourth argument
        argument_5:
          type: string
          description: Natural-language description of the fifth argument
        argument_6:
          type: string
          description: Natural-language description of the sixth argument
        isArray:
          type: boolean
          default: false
          description: >-
            Whether this tool can be invoked multiple times in parallel
            (array-returning)
        rtEnabled:
          type: boolean
          default: false
          description: Whether the tool is exposed in realtime (voice) conversations
        rtOnly:
          type: boolean
          default: false
          description: >-
            Whether the tool is ONLY available in realtime conversations (hidden
            from text mode)
        categories:
          type: array
          items:
            type: string
            enum:
              - research
              - productivity
              - creative
              - communication
              - learning
          description: User-facing categories used to filter/group tools in the UI
        status:
          type: string
          enum:
            - active
            - inactive
            - deleted
          default: active
          description: >-
            Lifecycle status. `deleted` tools are soft-deleted and excluded from
            normal listings.
        created:
          type: string
          format: date-time
          description: Creation timestamp
        unavailable:
          type: boolean
          description: >
            Runtime-only flag (not stored). Set by GET /api/admin/tools for
            Google-service

            tools (call_google_maps, call_google_drive, etc.) when the user's
            institution

            has not enabled or connected the required Google Cloud service.
        unavailableReason:
          type: string
          description: >
            Runtime-only field (not stored). Human-readable reason a
            Google-service tool

            is unavailable (e.g. "Google OAuth not configured",

            "Google Cloud not enabled for users", "Google Cloud not connected
            for this instance").
      description: >
        A tool definition consumed by the Pria orchestrator. Field names match
        the

        Mongoose schema in routes/models/tool.js. Each `argument_N` is a
        free-form

        natural-language description of what value the model should pass for
        that

        positional argument — the orchestrator forwards it to the LLM as the

        parameter description (NOT a JSON Schema definition).
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-access-token
      description: JWT token passed in x-access-token header

````