---
title: "Reorder monitors"
method: POST
path: "/monitors/reorder"
tags: ["Monitors"]
---

# Reorder monitors

`POST /monitors/reorder`

## Request

- Base URL: `https://app.getorchestra.io/api/engine/public`
- URL: `https://app.getorchestra.io/api/engine/public/monitors/reorder`
- Auth: one of:
  - HTTP bearer
  - OAuth 2
    - Authorization code: `https://app.getorchestra.io/oauth/authorize`
    - Token URL: `https://app.getorchestra.io/oauth/token` scopes: `orchestra:write`

Set the evaluation order of the workspace's monitors. `monitorIds` must name every monitor exactly once; each monitor's `order` becomes its position in the list.

## Headers

- `X-Orchestra-Account-Id` string, uuid4, nullable

## Request body

- ReorderMonitorsRequest: Every monitor on the account, in the order they should be evaluated.
  - `monitorIds` string[], required

## Response `200`

Successful Response

- MonitorResponse[]
  - `monitorId` string, uuid4, required
  - `definition` MonitorDefinition, required: One monitor, as authored. ``order`` breaks the tie where two monitors both claim an event, lower winning. Left out, a new monitor goes last and an edited one keeps its place, so creating a monitor never silently takes events an existing one claims. Overlap is not rejected here: match sets are dynamic, so two monitors that do not overlap today may overlap tomorrow when an asset appears.
    - `name` string, required
    - `description` string, nullable
    - `enabled` boolean
    - `order` integer, nullable
    - `match` MonitorMatch, required: Which events a monitor claims: AND across dimensions, OR within a list. At least one dimension has to be given. A monitor matching every dimension by saying nothing would claim every event on the account, which is never what an author means.
      - `pipelines` string[]
      - `assets` string[]
      - `connections` string[]
      - `integrations` IntegrationsEnum[]
      - `labels` object
      - `operationFailuresOnly` boolean
    - `groupBy` union[], required
      - union
        - 'asset' | 'task' | 'pipeline' | 'connection' | 'monitor' | 'downstream_assets': What makes two events this monitor claimed one incident. Every value but ``MONITOR`` resolves to a typed column that already exists on ``incident_events``. ``MONITOR`` means "everything this monitor claims is one incident", which is served by ``monitor_id`` on the incident instead.
        - GroupByLabel: A place on an event body to group on. ``label`` is what the incident's name and alert call the value found at ``path``.
          - `label` string, required
          - `path` string, required
    - `trigger` MonitorTrigger: The threshold a counting monitor fires on. Its presence is what makes the monitor a threshold monitor, so there is no separate kind field.
      - `count` integer, required
      - `within` string, duration, required
    - `action` MonitorAction: What happens to the events this monitor claimed. ``mute`` claims them and sends no alert - the known-broken-thing case. They are still recorded, on incidents the monitor owns, so a mute is silent without being invisible.
      - `mute` boolean
      - `severity` 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW'
      - `assignee` string, nullable
      - `subscribers` string[]
      - `alerts` MonitorAlerts: Where this monitor's incidents alert. How many alerts one may send and when it re-alerts stay account-wide in ``IncidentSettings``. ``destinations`` left out inherits the pipeline's own; given, it replaces them, so an author redirecting alerts does not double-send by default.
        - `destinations` AlertDestinationModel[], nullable
          - `integration` 'EMAIL' | 'DATADOG' | 'MICROSOFT_TEAMS' | 'PAGER_DUTY' | 'SLACK' | 'WEBHOOK', required
          - `destination` string, nullable
          - `connectionId` string, nullable
          - `parameters` union
            - BaseDatadogNotificationParametersModel
              - …
            - WebhookAlertParametersModel
              - …
        - `alsoSendToPipelineDestinations` boolean
  - `createdAt` string, required
  - `createdBy` string, uuid4, required
  - `updatedAt` string, required
  - `updatedBy` string, uuid4, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-11-03** `e45165e7e223`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/getorchestra/apis/orchestra-api/changes/monitors/reorder/post.md)

---

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