PUT
/
v1
/
checks
/
multistep
/
{id}
Update a multi-step check
curl --request PUT \
  --url https://api.checklyhq.com/v1/checks/multistep/{id} \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "Check",
  "activated": true,
  "muted": false,
  "doubleCheck": true,
  "shouldFail": false,
  "locations": [
    "us-east-1",
    "eu-central-1"
  ],
  "tags": [
    "production"
  ],
  "alertSettings": {
    "escalationType": "RUN_BASED",
    "runBasedEscalation": {
      "failedRunThreshold": 1
    },
    "reminders": {
      "amount": 0,
      "interval": 5
    },
    "parallelRunFailureThreshold": {
      "enabled": false,
      "percentage": 10
    }
  },
  "useGlobalAlertSettings": true,
  "groupId": "null",
  "groupOrder": "null",
  "runtimeId": null,
  "alertChannelSubscriptions": [],
  "retryStrategy": {
    "type": "FIXED",
    "baseBackoffSeconds": 60,
    "maxRetries": 2,
    "maxDurationSeconds": 600,
    "sameRegion": true,
    "onlyOn": [
      "NETWORK_ERROR"
    ]
  },
  "runParallel": false,
  "checkType": "MULTI_STEP",
  "environmentVariables": [],
  "frequency": 10,
  "script": "const { chromium } = require(\"playwright\");\n(async () => {\n\n  // launch the browser and open a new page\n  const browser = await chromium.launch();\n  const page = await browser.newPage();\n\n  // navigate to our target web page\n  await page.goto(\"https://danube-webshop.herokuapp.com/\");\n\n  // click on the login button and go through the login procedure\n  await page.click(\"#login\");\n  await page.type(\"#n-email\", \"user@email.com\");\n  await page.type(\"#n-password2\", \"supersecure1\");\n  await page.click(\"#goto-signin-btn\");\n\n  // wait until the login confirmation message is shown\n  await page.waitForSelector(\"#login-message\", { visible: true });\n\n  // close the browser and terminate the session\n  await browser.close();\n})();",
  "scriptPath": "<string>",
  "privateLocations": [],
  "dependencies": [
    {
      "path": "<string>",
      "content": "<string>"
    }
  ]
}'
{
  "id": "b9972e6a-5579-4080-b1d8-0e43f4847b82",
  "name": "Check",
  "activated": true,
  "muted": false,
  "doubleCheck": true,
  "shouldFail": false,
  "locations": [
    "us-east-1",
    "eu-central-1"
  ],
  "tags": [
    "production"
  ],
  "alertSettings": {
    "escalationType": "RUN_BASED",
    "runBasedEscalation": {
      "failedRunThreshold": 1
    },
    "reminders": {
      "amount": 0,
      "interval": 5
    },
    "parallelRunFailureThreshold": {
      "enabled": false,
      "percentage": 10
    }
  },
  "useGlobalAlertSettings": true,
  "groupId": "null",
  "groupOrder": "null",
  "runtimeId": null,
  "alertChannelSubscriptions": [
    {
      "alertChannelId": 123,
      "activated": true
    }
  ],
  "retryStrategy": {
    "type": "FIXED",
    "baseBackoffSeconds": 60,
    "maxRetries": 2,
    "maxDurationSeconds": 600,
    "sameRegion": true,
    "onlyOn": [
      "NETWORK_ERROR"
    ]
  },
  "runParallel": false,
  "checkType": "MULTI_STEP",
  "frequency": 10,
  "script": "<string>",
  "privateLocations": [
    "data-center-eu"
  ],
  "alertChannels": {
    "email": [
      {
        "address": ""
      }
    ],
    "webhook": [
      {
        "name": "",
        "url": "",
        "method": "POST",
        "headers": [
          {
            "key": "<string>",
            "value": "<string>",
            "locked": true
          }
        ],
        "queryParameters": [
          {
            "key": "<string>",
            "value": "<string>",
            "locked": true
          }
        ]
      }
    ],
    "slack": [
      {
        "url": ""
      }
    ],
    "sms": [
      {
        "number": "+549110000000",
        "name": "SMS Alert"
      }
    ]
  },
  "created_at": "2023-12-25",
  "updated_at": "2023-11-07T05:31:56Z",
  "environmentVariables": [
    {
      "key": "API_KEY",
      "value": "<string>",
      "locked": false,
      "secret": false
    }
  ]
}

Overview

The Update Multistep Check endpoint allows you to modify existing multistep API monitoring checks, including step sequences, request parameters, data flow, and execution settings. Common Use Cases:
  • Workflow Step Updates
  • Request Parameter Changes
  • Data Flow Modifications
  • Execution Setting Changes
Updating multistep checks may temporarily affect API workflow monitoring. Test step sequences thoroughly before updating production checks.
Changes to multistep checks take effect immediately. Ensure all step dependencies and data flow are validated before deployment.

Authorizations

Authorization
string
header
required

The Checkly Public API uses API keys to authenticate requests. You can get the API Key here.

Your API key is like a password: keep it secure!

Authentication to the API is performed using the Bearer auth method in the Authorization header and using the account ID.

For example, set Authorization header while using cURL:

curl -H "Authorization: Bearer [apiKey]" "X-Checkly-Account: [accountId]"

Headers

x-checkly-account
string

Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general

Path Parameters

id
string
required

Query Parameters

autoAssignAlerts
boolean
default:true

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

Body

application/json
name
string

The name of the check.

Example:

"Check"

activated
boolean
default:true

Determines if the check is running or not.

muted
boolean
default:false

Determines if any notifications will be send out when a check fails and/or recovers.

doubleCheck
boolean
default:true

[Deprecated] Retry failed check runs. This property is deprecated, and retryStrategy can be used instead.

shouldFail
boolean
default:false

Allows to invert the behaviour of when a check is considered to fail. Allows for validating error status like 404.

locations
enum<string>[]

An array of one or more data center locations where to run this check.

Example:
["us-east-1", "eu-central-1"]
tags
string[]

Tags for organizing and filtering checks.

Example:
["production"]
alertSettings
object

Alert settings.

useGlobalAlertSettings
boolean
default:true

When true, the account level alert setting will be used, not the alert setting defined on this check.

groupId
number

The id of the check group this check is part of.

Example:

null

groupOrder
number

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.

Required range: x >= 0
Example:

null

runtimeId
enum<string>

The runtime version, i.e. fixed set of runtime dependencies, used to execute this check.

Available options:
2025.04,
2024.09,
2024.02,
2023.09,
2023.02,
2022.10
alertChannelSubscriptions
object[]

List of alert channel subscriptions.

Example:
[]
retryStrategy
object

The strategy to determine how failed checks are retried.

runParallel
boolean
default:false

When true, the check will run in parallel in all selected locations.

checkType
enum<string>
default:MULTI_STEP
Available options:
MULTI_STEP
environmentVariables
object[]

Key/value pairs for setting environment variables during check execution. Use global environment variables whenever possible.

Maximum length: 50
Example:
[]
frequency
enum<integer>
default:10

How often the check should run in minutes.

Available options:
1,
2,
5,
10,
15,
30,
60,
120,
180,
360,
720,
1440
script
string

A valid piece of Node.js javascript code describing a multi-step API interaction with the Playwright frameworks.

Example:

"const { chromium } = require(\"playwright\");\n(async () => {\n\n // launch the browser and open a new page\n const browser = await chromium.launch();\n const page = await browser.newPage();\n\n // navigate to our target web page\n await page.goto(\"https://danube-webshop.herokuapp.com/\");\n\n // click on the login button and go through the login procedure\n await page.click(\"#login\");\n await page.type(\"#n-email\", \"user@email.com\");\n await page.type(\"#n-password2\", \"supersecure1\");\n await page.click(\"#goto-signin-btn\");\n\n // wait until the login confirmation message is shown\n await page.waitForSelector(\"#login-message\", { visible: true });\n\n // close the browser and terminate the session\n await browser.close();\n})();"

scriptPath
string

Path of the script in the runtime.

privateLocations
string[]

An array of one or more private locations where to run the check.

Example:
[]
dependencies
object[]

An array of BCR dependency files.

Response

Successful

name
string
required

The name of the check.

Example:

"Check"

script
string
required

A valid piece of Node.js javascript code describing a multi-step API interaction with the Playwright frameworks.

id
string
Example:

"b9972e6a-5579-4080-b1d8-0e43f4847b82"

activated
boolean
default:true

Determines if the check is running or not.

muted
boolean
default:false

Determines if any notifications will be send out when a check fails and/or recovers.

doubleCheck
boolean
default:true

[Deprecated] Retry failed check runs. This property is deprecated, and retryStrategy can be used instead.

shouldFail
boolean
default:false

Allows to invert the behaviour of when a check is considered to fail. Allows for validating error status like 404.

locations
enum<string>[]

An array of one or more data center locations where to run this check.

Example:
["us-east-1", "eu-central-1"]
tags
string[]

Tags for organizing and filtering checks.

Example:
["production"]
alertSettings
object

Alert settings.

useGlobalAlertSettings
boolean
default:true

When true, the account level alert setting will be used, not the alert setting defined on this check.

groupId
number

The id of the check group this check is part of.

Example:

null

groupOrder
number

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.

Required range: x >= 0
Example:

null

runtimeId
enum<string>

The runtime version, i.e. fixed set of runtime dependencies, used to execute this check.

Available options:
2025.04,
2024.09,
2024.02,
2023.09,
2023.02,
2022.10
alertChannelSubscriptions
object[]
retryStrategy
object

The strategy to determine how failed checks are retried.

runParallel
boolean
default:false

When true, the check will run in parallel in all selected locations.

checkType
enum<string>
Available options:
MULTI_STEP
frequency
enum<integer>
default:10

How often the check should run in minutes.

Available options:
1,
2,
5,
10,
15,
30,
60,
120,
180,
360,
720,
1440
privateLocations
string[]

An array of one or more private locations where to run the check.

Example:
["data-center-eu"]
alertChannels
object
created_at
string<date>
updated_at
string<date-time>
environmentVariables
object[]

Key/value pairs for setting environment variables during check execution. Use global environment variables whenever possible.

Maximum length: 50