---
title: "PATCH /projects/{project_id}/cron-monitors/{monitor_id}"
method: PATCH
path: "/projects/{project_id}/cron-monitors/{monitor_id}"
tags: ["Cron Monitors"]
---

# PATCH /projects/{project_id}/cron-monitors/{monitor_id}

`PATCH /projects/{project_id}/cron-monitors/{monitor_id}`

## Request

- Base URL: `/api` (relative, and the document was published on a file host, not at the API’s origin)
- URL: `/api/projects/{project_id}/cron-monitors/{monitor_id}`
- Auth: HTTP bearer

## Path parameters

- `project_id` integer, required
- `monitor_id` integer, required

## Request body

- UpdateCronMonitor
  - `config` MonitorConfig
    - `checkin_margin` integer
    - `failure_issue_threshold` integer
    - `max_runtime` integer
    - `recovery_threshold` integer
    - `schedule` union, required
      - object
        - `type` 'crontab', required
        - `value` string, required
      - object
        - `type` 'interval', required
        - `unit` string, required
        - `value` integer, required
    - `timezone` string
  - `enabled` boolean, nullable

## Response `200`

Success

- CronMonitorView
  - `alarm_id` integer, nullable
  - `config` MonitorConfig
    - `checkin_margin` integer
    - `failure_issue_threshold` integer
    - `max_runtime` integer
    - `recovery_threshold` integer
    - `schedule` union, required
      - object
        - `type` 'crontab', required
        - `value` string, required
      - object
        - `type` 'interval', required
        - `unit` string, required
        - `value` integer, required
    - `timezone` string
  - `configuration_source` string, required: Editing the configuration in Temps makes it authoritative over SDK config.
  - `consecutive_failures` integer, required
  - `consecutive_successes` integer, required
  - `enabled` boolean, required
  - `environment_id` integer, nullable
  - `id` integer, required
  - `last_check_in_at` string, date-time, nullable
  - `next_expected_at` string, date-time, nullable
  - `project_id` integer, required
  - `slug` string, required
  - `status` string, required

## Other responses

- `400`: Invalid configuration
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `409`: Already exists
- `429`: Monitor limit reached
- `500`: Internal error

## Changes

> 81 revisions in range; 1 not diffed.

- **2026-10-21** `bf4d047d0bb8`: 1 info
  - endpoint added
- **2026-10-20** `79089e9f49ee`: 1 breaking
  - api path removed without deprecation
- **2026-10-20** `24add76f6317`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/gotempsh/apis/temps/changes/projects/:project_id/cron-monitors/:monitor_id/patch.md)

---

[API](https://skmtc.dev/gotempsh/apis/temps.md) · [All operations](https://skmtc.dev/gotempsh/apis/temps/llms.txt) · [OpenAPI document](https://skmtc.dev/gotempsh/apis/temps/revisions/ab6d5d19e930?raw)
