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

# Update an TCP check

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

Updates an TCP 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

- ChecksV1TcpCheckUpdate
  - `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` 'TCP'
  - `request` ChecksV1TcpRequestPatch
    - `url` string
    - `hostname` string
    - `port` number, required
    - `body` string, nullable
    - `data` string, nullable
    - `assertions` ChecksV1TcpAssertionPatch[]
      - `source` 'RESPONSE_DATA' | 'RESPONSE_TIME'
      - `comparison` 'EQUALS' | 'NOT_EQUALS' | 'IS_EMPTY' | 'NOT_EMPTY' | 'LESS_THAN' | 'GREATER_THAN' | 'CONTAINS' | 'NOT_CONTAINS'
      - `property` string
      - `target` string
      - `regex` string, nullable
    - `ipFamily` 'IPv4' | 'IPv6'
  - `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

## Response `200`

Successful

- ChecksV1TcpCheckMutationResponse
  - `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` 'TCP'
  - `request` ChecksV1TcpRequest
    - `url` string
    - `hostname` string
    - `port` number, required
    - `body` string, nullable
    - `data` string, nullable
    - `assertions` ChecksV1TcpAssertion[]
      - `source` 'RESPONSE_DATA' | 'RESPONSE_TIME'
      - `comparison` 'EQUALS' | 'NOT_EQUALS' | 'IS_EMPTY' | 'NOT_EMPTY' | 'LESS_THAN' | 'GREATER_THAN' | 'CONTAINS' | 'NOT_CONTAINS'
      - `property` string
      - `target` string
      - `regex` string, nullable
    - `ipFamily` 'IPv4' | 'IPv6'

## 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)
