GroundRoute AI Console API

The console API from GroundRoute AI — 12 operation(s) for console.

GitHub OpenAPI

Operations 15

GET /v1/console/overview Overview #
GET /v1/console/metrics Metrics #
GET /v1/console/spend Spend #
GET /v1/console/audit Audit #
GET /v1/console/cache Cache #
GET /v1/console/routing Routing #
GET /v1/console/settings Get Settings Endpoint #
PUT /v1/console/settings Put Settings Endpoint #
GET /v1/console/preferences Get Preferences Endpoint #
PUT /v1/console/preferences Put Preferences Endpoint #
GET /v1/console/plan Get Plan Endpoint #
POST /v1/console/plan/request-change Request Plan Change #
GET /v1/console/profile Get Profile Endpoint #
PUT /v1/console/profile Put Profile Endpoint #
POST /v1/console/onboarding-complete Onboarding Complete #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/groundroute-ai:groundroute-ai-console-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

groundroute-ai-console-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: GroundRoute Console API
  version: 0.3.0
tags:
- name: Console
paths:
  /v1/console/overview:
    get:
      tags:
      - Console
      summary: Overview
      description: 'FRONTEND PLUG-IN: top-of-console KPI cards (searches, cost, savings, cache, latency).'
      operationId: overview_v1_console_overview_get
      parameters:
      - name: window
        in: query
        required: false
        schema:
          type: string
          default: 7d
          title: Window
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Overview'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/console/metrics:
    get:
      tags:
      - Console
      summary: Metrics
      description: 'FRONTEND PLUG-IN: breakdown charts by query class or engine.'
      operationId: metrics_v1_console_metrics_get
      parameters:
      - name: window
        in: query
        required: false
        schema:
          type: string
          default: 7d
          title: Window
      - name: group_by
        in: query
        required: false
        schema:
          type: string
          pattern: ^(class|engine)$
          default: class
          title: Group By
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetricsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/console/spend:
    get:
      tags:
      - Console
      summary: Spend
      description: 'Spend caps + quota status. Side effect: emits durable breach alerts (audit_log) on read.


        FRONTEND PLUG-IN: governance panel (caps, quota gauges, breach banners).'
      operationId: spend_v1_console_spend_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GovernanceView'
  /v1/console/audit:
    get:
      tags:
      - Console
      summary: Audit
      description: 'Redacted audit / query-graph view — the system-of-record surface (R7-redacted).


        FRONTEND PLUG-IN: audit log table + per-agent query-graph drilldown.'
      operationId: audit_v1_console_audit_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 500
          minimum: 1
          default: 50
          title: Limit
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          default: 0
          title: Offset
      - name: action
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Action
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuditPage'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/console/cache:
    get:
      tags:
      - Console
      summary: Cache
      description: 'FRONTEND PLUG-IN: Cache page — tier mix, per-day trend, per-class breakdown, savings.'
      operationId: cache_v1_console_cache_get
      parameters:
      - name: window
        in: query
        required: false
        schema:
          type: string
          default: 7d
          title: Window
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CacheData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/console/routing:
    get:
      tags:
      - Console
      summary: Routing
      description: 'FRONTEND PLUG-IN: Routing page — per-class engine order (saved policy applied) + cost/1k.'
      operationId: routing_v1_console_routing_get
      parameters:
      - name: window
        in: query
        required: false
        schema:
          type: string
          default: 30d
          title: Window
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoutingData'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/console/settings:
    get:
      tags:
      - Console
      summary: Get Settings Endpoint
      operationId: get_settings_endpoint_v1_console_settings_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceSettingsView'
    put:
      tags:
      - Console
      summary: Put Settings Endpoint
      operationId: put_settings_endpoint_v1_console_settings_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkspaceSettingsUpdate'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceSettingsView'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/console/preferences:
    get:
      tags:
      - Console
      summary: Get Preferences Endpoint
      operationId: get_preferences_endpoint_v1_console_preferences_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreferencesView'
    put:
      tags:
      - Console
      summary: Put Preferences Endpoint
      operationId: put_preferences_endpoint_v1_console_preferences_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PreferencesUpdate'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreferencesView'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/console/plan:
    get:
      tags:
      - Console
      summary: Get Plan Endpoint
      operationId: get_plan_endpoint_v1_console_plan_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlanView'
  /v1/console/plan/request-change:
    post:
      tags:
      - Console
      summary: Request Plan Change
      description: 'Apply a tier change. Plans are byok + managed only.


        byok → applied immediately; managed → requires billing (else 402 needs_billing).

        Every change is audit-logged.'
      operationId: request_plan_change_v1_console_plan_request_change_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlanChangeRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/console/profile:
    get:
      tags:
      - Console
      summary: Get Profile Endpoint
      operationId: get_profile_endpoint_v1_console_profile_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfileView'
    put:
      tags:
      - Console
      summary: Put Profile Endpoint
      description: Update the display name only. email/role are read-only (managed elsewhere).
      operationId: put_profile_endpoint_v1_console_profile_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProfileUpdate'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfileView'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /v1/console/onboarding-complete:
    post:
      tags:
      - Console
      summary: Onboarding Complete
      description: Mark the onboarding wizard done for the logged-in user. Idempotent (session-authed).
      operationId: onboarding_complete_v1_console_onboarding_complete_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnboardingState'
components:
  schemas:
    MetricsResponse:
      properties:
        tenant_id:
          type: string
          title: Tenant Id
        window:
          type: string
          title: Window
        group_by:
          type: string
          title: Group By
        buckets:
          items:
            $ref: '#/components/schemas/MetricBucket'
          type: array
          title: Buckets
      additionalProperties: false
      type: object
      required:
      - tenant_id
      - window
      - group_by
      - buckets
      title: MetricsResponse
    AuditEntry:
      properties:
        ts:
          type: string
          format: date-time
          title: Ts
        actor:
          type: string
          title: Actor
        action:
          type: string
          title: Action
        resource:
          type: string
          title: Resource
        request_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Request Id
        poolability_reason:
          anyOf:
          - type: string
          - type: 'null'
          title: Poolability Reason
        detail:
          additionalProperties: true
          type: object
          title: Detail
        redacted_fields:
          items:
            type: string
          type: array
          title: Redacted Fields
      additionalProperties: false
      type: object
      required:
      - ts
      - actor
      - action
      - resource
      - request_id
      - poolability_reason
      - detail
      - redacted_fields
      title: AuditEntry
    PreferencesView:
      properties:
        notify_usage_alerts:
          type: boolean
          title: Notify Usage Alerts
        notify_billing:
          type: boolean
          title: Notify Billing
        notify_product:
          type: boolean
          title: Notify Product
        notify_security:
          type: boolean
          title: Notify Security
      additionalProperties: false
      type: object
      required:
      - notify_usage_alerts
      - notify_billing
      - notify_product
      - notify_security
      title: PreferencesView
    WorkspaceSettingsView:
      properties:
        workspace_id:
          type: string
          title: Workspace Id
        name:
          type: string
          title: Name
        region:
          type: string
          title: Region
        default_policy:
          type: string
          title: Default Policy
        quality_floor:
          type: number
          title: Quality Floor
        latency_floor_ms:
          anyOf:
          - type: integer
          - type: 'null'
          title: Latency Floor Ms
        allow_fallback:
          type: boolean
          title: Allow Fallback
        caching_enabled:
          type: boolean
          title: Caching Enabled
        semantic_cache:
          type: boolean
          title: Semantic Cache
        semantic_threshold:
          type: number
          title: Semantic Threshold
        cache_ttl:
          type: string
          title: Cache Ttl
        notify_degraded:
          type: boolean
          title: Notify Degraded
        notify_weekly:
          type: boolean
          title: Notify Weekly
        pooled_enabled:
          type: boolean
          title: Pooled Enabled
        stated_volume_bucket:
          anyOf:
          - type: string
          - type: 'null'
          title: Stated Volume Bucket
      additionalProperties: false
      type: object
      required:
      - workspace_id
      - name
      - region
      - default_policy
      - quality_floor
      - latency_floor_ms
      - allow_fallback
      - caching_enabled
      - semantic_cache
      - semantic_threshold
      - cache_ttl
      - notify_degraded
      - notify_weekly
      - pooled_enabled
      - stated_volume_bucket
      title: WorkspaceSettingsView
    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
    CacheData:
      properties:
        window:
          type: string
          title: Window
        summary:
          $ref: '#/components/schemas/CacheSummary'
        trend:
          items:
            $ref: '#/components/schemas/CacheTrendPoint'
          type: array
          title: Trend
        by_class:
          items:
            $ref: '#/components/schemas/CacheByClassRow'
          type: array
          title: By Class
      additionalProperties: false
      type: object
      required:
      - window
      - summary
      - trend
      - by_class
      title: CacheData
    SpendStatus:
      properties:
        scope:
          type: string
          title: Scope
        tenant_id:
          type: string
          title: Tenant Id
        account_id:
          type: string
          title: Account Id
        period:
          type: string
          title: Period
        cap_usd:
          anyOf:
          - type: number
          - type: 'null'
          title: Cap Usd
        current_spend_usd:
          type: number
          title: Current Spend Usd
        pct_used:
          type: number
          title: Pct Used
        state:
          type: string
          title: State
        hard_stop:
          type: boolean
          title: Hard Stop
        is_hard_stopped:
          type: boolean
          title: Is Hard Stopped
      additionalProperties: false
      type: object
      required:
      - scope
      - tenant_id
      - account_id
      - period
      - cap_usd
      - current_spend_usd
      - pct_used
      - state
      - hard_stop
      - is_hard_stopped
      title: SpendStatus
    PlanRates:
      properties:
        gain_share:
          type: number
          title: Gain Share
      additionalProperties: false
      type: object
      required:
      - gain_share
      title: PlanRates
    PreferencesUpdate:
      properties:
        notify_usage_alerts:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Notify Usage Alerts
        notify_billing:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Notify Billing
        notify_product:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Notify Product
        notify_security:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Notify Security
      type: object
      title: PreferencesUpdate
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    Overview:
      properties:
        tenant_id:
          type: string
          title: Tenant Id
        window:
          type: string
          title: Window
        searches:
          type: integer
          title: Searches
        cost_usd:
          type: number
          title: Cost Usd
        cost_per_1k_usd:
          type: number
          title: Cost Per 1K Usd
        cache_savings_usd:
          type: number
          title: Cache Savings Usd
        cache_savings_pct:
          type: number
          title: Cache Savings Pct
        savings_vs_exa_usd:
          type: number
          title: Savings Vs Exa Usd
        cache_hit_rate:
          type: number
          title: Cache Hit Rate
        cache_mix:
          additionalProperties:
            type: integer
          type: object
          title: Cache Mix
        error_rate:
          type: number
          title: Error Rate
        degraded_rate:
          type: number
          title: Degraded Rate
        p50_latency_ms:
          anyOf:
          - type: number
          - type: 'null'
          title: P50 Latency Ms
        p95_latency_ms:
          anyOf:
          - type: number
          - type: 'null'
          title: P95 Latency Ms
      additionalProperties: false
      type: object
      required:
      - tenant_id
      - window
      - searches
      - cost_usd
      - cost_per_1k_usd
      - cache_savings_usd
      - cache_savings_pct
      - savings_vs_exa_usd
      - cache_hit_rate
      - cache_mix
      - error_rate
      - degraded_rate
      - p50_latency_ms
      - p95_latency_ms
      title: Overview
    RoutingData:
      properties:
        policy:
          type: string
          title: Policy
        description:
          type: string
          title: Description
        rules:
          items:
            $ref: '#/components/schemas/RoutingRule'
          type: array
          title: Rules
        vs_always_exa_savings_pct:
          type: number
          title: Vs Always Exa Savings Pct
      additionalProperties: false
      type: object
      required:
      - policy
      - description
      - rules
      - vs_always_exa_savings_pct
      title: RoutingData
    WorkspaceSettingsUpdate:
      properties:
        name:
          anyOf:
          - type: string
            maxLength: 255
          - type: 'null'
          title: Name
        region:
          anyOf:
          - type: string
            maxLength: 32
          - type: 'null'
          title: Region
        default_policy:
          anyOf:
          - type: string
          - type: 'null'
          title: Default Policy
        quality_floor:
          anyOf:
          - type: number
            maximum: 1.0
            minimum: 0.0
          - type: 'null'
          title: Quality Floor
        latency_floor_ms:
          anyOf:
          - type: integer
            minimum: 0.0
          - type: 'null'
          title: Latency Floor Ms
        allow_fallback:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Allow Fallback
        caching_enabled:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Caching Enabled
        semantic_cache:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Semantic Cache
        semantic_threshold:
          anyOf:
          - type: number
            maximum: 1.0
            minimum: 0.0
          - type: 'null'
          title: Semantic Threshold
        cache_ttl:
          anyOf:
          - type: string
            maxLength: 16
          - type: 'null'
          title: Cache Ttl
        notify_degraded:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Notify Degraded
        notify_weekly:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Notify Weekly
        stated_volume_bucket:
          anyOf:
          - type: string
            maxLength: 32
          - type: 'null'
          title: Stated Volume Bucket
      type: object
      title: WorkspaceSettingsUpdate
    ProfileView:
      properties:
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        email:
          type: string
          title: Email
        role:
          type: string
          title: Role
      additionalProperties: false
      type: object
      required:
      - name
      - email
      - role
      title: ProfileView
    QuotaStatus:
      properties:
        scope:
          type: string
          title: Scope
        tenant_id:
          type: string
          title: Tenant Id
        api_key_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Api Key Id
        period:
          type: string
          title: Period
        limit:
          anyOf:
          - type: integer
          - type: 'null'
          title: Limit
        used:
          type: integer
          title: Used
        pct_used:
          type: number
          title: Pct Used
        state:
          type: string
          title: State
      additionalProperties: false
      type: object
      required:
      - scope
      - tenant_id
      - api_key_id
      - period
      - limit
      - used
      - pct_used
      - state
      title: QuotaStatus
    CacheByClassRow:
      properties:
        class:
          type: string
          title: Class
        hit_rate:
          type: number
          title: Hit Rate
        private:
          type: integer
          title: Private
        pooled:
          type: integer
          title: Pooled
        semantic:
          type: integer
          title: Semantic
        miss:
          type: integer
          title: Miss
      additionalProperties: false
      type: object
      required:
      - class
      - hit_rate
      - private
      - pooled
      - semantic
      - miss
      title: CacheByClassRow
    ProfileUpdate:
      properties:
        name:
          anyOf:
          - type: string
            maxLength: 255
          - type: 'null'
          title: Name
      type: object
      title: ProfileUpdate
    OnboardingState:
      properties:
        onboarding_completed:
          type: boolean
          title: Onboarding Completed
      additionalProperties: false
      type: object
      required:
      - onboarding_completed
      title: OnboardingState
    MetricBucket:
      properties:
        key:
          type: string
          title: Key
        searches:
          type: integer
          title: Searches
        cost_usd:
          type: number
          title: Cost Usd
        cost_per_1k_usd:
          type: number
          title: Cost Per 1K Usd
        savings_vs_exa_usd:
          type: number
          title: Savings Vs Exa Usd
        cache_hit_rate:
          type: number
          title: Cache Hit Rate
      additionalProperties: false
      type: object
      required:
      - key
      - searches
      - cost_usd
      - cost_per_1k_usd
      - savings_vs_exa_usd
      - cache_hit_rate
      title: MetricBucket
    AuditPage:
      properties:
        tenant_id:
          type: string
          title: Tenant Id
        limit:
          type: integer
          title: Limit
        offset:
          type: integer
          title: Offset
        entries:
          items:
            $ref: '#/components/schemas/AuditEntry'
          type: array
          title: Entries
      additionalProperties: false
      type: object
      required:
      - tenant_id
      - limit
      - offset
      - entries
      title: AuditPage
    PlanView:
      properties:
        tier:
          type: string
          title: Tier
        has_active_billing:
          type: boolean
          title: Has Active Billing
        can_switch_to:
          items:
            type: string
          type: array
          title: Can Switch To
        rates:
          $ref: '#/components/schemas/PlanRates'
      additionalProperties: false
      type: object
      required:
      - tier
      - has_active_billing
      - can_switch_to
      - rates
      title: PlanView
    CacheTrendPoint:
      properties:
        day:
          type: string
          title: Day
        hit_rate:
          type: number
          title: Hit Rate
        private:
          type: integer
          title: Private
        pooled:
          type: integer
          title: Pooled
        semantic:
          type: integer
          title: Semantic
        miss:
          type: integer
          title: Miss
      additionalProperties: false
      type: object
      required:
      - day
      - hit_rate
      - private
      - pooled
      - semantic
      - miss
      title: CacheTrendPoint
    RoutingRule:
      properties:
        class:
          type: string
          title: Class
        engine_order:
          items:
            type: string
          type: array
          title: Engine Order
        selected_engine:
          type: string
          title: Selected Engine
        cost_per_1k:
          type: number
          title: Cost Per 1K
        quality_floor:
          type: string
          title: Quality Floor
        latency_floor_ms:
          type: integer
          title: Latency Floor Ms
      additionalProperties: false
      type: object
      required:
      - class
      - engine_order
      - selected_engine
      - cost_per_1k
      - quality_floor
      - latency_floor_ms
      title: RoutingRule
    PlanChangeRequest:
      properties:
        target_tier:
          type: string
          title: Target Tier
      additionalProperties: false
      type: object
      required:
      - target_tier
      title: PlanChangeRequest
    GovernanceView:
      properties:
        tenant_id:
          type: string
          title: Tenant Id
        spend:
          items:
            $ref: '#/components/schemas/SpendStatus'
          type: array
          title: Spend
        tenant_quota:
          anyOf:
          - $ref: '#/components/schemas/QuotaStatus'
          - type: 'null'
        agent_quota:
          anyOf:
          - $ref: '#/components/schemas/QuotaStatus'
          - type: 'null'
      additionalProperties: false
      type: object
      required:
      - tenant_id
      - spend
      - tenant_quota
      - agent_quota
      title: GovernanceView
    CacheSummary:
      properties:
        total_requests:
          type: integer
          title: Total Requests
        hit_rate:
          type: number
          title: Hit Rate
        private_hits:
          type: integer
          title: Private Hits
        pooled_hits:
          type: integer
          title: Pooled Hits
        semantic_hits:
          type: integer
          title: Semantic Hits
        misses:
          type: integer
          title: Misses
        cache_savings_usd:
          type: number
          title: Cache Savings Usd
        cache_savings_pct:
          type: number
          title: Cache Savings Pct
        savings_usd:
          type: number
          title: Savings Usd
        savings_pct:
          type: number
          title: Savings Pct
        avg_latency_saved_ms:
          type: number
          title: Avg Latency Saved Ms
      additionalProperties: false
      type: object
      required:
      - total_requests
      - hit_rate
      - private_hits
      - pooled_hits
      - semantic_hits
      - misses
      - cache_savings_usd
      - cache_savings_pct
      - savings_usd
      - savings_pct
      - avg_latency_saved_ms
      title: CacheSummary