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

# List monitors

> Returns the monitors visible to the caller, newest first. A human filtering by project sees that project's monitors plus workspace-wide monitors. A project-scoped API key sees only monitors in its strict project scope. Use `starting_after` or `ending_before` to page.



## OpenAPI

````yaml get /v2/monitors
openapi: 3.1.0
info:
  title: Toqan Router API
  version: '2.0'
  description: Toqan Router API documentation
servers:
  - url: https://router.toqan.ai/eu
    description: Frankfurt (Europe)
  - url: https://router.toqan.ai/br
    description: São Paulo (Brazil)
security:
  - ApiKey: []
tags:
  - description: >-
      API keys authenticate programmatic access to the workspace. They expose
      opaque tokens, per-domain access grants, and budget and rate-limit
      constraints.
    name: API keys
  - name: Logs
    description: >-
      OpenTelemetry log query API. Search, filter, aggregate, and facet log
      records ingested via OTLP.
  - name: Reporting
    description: >-
      GenAI reporting API over canonical analytics rollups. Accepts a metric
      name, time range, grain, group-by, and filters; returns a typed time
      series and optional totals.
  - name: Telemetry
    description: >-
      Unified query envelope for traces, metrics, and logs. One request shape,
      one filter dialect, and one response shape per source, validated by a
      per-source registry.
  - name: Traces
    description: >-
      Query and inspect ingested trace data: search trace summaries, aggregate
      metrics, and read individual traces and their spans.
  - name: Views
    description: Saved filters and columns for workspace observability pages.
  - description: List models available through the AI Router.
    name: Models
  - name: Alerts
    description: >-
      Alerts evaluate a telemetry metric on a fixed interval and fire
      notifications through notifiers when the value breaches a threshold. Each
      breach opens a trigger that tracks the incident until the value recovers.
  - name: Annotation Queues
    description: Annotation queues collect spans for human review.
  - name: Budgets
    description: >-
      Budgets govern spend, token usage, and request rate across six scopes:
      workspace, project, identity, API key, provider, and model. Every
      applicable budget is enforced, and the most restrictive limit applies per
      dimension.
  - name: Files
    description: File upload and retrieval operations.
  - name: Guardrail Rules
    description: >-
      Guardrail Rules conditionally enforce evaluators and plugins for AI
      Gateway traffic. Rules may be scoped to a project or the whole workspace.
  - name: Identities
    description: >-
      Identities represent end users from your system for usage and engagement
      tracking.
  - name: Management keys
    description: >-
      Management keys are workspace-scoped credentials that authenticate
      programmatic access to workspace administration surfaces (API keys,
      budgets). Unlike project-scoped API keys, a management key always operates
      at the workspace level.
  - name: MCP Gateway
    description: >-
      Register upstream MCP servers, discover and sync their tools, and assemble
      gateways that expose a curated tool surface to MCP clients.
  - name: Model Catalog
    description: >-
      Browse the Toqan Router model catalog: every model Toqan Router offers,
      across every provider, with pricing, capabilities and benchmark data. List
      endpoints only return models that are not deprecated. This API is public,
      requires no authentication, and is rate limited to 120 requests per minute
      per IP. Responses carry a 5-minute cache-control max-age.
  - name: Monitors
    description: >-
      Monitors are custom observability dashboards for traces, runtime metrics,
      and logs. Each monitor holds widgets that chart one telemetry query. List
      the metrics, operations, and dimensions available to your workspace with
      `GET /v3/telemetry/capabilities`, or start from a preset with `GET
      /v2/monitors/presets`.
  - name: Notifiers
    description: Notifier destinations used to send delivery and workflow notifications.
  - name: Routing Rules
    description: >-
      Routing Rules conditionally select models and enforce request plugins for
      AI Gateway traffic. Rules are evaluated by ascending priority and may be
      scoped to a project or the whole workspace.
  - name: Threads
    description: Threads group related trace invocations and their aggregate usage
  - name: Smart Routers
    description: >-
      Create and manage workspace Smart Routers. A Smart Router selects a model
      from an eligible pool for each request according to a quality, balanced,
      or cost profile.
  - name: Responses
  - name: Embeddings
  - description: Beta. Run typed classification questions against a classify model.
    name: Classify
  - description: Beta. Run classification decisions with the classify contract.
    name: Decisions
  - description: >-
      Run large offline workloads as JSONL batches and download
      OpenAI-compatible result files.
    name: Batches
paths:
  /v2/monitors:
    get:
      tags:
        - Monitors
      summary: List monitors
      description: >-
        Returns the monitors visible to the caller, newest first. A human
        filtering by project sees that project's monitors plus workspace-wide
        monitors. A project-scoped API key sees only monitors in its strict
        project scope. Use `starting_after` or `ending_before` to page.
      operationId: MonitorList
      parameters:
        - name: limit
          in: query
          description: Page size, 1-200. Unset uses the server default (25).
          schema:
            type: integer
            format: int32
        - name: starting_after
          in: query
          description: |-
            Cursor for forward pagination. Set to the `monitor_id` of the last
             item from the previous page.
          schema:
            type: string
        - name: ending_before
          in: query
          description: |-
            Cursor for backward pagination. Set to the `monitor_id` of the
             first item from the previous page.
          schema:
            type: string
        - name: project_id
          in: query
          description: >-
            Restrict results to one project. Human callers also see
            workspace-wide
             monitors; a project-scoped API key sees only its strict project scope.
          schema:
            type: string
        - name: search
          in: query
          description: Case-insensitive substring match on display name and description.
          schema:
            type: string
        - name: workspace_wide
          in: query
          description: >-
            Restrict results by scope. Set true for workspace-wide monitors
            only,
             false for project-scoped monitors only; omit to return both.
          schema:
            type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListMonitorsResponse'
        '401':
          description: >-
            Authentication required. See
            https://router.toqan.ai/docs/reference/errors for the error codes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - ApiKey: []
      x-code-samples: []
components:
  schemas:
    ListMonitorsResponse:
      required:
        - object
        - data
        - has_more
      type: object
      properties:
        object:
          type: string
          description: Object discriminator for list responses; always `list`.
        data:
          type: array
          items:
            $ref: '#/components/schemas/Monitor'
          description: Page of monitors, ordered newest first.
        has_more:
          type: boolean
          description: |-
            Whether more monitors are available in the selected pagination
             direction.
    ErrorResponse:
      type: object
      properties:
        message:
          type: string
          description: Human-readable error message.
        code:
          type: integer
          description: Numeric error code, when one is available.
        details:
          type: array
          items: {}
          description: Additional error details, when the service reports any.
      required:
        - message
    Monitor:
      required:
        - monitor_id
        - display_name
        - description
        - project_id
        - widgets
        - preset_key
        - created_at
        - updated_at
        - created_by_id
        - updated_by_id
      type: object
      properties:
        monitor_id:
          type: string
          description: |-
            Unique monitor identifier assigned by Toqan Router, for example
             `monitor_01H...`. Use this value in retrieve, update, and delete
             requests.
        display_name:
          type: string
          description: Workspace-unique display name.
        description:
          type: string
          description: Short human-readable summary of what the monitor tracks.
        project_id:
          type: string
          description: >-
            Project that owns the monitor. Empty for workspace-wide monitors
            (admin-managed). Immutable after creation.
        widgets:
          type: array
          items:
            $ref: '#/components/schemas/MonitorWidget'
          description: |-
            Widgets rendered on the monitor, each carrying its own query and
             layout position.
        default_range:
          enum:
            - 5m
            - 15m
            - 30m
            - 1h
            - 6h
            - 12h
            - 1d
            - 7d
            - 14d
            - 30d
            - 60d
            - 90d
          type: string
          description: Default relative time range applied when the monitor opens.
        preset_key:
          type: string
          description: Preset this monitor was created from. Empty when built from scratch.
        created_at:
          type: string
          description: Time when the monitor was created.
          format: date-time
        updated_at:
          type: string
          description: Time when the monitor was last updated.
          format: date-time
        created_by_id:
          type: string
          description: User ID that created the monitor.
        updated_by_id:
          type: string
          description: User ID that last updated the monitor.
    MonitorWidget:
      required:
        - widget_id
        - type
        - title
        - queries
        - layout
      type: object
      properties:
        widget_id:
          type: string
          description: |-
            Widget identifier, unique within the monitor. Provide your own or
             leave empty to have the server assign one.
        type:
          enum:
            - timeseries
            - toplist
            - table
            - bignumber
            - donut
            - breakdown
          type: string
          description: Widget rendering type.
        title:
          type: string
          description: Title shown in the widget header.
        queries:
          type: array
          items:
            $ref: '#/components/schemas/MonitorWidgetQuery'
          description: |-
            The one query feeding the widget. It maps onto QueryTelemetry; the
             viewer's time range, time zone, and the query mode derived from the
             widget type are supplied at render time.
        display:
          description: >-
            Display options such as visualization style and unit. `null` when
            none are saved.
          anyOf:
            - allOf:
                - $ref: '#/components/schemas/MonitorWidgetDisplay'
            - type: 'null'
        layout:
          allOf:
            - $ref: '#/components/schemas/MonitorWidgetLayout'
          description: Position and size on the monitor grid.
    MonitorWidgetQuery:
      required:
        - metric
      type: object
      properties:
        source:
          $ref: '#/components/schemas/MonitorTelemetrySource'
          description: Source queried through QueryTelemetry.
        metric:
          type: string
          description: |-
            Source-owned metric identifier. Static `genai.*` trace metrics are
             validated when saved; runtime metrics, logs, and raw trace aggregates
             are validated by the caller-scoped telemetry capability/query service.
        operation:
          type: string
          description: >-
            Source-owned aggregation operation advertised by telemetry
            capabilities.
        group_by:
          type: array
          items:
            type: string
          description: |-
            Reporting dimensions to break down by. Valid dimensions depend on
             the metric; validated when the monitor is saved.
        filters:
          type: array
          items:
            $ref: '#/components/schemas/MonitorFilter'
          description: Reporting filters combined with AND.
        grain:
          enum:
            - auto
            - minute
            - hour
            - day
          type: string
          description: Requested bucket grain for timeseries widgets.
        limit:
          type: integer
          description: >-
            Row cap. Zero uses the reporting default. For toplist widgets this
            is the top-N group count.
          format: int32
        additional_computes:
          type: array
          items:
            $ref: '#/components/schemas/MonitorWidgetCompute'
          description: |-
            Extra computes for breakdown widgets, rendered as columns after the
             primary `metric`/`operation`, which drives sorting. They share the
             query's source, grouping, and filters.
    MonitorWidgetDisplay:
      type: object
      properties:
        visualization:
          enum:
            - lines
            - bars
            - area
          type: string
          description: Chart style for timeseries widgets.
        unit:
          enum:
            - count
            - cost
            - duration
            - percent
            - bytes
          type: string
          description: Unit used for axis and value formatting.
        sort:
          enum:
            - desc
            - asc
          type: string
          description: Value ordering for toplist, table and breakdown widgets.
        show_overall:
          type: boolean
          description: >-
            When true, toplist, table and breakdown widgets also show the
            overall
             total across all groups for the window.
        target:
          type: number
          description: Optional threshold line rendered on timeseries widgets.
          format: double
        decimals:
          type: integer
          description: Decimal places used when formatting values.
          format: int32
        show_others:
          type: boolean
          description: >-
            When true, toplist and donut widgets show the combined value of
            groups
             outside the configured limit.
        show_percentages:
          type: boolean
          description: >-
            When true, toplist and donut widget values are shown as a percentage
            of
             the overall total.
    MonitorWidgetLayout:
      required:
        - x
        - 'y'
        - w
        - h
      type: object
      properties:
        x:
          type: integer
          description: Column offset in grid units.
          format: int32
        'y':
          type: integer
          description: Row offset in grid units.
          format: int32
        w:
          type: integer
          description: Width in grid units.
          format: int32
        h:
          type: integer
          description: Height in grid units.
          format: int32
    MonitorTelemetrySource:
      type: string
      enum:
        - MONITOR_TELEMETRY_SOURCE_TRACES
        - MONITOR_TELEMETRY_SOURCE_METRICS
        - MONITOR_TELEMETRY_SOURCE_LOGS
    MonitorFilter:
      required:
        - field
        - op
        - values
      type: object
      properties:
        field:
          type: string
          description: |-
            Reporting dimension to filter on. Valid fields depend on the
             metric; validated when the monitor is saved.
        op:
          enum:
            - eq
            - neq
            - in
            - not_in
            - gt
            - gte
            - lt
            - lte
            - between
            - contains
            - exists
            - not_exists
          type: string
          description: >-
            Predicate operator. `eq` and `neq` accept exactly one value; `in`
            and `not_in` accept 1-100 values.
        values:
          type: array
          items:
            type: string
          description: Values compared against the selected field.
    MonitorWidgetCompute:
      required:
        - metric
        - operation
      type: object
      properties:
        metric:
          type: string
          description: Source-owned metric identifier.
        operation:
          type: string
          description: >-
            Source-owned aggregation operation advertised by telemetry
            capabilities.
  securitySchemes:
    ApiKey:
      type: http
      scheme: bearer
      bearerFormat: JWT

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.