---
title: "List monitors"
method: GET
path: "/internal/v1/monitors/{project_id}"
tags: ["Monitors"]
---

# List monitors

`GET /internal/v1/monitors/{project_id}`

List monitoring rules and alerts configured in Uptrace. Use this to review alert configurations, check notification channels, and understand monitoring thresholds. Returns monitors with their type, state, query, and notification settings. Use list_dashboards instead when looking for visualization dashboards. Documentation: https://uptrace.dev/features/alerting

## Path parameters

- `project_id` integer, required

## Query parameters

- `search` string
- `status` string
- `sort_by` string
- `sort_dir` 'ASC' | 'DESC' — Sort direction.
- `limit` integer

## Response `200`

List of monitors.

- object
  - `monitors` Monitor[], required
    - `id` integer, required
    - `projectId` integer
    - `key` string — Deduplication key set when the monitor is created from a YAML dashboard template. Empty for monitors created via the UI. When non-empty, (project_id, key) is unique.
    - `name` string, required
    - `isNameTemplated` boolean — True when the name contains template placeholders that are expanded at evaluation time.
    - `type` 'metric' | 'error', required
    - `status` 'active' | 'paused' | 'firing' | 'no_data' | 'disabled', required
    - `pausedUntil` number — Unix timestamp (nanoseconds) until which the monitor is paused. Set when status=paused.
    - `error` string — Last error message that caused the monitor to be disabled. Set when status=disabled.
    - `notifyEveryoneByEmail` boolean
    - `teamIds` integer[]
    - `channelIds` integer[]
    - `repeatInterval` union — Monitor repeat interval configuration.
      - object
        - `strategy` 'default'
      - object
        - `strategy` 'fixed', required
        - `interval` number, required — Fixed interval in milliseconds.
      - object
        - `strategy` 'linear', required
        - `min` number, required — Minimum interval in milliseconds.
        - `max` number, required — Maximum interval in milliseconds.
      - object
        - `strategy` 'exponential', required
        - `min` number, required — Minimum interval in milliseconds.
        - `max` number, required — Maximum interval in milliseconds.
    - `params` object
    - `trendAggFunc` 'sum' | 'avg' | 'median' | 'last' — Aggregation function used to compute the trend baseline.
    - `trendSensitivity` 'low' | 'medium' | 'high' — Sensitivity level of the trend-based anomaly detector.
    - `trendUpdatedAt` number — Unix timestamp (nanoseconds) when the trend baseline was last refreshed.
    - `createdAt` number
    - `updatedAt` number
    - `checkedAt` number — Unix timestamp (nanoseconds) when the monitor was last evaluated.
    - `nextCheckTime` number — Unix timestamp (nanoseconds) when the monitor is scheduled to be evaluated next.
  - `statuses` MonitorStatusCount[] — Per-status monitor counts across the project (ignores the status filter).
    - `status` string, required
    - `count` integer, required
  - `count` integer — Total number of monitors matching the current filter.
  - `search` object[] — Parsed search matchers applied to the request.

## Other responses

- `400` — Invalid request
- `401` — Authentication required
- `403` — Insufficient permissions
- `500` — Internal server error

---

[API](https://skmtc.net/uptrace/apis/uptrace-json-api.md) · [All operations](https://skmtc.net/uptrace/apis/uptrace-json-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/uptrace/uptrace-json-api/revisions/550c8881ab9a/schema)
