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

# Combined tool analytics dashboard envelope

> Single call that fans out to the four ENG-154 dashboard pipes.

Each underlying pipe is independently cached at 60s, so within a one
minute window this endpoint serves entirely from Redis.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/analytics/tools/dashboard
openapi: 3.1.0
info:
  title: Feather API
  description: >-
    Unified customer experience platform API. Manages identity, conversations,
    memory, agents, procedures, policies, model routing, knowledge bases,
    integrations, and runtime execution.
  version: 1.21.0
servers:
  - url: https://api-sandbox.featherhq.com
    description: Sandbox
  - url: http://localhost:8000
    description: Local dev
security: []
paths:
  /v1/analytics/tools/dashboard:
    get:
      tags:
        - analytics
      summary: Combined tool analytics dashboard envelope
      description: |-
        Single call that fans out to the four ENG-154 dashboard pipes.

        Each underlying pipe is independently cached at 60s, so within a one
        minute window this endpoint serves entirely from Redis.
      operationId: getToolDashboard
      parameters:
        - name: tool_type
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Tool Type
        - name: revision_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Revision Id
        - name: top_tools_limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            default: 10
            title: Top Tools Limit
        - name: health_matrix_limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 200
            minimum: 1
            default: 50
            title: Health Matrix Limit
        - name: recent_errors_limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            default: 20
            title: Recent Errors Limit
        - name: min_invocations
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            default: 10
            title: Min Invocations
        - name: latency_ceiling_ms
          in: query
          required: false
          schema:
            type: number
            exclusiveMinimum: 0
            default: 5000
            title: Latency Ceiling Ms
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            format: date
            title: Start Date
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            format: date
            title: End Date
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/src__analytics__tools__schemas__DashboardEnvelope
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyHeader: []
components:
  schemas:
    src__analytics__tools__schemas__DashboardEnvelope:
      properties:
        summary:
          items:
            $ref: >-
              #/components/schemas/src__analytics__tools__schemas__DashboardSummaryRow
          type: array
          title: Summary
        top_tools:
          items:
            $ref: '#/components/schemas/DashboardTopToolsRow'
          type: array
          title: Top Tools
        health_matrix:
          items:
            $ref: '#/components/schemas/DashboardHealthMatrixRow'
          type: array
          title: Health Matrix
        recent_errors:
          items:
            $ref: '#/components/schemas/DashboardRecentErrorRow'
          type: array
          title: Recent Errors
      type: object
      required:
        - summary
        - top_tools
        - health_matrix
        - recent_errors
      title: DashboardEnvelope
      description: |-
        Combined dashboard payload — one envelope, four pre-aggregated panels.

        `summary` is at most one row but the underlying pipe returns a list, so
        we keep it as a (possibly empty) list rather than special-casing it on
        the client.
    ErrorResponse:
      properties:
        error:
          type: string
          title: Error
        message:
          type: string
          title: Message
      type: object
      required:
        - error
        - message
      title: ErrorResponse
      description: Standard error response returned by all API error handlers.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    src__analytics__tools__schemas__DashboardSummaryRow:
      properties:
        current_invocations:
          anyOf:
            - type: integer
            - type: 'null'
          title: Current Invocations
        previous_invocations:
          anyOf:
            - type: integer
            - type: 'null'
          title: Previous Invocations
        pct_change_invocations:
          anyOf:
            - type: number
            - type: 'null'
          title: Pct Change Invocations
        current_errors:
          anyOf:
            - type: integer
            - type: 'null'
          title: Current Errors
        previous_errors:
          anyOf:
            - type: integer
            - type: 'null'
          title: Previous Errors
        pct_change_errors:
          anyOf:
            - type: number
            - type: 'null'
          title: Pct Change Errors
        current_success_rate:
          anyOf:
            - type: number
            - type: 'null'
          title: Current Success Rate
        previous_success_rate:
          anyOf:
            - type: number
            - type: 'null'
          title: Previous Success Rate
        pct_change_success_rate:
          anyOf:
            - type: number
            - type: 'null'
          title: Pct Change Success Rate
        current_avg_latency_ms:
          anyOf:
            - type: number
            - type: 'null'
          title: Current Avg Latency Ms
        previous_avg_latency_ms:
          anyOf:
            - type: number
            - type: 'null'
          title: Previous Avg Latency Ms
        pct_change_avg_latency_ms:
          anyOf:
            - type: number
            - type: 'null'
          title: Pct Change Avg Latency Ms
        current_p95_latency_ms:
          anyOf:
            - type: number
            - type: 'null'
          title: Current P95 Latency Ms
        previous_p95_latency_ms:
          anyOf:
            - type: number
            - type: 'null'
          title: Previous P95 Latency Ms
        pct_change_p95_latency_ms:
          anyOf:
            - type: number
            - type: 'null'
          title: Pct Change P95 Latency Ms
        current_active_tools:
          anyOf:
            - type: integer
            - type: 'null'
          title: Current Active Tools
        previous_active_tools:
          anyOf:
            - type: integer
            - type: 'null'
          title: Previous Active Tools
        pct_change_active_tools:
          anyOf:
            - type: number
            - type: 'null'
          title: Pct Change Active Tools
      type: object
      title: DashboardSummaryRow
    DashboardTopToolsRow:
      properties:
        tool_id:
          type: string
          title: Tool Id
        tool_name:
          type: string
          title: Tool Name
        tool_type:
          type: string
          title: Tool Type
        provider:
          anyOf:
            - type: string
            - type: 'null'
          title: Provider
        invocations:
          type: integer
          title: Invocations
        error_count:
          type: integer
          title: Error Count
        success_rate_pct:
          type: number
          title: Success Rate Pct
        avg_latency_ms:
          type: number
          title: Avg Latency Ms
      type: object
      required:
        - tool_id
        - tool_name
        - tool_type
        - invocations
        - error_count
        - success_rate_pct
        - avg_latency_ms
      title: DashboardTopToolsRow
    DashboardHealthMatrixRow:
      properties:
        tool_id:
          type: string
          title: Tool Id
        tool_name:
          type: string
          title: Tool Name
        tool_type:
          type: string
          title: Tool Type
        invocation_count:
          type: integer
          title: Invocation Count
        success_rate:
          anyOf:
            - type: number
            - type: 'null'
          title: Success Rate
        p95_latency_ms:
          anyOf:
            - type: number
            - type: 'null'
          title: P95 Latency Ms
        current_error_rate:
          type: number
          title: Current Error Rate
        previous_error_rate:
          type: number
          title: Previous Error Rate
        error_trend_delta:
          type: number
          title: Error Trend Delta
        success_rate_score:
          type: number
          title: Success Rate Score
        latency_score:
          type: number
          title: Latency Score
        error_trend_score:
          type: number
          title: Error Trend Score
        health_score:
          type: number
          title: Health Score
      type: object
      required:
        - tool_id
        - tool_name
        - tool_type
        - invocation_count
        - current_error_rate
        - previous_error_rate
        - error_trend_delta
        - success_rate_score
        - latency_score
        - error_trend_score
        - health_score
      title: DashboardHealthMatrixRow
    DashboardRecentErrorRow:
      properties:
        timestamp:
          type: string
          format: date-time
          title: Timestamp
        tool_id:
          type: string
          title: Tool Id
        tool_name:
          type: string
          title: Tool Name
        tool_type:
          type: string
          title: Tool Type
        provider:
          anyOf:
            - type: string
            - type: 'null'
          title: Provider
        agent_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Agent Id
        session_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Session Id
        error_category:
          type: string
          title: Error Category
        status_code:
          anyOf:
            - type: integer
            - type: 'null'
          title: Status Code
        error_message:
          anyOf:
            - type: string
            - type: 'null'
          title: Error Message
        latency_ms:
          type: number
          title: Latency Ms
      type: object
      required:
        - timestamp
        - tool_id
        - tool_name
        - tool_type
        - error_category
        - latency_ms
      title: DashboardRecentErrorRow
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: x-api-key

````