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

# Paginated event log



## OpenAPI

````yaml /api-reference/openapi-runtime-security.yaml get /api/runtime-security/events
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/events:
    get:
      tags:
        - Analytics
      summary: Paginated event log
      operationId: getEvents
      parameters:
        - name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 500
            default: 50
        - name: before_uuid
          in: query
          schema:
            type: string
          description: Cursor — returns events older than this event UUID.
        - name: verdict
          in: query
          schema:
            type: string
            enum:
              - allow
              - flag
              - redact
              - block
        - name: direction
          in: query
          schema:
            type: string
            enum:
              - input
              - output
              - tool_call
      responses:
        '200':
          description: Page of events
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventsPage'
components:
  schemas:
    EventsPage:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Event'
        next_cursor:
          type: string
          nullable: true
    Event:
      type: object
      properties:
        uuid:
          type: string
        created_at:
          type: string
          format: date-time
        direction:
          type: string
          enum:
            - input
            - output
            - tool_call
        verdict:
          type: string
          enum:
            - allow
            - flag
            - redact
            - block
        injection_score:
          type: number
        injection_label:
          type: string
          nullable: true
        pii_count:
          type: integer
        pii_categories:
          type: array
          items:
            type: string
        text_length:
          type: integer
        latency_ms:
          type: integer
        source_app:
          type: string
          nullable: true
        provider:
          type: string
          nullable: true
        model:
          type: string
          nullable: true
        client_ip:
          type: string
          nullable: true
        blocked_reason:
          type: string
          nullable: true
        metadata:
          type: object
          additionalProperties: true
  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.

````