---
title: "Update an API check"
method: PUT
path: "/v1/checks/api/{id}"
tags: ["Checks"]
---

# Update an API check

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

Updates an API check.

## Path parameters

- `id` string, uuid, 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, uuid — Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general

## Request body

- ChecksV1ApiCheckUpdate
  - `name` string
  - `activated` boolean
  - `muted` boolean
  - `doubleCheck` boolean
  - `shouldFail` boolean
  - `locations` string[], nullable
  - `tags` string[]
  - `alertSettings` ChecksV1AlertSettingsCreatePatch
    - `escalationType` 'RUN_BASED' | 'TIME_BASED'
    - `reminders` object
      - `amount` 0 | 1 | 2 | 3 | 4 | 5 | 100000
      - `interval` 1 | 2 | 3 | 4 | 5 | 10 | 15 | 30
    - `sslCertificates` object
      - `enabled` boolean
      - `alertThreshold` integer
    - `runBasedEscalation` ChecksV1AlertSettingsRunBasedEscalation
      - `failedRunThreshold` 1 | 2 | 3 | 4 | 5
    - `timeBasedEscalation` ChecksV1AlertSettingsTimeBasedEscalation
      - `minutesFailingThreshold` 5 | 10 | 15 | 30
    - `parallelRunFailureThreshold` object
      - `enabled` boolean
      - `percentage` 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100
  - `useGlobalAlertSettings` boolean
  - `groupId` number, nullable
  - `groupOrder` number, nullable
  - `runtimeId` '2026.04' | '2025.04' | '2024.09' | '2024.02' | '2023.09' | '2023.02' | '2022.10' | 'null', nullable
  - `alertChannelSubscriptions` ChecksV1AlertChannelSubscription[]
    - `alertChannelId` number, required
    - `activated` boolean, required
  - `retryStrategy` ChecksV1RetryStrategyPatch, nullable
    - `type` 'FIXED' | 'LINEAR' | 'EXPONENTIAL' | 'SINGLE_RETRY', required
    - `baseBackoffSeconds` number
    - `sameRegion` boolean
    - `maxRetries` number
    - `maxDurationSeconds` number
    - `onlyOn` string[]
  - `triggerIncident` ChecksV1TriggerIncident, nullable
    - `serviceId` string, uuid, required
    - `severity` 'CRITICAL' | 'MAJOR' | 'MEDIUM' | 'MINOR', required
    - `name` string, required
    - `description` string, required
    - `notifySubscribers` boolean, required
  - `runParallel` boolean
  - `description` string, nullable
  - `checkType` 'API'
  - `request` ChecksV1ApiRequestPatch
    - `method` 'GET' | 'POST' | 'PUT' | 'HEAD' | 'DELETE' | 'PATCH', required
    - `url` string, required
    - `followRedirects` boolean
    - `skipSSL` boolean
    - `ipFamily` 'IPv4' | 'IPv6'
    - `body` string
    - `bodyType` 'JSON' | 'FORM' | 'RAW' | 'GRAPHQL' | 'NONE'
    - `headers` ChecksV1KeyValuePatch[]
      - `key` string, required
      - `value` string, required
      - `locked` boolean
    - `queryParameters` ChecksV1KeyValuePatch[]
      - `key` string, required
      - `value` string, required
      - `locked` boolean
    - `assertions` ChecksV1ApiAssertionPatch[]
      - `source` 'STATUS_CODE' | 'JSON_BODY' | 'HEADERS' | 'TEXT_BODY' | 'RESPONSE_TIME'
      - `comparison` 'EQUALS' | 'NOT_EQUALS' | 'HAS_KEY' | 'NOT_HAS_KEY' | 'HAS_VALUE' | 'NOT_HAS_VALUE' | 'IS_EMPTY' | 'NOT_EMPTY' | 'GREATER_THAN' | 'LESS_THAN' | 'CONTAINS' | 'NOT_CONTAINS' | 'IS_NULL' | 'NOT_NULL'
      - `property` string
      - `target` string
      - `regex` string, nullable
    - `basicAuth` ChecksV1BasicAuth, nullable
      - `username` string, required
      - `password` string, required
  - `frequency` 0 | 1 | 2 | 5 | 10 | 15 | 30 | 60 | 120 | 180 | 360 | 720 | 1440
  - `frequencyOffset` integer
  - `degradedResponseTime` number, nullable
  - `maxResponseTime` number, nullable
  - `privateLocations` string[], nullable
  - `tearDownSnippetId` number, nullable
  - `setupSnippetId` number, nullable
  - `localSetupScript` string, nullable
  - `localTearDownScript` string, nullable

## Response `200`

Successful

- ChecksV1ApiCheckMutationResponse
  - `name` string, required
  - `activated` boolean
  - `muted` boolean
  - `doubleCheck` boolean
  - `shouldFail` boolean
  - `locations` string[], nullable
  - `tags` string[]
  - `alertSettings` ChecksV1AlertSettings, nullable
    - `escalationType` 'RUN_BASED' | 'TIME_BASED'
    - `reminders` object
      - `amount` 0 | 1 | 2 | 3 | 4 | 5 | 100000
      - `interval` 1 | 2 | 3 | 4 | 5 | 10 | 15 | 30
    - `sslCertificates` object
      - `enabled` boolean
      - `alertThreshold` integer
    - `runBasedEscalation` ChecksV1AlertSettingsRunBasedEscalation
      - `failedRunThreshold` 1 | 2 | 3 | 4 | 5
    - `timeBasedEscalation` ChecksV1AlertSettingsTimeBasedEscalation
      - `minutesFailingThreshold` 5 | 10 | 15 | 30
    - `parallelRunFailureThreshold` object
      - `enabled` boolean
      - `percentage` 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | 100
  - `useGlobalAlertSettings` boolean
  - `groupId` number, nullable
  - `groupOrder` number, nullable
  - `runtimeId` '2026.04' | '2025.04' | '2024.09' | '2024.02' | '2023.09' | '2023.02' | '2022.10' | 'null', nullable
  - `alertChannelSubscriptions` ChecksV1AlertChannelSubscription[]
    - `alertChannelId` number, required
    - `activated` boolean, required
  - `retryStrategy` ChecksV1RetryStrategy, nullable
    - `type` 'FIXED' | 'LINEAR' | 'EXPONENTIAL' | 'SINGLE_RETRY', required
    - `baseBackoffSeconds` number
    - `sameRegion` boolean
    - `maxRetries` number
    - `maxDurationSeconds` number
    - `onlyOn` string[]
  - `triggerIncident` ChecksV1TriggerIncident, nullable
    - `serviceId` string, uuid, required
    - `severity` 'CRITICAL' | 'MAJOR' | 'MEDIUM' | 'MINOR', required
    - `name` string, required
    - `description` string, required
    - `notifySubscribers` boolean, required
  - `runParallel` boolean
  - `description` string, nullable
  - `id` string
  - `created_at` string, date-time
  - `updated_at` string, date-time, nullable
  - `alertChannels` ChecksV1AlertChannels, nullable
    - `email` ChecksV1AlertEmail[]
      - `address` string
    - `webhook` ChecksV1AlertWebhook[]
      - `name` string
      - `url` string
      - `method` string, nullable
      - `headers` ChecksV1KeyValue[]
        - `key` string, required
        - `value` string, required
        - `locked` boolean
      - `queryParameters` ChecksV1KeyValue[]
        - `key` string, required
        - `value` string, required
        - `locked` boolean
    - `slack` ChecksV1AlertSlack[]
      - `url` string
    - `sms` ChecksV1AlertSms[]
      - `number` string
      - `name` string, required
  - `privateLocations` string[], nullable
  - `frequency` 0 | 1 | 2 | 5 | 10 | 15 | 30 | 60 | 120 | 180 | 360 | 720 | 1440
  - `frequencyOffset` integer
  - `degradedResponseTime` number, nullable
  - `maxResponseTime` number, nullable
  - `checkType` 'API'
  - `request` ChecksV1ApiRequest
    - `method` 'GET' | 'POST' | 'PUT' | 'HEAD' | 'DELETE' | 'PATCH', required
    - `url` string, required
    - `followRedirects` boolean
    - `skipSSL` boolean
    - `ipFamily` 'IPv4' | 'IPv6'
    - `body` string
    - `bodyType` 'JSON' | 'FORM' | 'RAW' | 'GRAPHQL' | 'NONE'
    - `headers` ChecksV1KeyValue[]
      - `key` string, required
      - `value` string, required
      - `locked` boolean
    - `queryParameters` ChecksV1KeyValue[]
      - `key` string, required
      - `value` string, required
      - `locked` boolean
    - `assertions` ChecksV1ApiAssertion[]
      - `source` 'STATUS_CODE' | 'JSON_BODY' | 'HEADERS' | 'TEXT_BODY' | 'RESPONSE_TIME'
      - `comparison` 'EQUALS' | 'NOT_EQUALS' | 'HAS_KEY' | 'NOT_HAS_KEY' | 'HAS_VALUE' | 'NOT_HAS_VALUE' | 'IS_EMPTY' | 'NOT_EMPTY' | 'GREATER_THAN' | 'LESS_THAN' | 'CONTAINS' | 'NOT_CONTAINS' | 'IS_NULL' | 'NOT_NULL'
      - `property` string
      - `target` string
      - `regex` string, nullable
    - `basicAuth` ChecksV1BasicAuth, nullable
      - `username` string, required
      - `password` string, required
  - `tearDownSnippetId` number, nullable
  - `setupSnippetId` number, nullable
  - `localSetupScript` string, nullable
  - `localTearDownScript` string, nullable

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `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)
