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

# Aggregate verdict / latency / PII stats over a time window



## OpenAPI

````yaml /api-reference/openapi-runtime-security.yaml get /api/runtime-security/analytics
openapi: 3.1.0
info:
  title: Blindsight Runtime Security API
  version: 1.0.0
  summary: LLM firewall — prompt-injection, PII, and agent tool-call protection.
  description: |
    Drop-in firewall for LLM traffic. Three integration modes:

      * **Scan API** — explicit `/scan/input` and `/scan/output` calls.
      * **Reverse proxy** — wire-compatible with the OpenAI and Anthropic
        SDKs; swap the SDK's `base_url` to enable scanning at the network
        boundary.
      * **Tool-call scan** — sub-millisecond regex check on agent tool
        arguments before execution.

    See `runtime-security-guide.md` for prose docs, SDK examples, and a
    walk-through of verdicts and configuration.
  contact:
    name: Blindsight Support
    url: https://blindsight.example.com/support
  license:
    name: Proprietary
servers:
  - url: https://api.blindsight.example.com
    description: Production
  - url: https://api.staging.blindsight.example.com
    description: Staging
security:
  - ApiKeyAuth: []
  - BlindsightKeyAuth: []
  - SessionCookieAuth: []
tags:
  - name: Scan
    description: Single-call scan endpoints for input, output, batch, and tool calls.
  - name: Proxy
    description: Wire-compatible reverse-proxy endpoints for OpenAI and Anthropic.
  - name: Configuration
    description: Workspace-scoped firewall settings.
  - name: Analytics
    description: Read-only analytics, event log, and drift dashboard endpoints.
  - name: Health
    description: Liveness and ECS service status.
paths:
  /api/runtime-security/analytics:
    get:
      tags:
        - Analytics
      summary: Aggregate verdict / latency / PII stats over a time window
      operationId: getAnalytics
      parameters:
        - name: days
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 3650
            default: 14
          description: Lookback window in days. Ignored if `minutes` is set.
        - name: minutes
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 5256000
          description: Lookback window in minutes (overrides `days`).
      responses:
        '200':
          description: Aggregates
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalyticsResponse'
components:
  schemas:
    AnalyticsResponse:
      type: object
      properties:
        range_days:
          type: integer
        range_minutes:
          type: integer
        bucket_seconds:
          type: integer
        totals:
          type: object
          properties:
            total:
              type: integer
            input:
              type: integer
            output:
              type: integer
            tool_call:
              type: integer
            pii_hits:
              type: integer
            injection_hits:
              type: integer
        verdict_breakdown:
          type: object
          properties:
            allow:
              type: integer
            redact:
              type: integer
            block:
              type: integer
        avg_latency_ms:
          type: number
        p95_latency_ms:
          type: number
        pii_category_breakdown:
          type: object
          additionalProperties:
            type: integer
        top_injection_labels:
          type: array
          items:
            type: object
            properties:
              label:
                type: string
              count:
                type: integer
        series:
          type: array
          items:
            type: object
            properties:
              date:
                type: string
                format: date
              allow:
                type: integer
              redact:
                type: integer
              block:
                type: integer
              total:
                type: integer
        model_name:
          type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: |
        Blindsight workspace API key (`ak_live_…`). Use this header for the
        scan API and the OpenAI proxy routes. The required permission
        scope is `runtime_security.scan` for scan endpoints,
        `runtime_security.view` for read-only analytics, and
        `runtime_security.manage` for configuration changes.
    BlindsightKeyAuth:
      type: apiKey
      in: header
      name: X-Blindsight-Key
      description: |
        Alternative header for Anthropic proxy callers — `x-api-key` is
        reserved for the upstream provider on those routes. Accepts an
        Blindsight API key or `Bearer <jwt>`.
    SessionCookieAuth:
      type: apiKey
      in: cookie
      name: blindsight_session
      description: In-app dashboard session — for browser callers only.

````