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

# Get available tools for the authenticated user

> Retrieves the list of active tools available for the current user. Returns minimal tool information needed for Pria requests, including availability status for Google-integrated tools based on the user's institution settings and Google Cloud configuration.

Results are sorted in ascending alphabetical order by tool name.

For Google-integrated tools (gmail, drive, calendar, sheets, docs, slides, meet, maps, classroom), the response includes `unavailable` and `unavailableReason` fields. Availability is determined by checking whether Google OAuth is configured, whether the institution has enabled Google Cloud for users, and whether an institution-level Google account is connected. Non-Google tools do not include these fields.




## OpenAPI

````yaml /mdx/api-reference/runtime/runtime-api.json post /api/user/tools
openapi: 3.0.0
info:
  title: Pria Runtime 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: Audio Notes
    description: Capture and ingest spoken notes into the personal vault
  - name: Memory
    description: User-facing memory parameters (personal + shared instance memory).
  - name: My Data
    description: >-
      GDPR controls — personal-scope counts, async ZIP-by-email export, and
      scoped soft-delete. Every endpoint pins `user = req.user._id` AND
      `institution: null`; institution-scoped data is governed by the
      institution's own retention policy and never reached from here.
  - name: Questions
    description: >-
      User-facing read of the onboarding question bank used by the "create a
      digital twin" wizard.
  - name: Transcription
    description: >-
      One-shot speech-to-text for in-place dictation. Audio blob in, transcript
      out — no Upload / History / RAG embeddings are persisted. Use
      `/audio-notes` for anything durable.
paths:
  /api/user/tools:
    post:
      tags:
        - Tools
      summary: Get available tools for the authenticated user
      description: >
        Retrieves the list of active tools available for the current user.
        Returns minimal tool information needed for Pria requests, including
        availability status for Google-integrated tools based on the user's
        institution settings and Google Cloud configuration.


        Results are sorted in ascending alphabetical order by tool name.


        For Google-integrated tools (gmail, drive, calendar, sheets, docs,
        slides, meet, maps, classroom), the response includes `unavailable` and
        `unavailableReason` fields. Availability is determined by checking
        whether Google OAuth is configured, whether the institution has enabled
        Google Cloud for users, and whether an institution-level Google account
        is connected. Non-Google tools do not include these fields.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                minimum:
                  type: boolean
                  description: >
                    When true, omits the `instructions` field from each tool in
                    the response. Useful for selector UIs that only need the
                    identifier + short description.
                  example: true
      responses:
        '200':
          description: Tools retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetToolsResponse'
              examples:
                withTools:
                  summary: Response with tools including Google availability fields
                  value:
                    success: true
                    data:
                      - _id: 6631915765bb0a94cfd6ca99
                        name: call_google_calendar
                        status: active
                        description: Access Google Calendar to manage events
                        rtEnabled: true
                        rtOnly: false
                        unavailable: false
                        unavailableReason: ''
                      - _id: 6631915765bb0a94cfd6ca9a
                        name: call_google_drive
                        status: active
                        description: Access Google Drive files
                        rtEnabled: false
                        rtOnly: false
                        unavailable: true
                        unavailableReason: Google Cloud not enabled for users
                      - _id: 6631915765bb0a94cfd6ca9b
                        name: call_web_search
                        status: active
                        description: Search the web
                        rtEnabled: false
                        rtOnly: false
                noTools:
                  summary: Response when no active tools exist
                  value:
                    success: true
                    data: []
                    message: No Tools
        '400':
          description: Bad request - error retrieving tools
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetToolsErrorResponse'
              example:
                success: false
                error: {}
                message: Error getting tools Database connection failed
        '401':
          description: Unauthorized - user not found or invalid access token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                success: false
                message: Authentication Required
      security:
        - apiKeyAuth: []
components:
  schemas:
    GetToolsResponse:
      type: object
      required:
        - success
        - data
      properties:
        success:
          type: boolean
          description: Whether the operation was successful
          example: true
        data:
          type: array
          items:
            $ref: '#/components/schemas/ToolItem'
          description: List of tools sorted in ascending order by name
        message:
          type: string
          description: Present only when no tools are found, with the value "No Tools"
          example: No Tools
    GetToolsErrorResponse:
      type: object
      required:
        - success
        - message
      properties:
        success:
          type: boolean
          description: Always false for error responses
          example: false
        error:
          type: object
          description: The raw error object from the failed operation
        message:
          type: string
          description: Error message in the format "Error getting tools <details>"
          example: Error getting tools Database connection failed
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          example: false
        message:
          type: string
          description: Human-readable error message
        error:
          type: string
          description: Technical error details
    ToolItem:
      type: object
      required:
        - _id
        - name
        - status
        - description
        - rtEnabled
        - rtOnly
      properties:
        _id:
          type: string
          description: Tool unique identifier
          example: 6631915765bb0a94cfd6ca99
        name:
          type: string
          description: Tool name/identifier
          example: call_google_calendar
        status:
          type: string
          enum:
            - active
          description: >-
            Tool status. Only active tools are returned; deleted and inactive
            tools are excluded.
          example: active
        description:
          type: string
          description: Tool description
          example: Access Google Calendar to manage events and schedules
        instructions:
          type: string
          description: >
            Detailed usage instructions for the tool, intended for inclusion in
            an LLM system prompt. Omitted when the request body sets `minimum:
            true`.
          example: Use 'call_google_calendar' to create and retrieve events...
        rtEnabled:
          type: boolean
          description: Whether real-time mode is enabled for this tool
          example: true
        rtOnly:
          type: boolean
          description: Whether tool only works in real-time mode
          example: false
        unavailable:
          type: boolean
          description: >
            Whether the tool is currently unavailable for the authenticated
            user. This field is only present on cloud-integrated Google tools
            (e.g. call_google_gmail, call_google_drive, call_google_calendar,
            call_google_sheets, call_google_docs, call_google_slides,
            call_google_meet, call_google_maps, call_google_classroom).
            Non-Google tools will not include this field.
          example: false
        unavailableReason:
          type: string
          description: >
            Human-readable reason why a Google tool is unavailable. Only present
            on cloud-integrated Google tools. Empty string when the tool is
            available.
          enum:
            - ''
            - Google OAuth not configured
            - Google Cloud not enabled for users
            - Google Cloud not connected for this instance
          example: ''
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-access-token
      description: JWT token passed in x-access-token header

````