---
title: "List monitors"
method: GET
path: "/api/monitors"
tags: ["monitors"]
---

# List monitors

`GET /api/monitors`

## Request

- Base URL: `https://cronitor.io`
- URL: `https://cronitor.io/api/monitors`
- Auth: HTTP basic

## Query parameters

- `env` string
- `format` 'yaml'
- `group` string
- `page` integer
- `pageSize` integer
- `search` string
- `site` string
- `sort` '-created' | '-name' | 'created' | 'name'
- `state` string[]
- `tag` string[]
- `type` string[]
- `withEvents` boolean
- `withInvocations` boolean
- `withStatus` boolean

## Headers

- `Cronitor-Version` '2025-11-28' | '2020-10-01'

## Response `200`

- MonitorPage
  - `monitors` Monitor[], required
    - `attributes` object, nullable, required: Values derived from the monitor configuration.
    - `assertions` string[], nullable: Assertions such as "response.code = 200" or "metric.queue_depth < 100".
    - `created` string, date-time, required
    - `disabled` boolean, required
    - `failure_tolerance` integer, nullable: Failures tolerated before an alert. Default 0.
    - `grace_seconds` integer, nullable: Seconds to wait after a missed or late event before alerting.
    - `consecutive_alert_threshold` integer
    - `group` string, nullable: Group key.
    - `initialized` boolean, nullable, required: Whether the monitor has received telemetry.
    - `key` string, nullable: Unique monitor key. Required when creating a monitor.
    - `latest_event` Event, required
      - `stamp` number, double, required
      - `msg` string, nullable, required: Event message. Null when the event has none.
      - `event` 'req-ok' | 'req-fail' | 'req-trig' | 'run' | 'complete' | 'fail' | 'ok' | 'pause' | 'tick' | 'logs' | 'skipped', required: * `req-ok` - req-ok * `req-fail` - req-fail * `req-trig` - req-trig * `run` - run * `complete` - complete * `fail` - fail * `ok` - ok * `pause` - pause * `tick` - tick * `logs` - logs * `skipped` - skipped
      - `metrics` object, required: Built-in and custom metric values, such as {"duration": 1.25, "queue_depth": 12}. An empty object when the event has none.
      - `client` string, nullable, required: Client that sent the event. Null when unknown.
      - `host` string, nullable, required: Host that sent the event. Null when unknown.
      - `ip` string, required
    - `latest_events` object, nullable, required: Latest event of each kind, keyed by event name. Present with withEvents=true.
    - `latest_issue` object, nullable, required
      - `stamp` number: Unix timestamp the issue started.
      - `state` string
    - `latest_invocations` object[], nullable, required: Present with withInvocations=true.
    - `metric_names` string[], nullable, required
    - `badges` object, nullable, required
      - `simple` string, uri
      - `detailed` string, uri
    - `metadata` string, nullable
    - `name` string
    - `next_expected_at` number, nullable, required: Unix timestamp of the next scheduled run. Null when the monitor has no schedule. May include fractional seconds.
    - `note` string, nullable
    - `notify` union: Notification list keys or inline destinations such as "email:ops@example.com". Omit to use the default list.
      - string[]
      - object
        - `alerts` string[]
        - `events` union: true alerts on every tick. Otherwise run and complete flags.
          - boolean
          - object
            - `run` boolean
            - `complete` boolean
    - `passing` boolean, nullable, required: Present when the request has withStatus=true (the default).
    - `paused` boolean
    - `platform` string, nullable
    - `realert_interval` union: How often to repeat an alert, for example "8 hours", or seconds.
      - integer
      - string
    - `request` object, nullable: The request a check monitor makes. Required when type is check.
      - `url` string: http(s) URL for an HTTP check, or host:port for TCP and UDP.
      - `method` 'GET' | 'POST' | 'PUT' | 'PATCH' | 'HEAD' | 'TCP' | 'UDP': HTTP method, or TCP or UDP.
      - `body` string, nullable: Request body. Null when the check sends none.
      - `headers` object
      - `cookies` object
      - `timeout_seconds` integer: Seconds before the check times out. Free plans allow up to 30; paid plans allow up to 60.
      - `regions` string[]
      - `follow_redirects` boolean
      - `verify_ssl` boolean
      - `use_ipv6` boolean
    - `running` boolean, nullable, required: Present when the request has withStatus=true (the default).
    - `schedules` string[], nullable: Cron expressions, intervals such as "every 5 minutes", or RRULEs.
    - `schedule_tolerance` integer, nullable: Missed runs tolerated before an alert. Default 0.
    - `tags` string[], nullable
    - `timezone` string, nullable: IANA timezone. Defaults to the account timezone.
    - `type` 'job' | 'heartbeat' | 'check' | 'site'
    - `environments` string[]
    - `statuspages` string[]: Status page keys.
    - `site` string, nullable: RUM site key.
  - `page` integer, required
  - `page_size` integer, required
  - `total_monitor_count` integer, required
  - `version` string, required

## Other responses

- `400`: Validation errors, keyed by field.

---

[API](https://skmtc.dev/cronitor/apis/cronitor-api.md) - [All operations](https://skmtc.dev/cronitor/apis/cronitor-api/llms.txt) - [OpenAPI document](https://skmtc.dev/cronitor/apis/cronitor-api/revisions/62fb38ef4462?raw)
