---
title: "Update a heartbeat check"
method: PUT
path: "/v1/checks/heartbeat/{id}"
tags: ["Heartbeats"]
---

# Update a heartbeat check

`PUT /v1/checks/heartbeat/{id}`

Updates a Heartbeat check.

## Path parameters

- `id` string, required

## Query parameters

- `autoAssignAlerts` boolean — Determines whether a new check will automatically be added as a subscriber to all existing alert channels when it gets created.

## Headers

- `x-checkly-account` string — Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general

## Request body

- ChecksV1HeartbeatCheckUpdate
  - `name` string — The name of the check.
  - `activated` boolean — Determines if the check is running or not.
  - `muted` boolean — Determines if any notifications will be send out when a check fails and/or recovers.
  - `doubleCheck` boolean — [Deprecated] Retry failed check runs. This property is deprecated, and `retryStrategy` can be used instead.
  - `shouldFail` boolean — Allows to invert the behaviour of when a check is considered to fail. Allows for validating error status like 404.
  - `locations` string[], nullable — An array of one or more data center locations where to run this check.
  - `tags` string[] — Tags for organizing and filtering checks.
  - `alertSettings` object — Alert settings.
    - `escalationType` 'RUN_BASED' | 'TIME_BASED' — Determines what type of escalation to use.
    - `reminders` object
      - `amount` 0 | 1 | 2 | 3 | 4 | 5 | 100000 — How many reminders to send out after the initial alert notification.
      - `interval` 1 | 2 | 3 | 4 | 5 | 10 | 15 | 30 — At what interval the reminders should be send.
    - `sslCertificates` object — [DEPRECATED] `sslCertificates` is deprecated and is not longer used. Please ignore it, will be removed in a future version.
      - `enabled` boolean — Determines if alert notifications should be send for expiring SSL certificates.
      - `alertThreshold` integer — At what moment in time to start alerting on SSL certificates.
    - `runBasedEscalation` object
      - `failedRunThreshold` 1 | 2 | 3 | 4 | 5 — After how many failed consecutive check runs an alert notification should be send.
    - `timeBasedEscalation` object
      - `minutesFailingThreshold` 5 | 10 | 15 | 30 — After how many minutes after a check starts failing an alert should be send.
    - `parallelRunFailureThreshold` object
      - `enabled` boolean — Determines if parallel run threshold is enabled
      - `percentage` 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 — The percentage of parallel runs that should fail before an alert is triggered
  - `useGlobalAlertSettings` boolean — When true, the account level alert setting will be used, not the alert setting defined on this check.
  - `groupId` number, nullable — The id of the check group this check is part of.
  - `groupOrder` number, nullable — The position of this check in a check group. It determines in what order checks are run when a group is triggered from the API or from CI/CD.
  - `runtimeId` '2026.04' | '2025.04' | '2024.09' | '2024.02' | '2023.09' | '2023.02' | '2022.10' | 'null', nullable — The runtime version, i.e. fixed set of runtime dependencies, used to execute this check.
  - `alertChannelSubscriptions` object[] — List of alert channel subscriptions.
    - `alertChannelId` number, required
    - `activated` boolean, required
  - `triggerIncident` object, nullable — Determines whether the check or monitor should create and resolve an incident based on its alert configuration. Useful for status page automation.
    - `serviceId` string, uuid, required — The status page service that the incident will be associated with.
    - `severity` 'CRITICAL' | 'MAJOR' | 'MEDIUM' | 'MINOR', required — The severity level of the incident.
    - `name` string, required — The name of the incident.
    - `description` string, required — A detailed description of the incident.
    - `notifySubscribers` boolean, required — Whether to notify subscribers when the incident is triggered.
  - `runParallel` boolean — When true, the check will run in parallel in all selected locations.
  - `description` string, nullable — A description of the check.
  - `checkType` 'HEARTBEAT'
  - `frequency` 0 | 1 | 2 | 5 | 10 | 15 | 30 | 60 | 120 | 180 | 360 | 720 | 1440 — How often the check should run in minutes.
  - `frequencyOffset` integer
  - `request` object, nullable
  - `heartbeat` ChecksV1HeartbeatRequest
    - `period` number, required — Interval expected between pings.
    - `periodUnit` 'seconds' | 'minutes' | 'hours' | 'days', required
    - `grace` number, required — Grace added to the period.
    - `graceUnit` 'seconds' | 'minutes' | 'hours' | 'days', required
    - `pingToken` string, nullable — UUID token used to build a unique ping URL.
  - `script` string, nullable
  - `scriptPath` string, nullable — Path of the script in the runtime.
  - `sslCheckDomain` string, nullable
  - `environmentVariables` object[], nullable — Key/value pairs for setting environment variables during check execution. These are only relevant for Browser checks. Use global environment variables whenever possible.
    - `key` string, required — The key of the environment variable (this value cannot be changed).
    - `value` string, nullable, required
    - `locked` boolean — Used only in the UI to hide the value like a password.
    - `secret` boolean — Set an environment variable as secret. Once set, its value cannot be unlocked.
  - `setupSnippetId` number, nullable — An ID reference to a snippet to use in the setup phase of an API check.
  - `tearDownSnippetId` number, nullable — An ID reference to a snippet to use in the teardown phase of an API check.
  - `localSetupScript` string, nullable — A valid piece of Node.js code to run in the setup phase.
  - `localTearDownScript` string, nullable — A valid piece of Node.js code to run in the teardown phase.
  - `degradedResponseTime` number, nullable — The response time in milliseconds where a check should be considered degraded.
  - `maxResponseTime` number, nullable — The response time in milliseconds where a check should be considered failing.

## Response `200`

Successful

- ChecksV1HeartbeatCheckMutationResponse
  - `id` string
  - `name` string, required — The name of the check.
  - `activated` boolean — Determines if the check is running or not.
  - `muted` boolean — Determines if any notifications will be send out when a check fails and/or recovers.
  - `tags` string[] — Tags for organizing and filtering checks.
  - `alertSettings` ChecksV1HeartbeatResponseAlertSettings, nullable — Alert settings.
    - `escalationType` 'RUN_BASED' | 'TIME_BASED' — Determines what type of escalation to use.
    - `reminders` object
      - `amount` 0 | 1 | 2 | 3 | 4 | 5 | 100000 — How many reminders to send out after the initial alert notification.
      - `interval` 1 | 2 | 3 | 4 | 5 | 10 | 15 | 30 — At what interval the reminders should be send.
    - `sslCertificates` object — [DEPRECATED] `sslCertificates` is deprecated and is not longer used. Please ignore it, will be removed in a future version.
      - `enabled` boolean — Determines if alert notifications should be send for expiring SSL certificates.
      - `alertThreshold` integer — At what moment in time to start alerting on SSL certificates.
    - `runBasedEscalation` object
      - `failedRunThreshold` 1 | 2 | 3 | 4 | 5 — After how many failed consecutive check runs an alert notification should be send.
    - `timeBasedEscalation` object
      - `minutesFailingThreshold` 5 | 10 | 15 | 30 — After how many minutes after a check starts failing an alert should be send.
    - `parallelRunFailureThreshold` object
      - `enabled` boolean — Determines if parallel run threshold is enabled
      - `percentage` 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100 — The percentage of parallel runs that should fail before an alert is triggered
  - `useGlobalAlertSettings` boolean — When true, the account level alert setting will be used, not the alert setting defined on this check.
  - `alertChannelSubscriptions` ChecksV1HeartbeatResponseAlertChannelSubscription[]
    - `alertChannelId` number, required
    - `activated` boolean, required
  - `triggerIncident` ChecksV1HeartbeatResponseTriggerIncident, nullable — Determines whether the check or monitor should create and resolve an incident based on its alert configuration. Useful for status page automation.
    - `serviceId` string, uuid, required — The status page service that the incident will be associated with.
    - `severity` 'CRITICAL' | 'MAJOR' | 'MEDIUM' | 'MINOR', required — The severity level of the incident.
    - `name` string, required — The name of the incident.
    - `description` string, required — A detailed description of the incident.
    - `notifySubscribers` boolean, required — Whether to notify subscribers when the incident is triggered.
  - `runParallel` boolean — When true, the check will run in parallel in all selected locations.
  - `description` string, nullable — A description of the check.
  - `checkType` 'HEARTBEAT'
  - `heartbeat` ChecksV1Heartbeat
    - `period` number, required — Interval expected between pings.
    - `periodUnit` 'seconds' | 'minutes' | 'hours' | 'days', required
    - `grace` number, required — Grace added to the period.
    - `graceUnit` 'seconds' | 'minutes' | 'hours' | 'days', required
    - `pingToken` string, nullable — UUID token used to build a unique ping URL.
    - `pingUrl` string
  - `alertChannels` ChecksV1HeartbeatResponseAlertChannels, nullable
    - `email` ChecksV1HeartbeatResponseAlertEmail[]
      - `address` string, required
    - `webhook` ChecksV1HeartbeatResponseAlertWebhook[]
      - `name` string
      - `url` string, required
      - `method` 'GET' | 'POST' | 'PUT' | 'HEAD' | 'DELETE' | 'PATCH', nullable
      - `headers` ChecksV1HeartbeatResponseKeyValue[]
        - `key` string, required
        - `value` string, required
        - `locked` boolean
      - `queryParameters` ChecksV1HeartbeatResponseKeyValue[]
        - `key` string, required
        - `value` string, required
        - `locked` boolean
    - `slack` ChecksV1HeartbeatResponseAlertSlack[]
      - `url` string, required
    - `sms` ChecksV1HeartbeatResponseAlertSms[]
      - `number` string, required
      - `name` string, required
  - `created_at` string, date-time
  - `updated_at` string, date-time, nullable

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `402` — Payment Required
- `403` — Forbidden
- `404` — Not Found
- `429` — Too Many Requests

---

[API](https://skmtc.net/checklyhq/apis/checkly-public-api.md) · [All operations](https://skmtc.net/checklyhq/apis/checkly-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/checklyhq/checkly-public-api/revisions/87d29dc7b4fe/schema)
