> ## Documentation Index
> Fetch the complete documentation index at: https://www.checklyhq.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve a check (v2)

> Show details of a specific API or browser check.

Unlike `/v1`, this endpoint does not return the flat `project`, `logicalId`, `member` and `pending` fields. A check can be managed by more than one project and each of those fields can name only one of them; `projectBindings` reports every binding, and is identical on `/v1` and `/v2`.

Versioning is per endpoint. Only endpoints whose response or payload changed have a `/v2`; everything else remains on `/v1` and is unaffected. In particular the check groups themselves, and creating, updating and deleting checks, are unchanged and stay on `/v1`.



## OpenAPI

````yaml get /v2/checks/{id}
openapi: 3.0.0
info:
  title: Checkly Public API
  version: v1
  description: >-
    These are the docs for the newly released Checkly Public API. If you have
    any questions, please do not hesitate to get in touch with us.
servers:
  - url: https://api.checklyhq.com
security:
  - Bearer: []
tags: []
paths:
  /v2/checks/{id}:
    get:
      tags:
        - Checks
      summary: Retrieve a check
      description: >-
        Show details of a specific API or browser check.


        Unlike `/v1`, this endpoint does not return the flat `project`,
        `logicalId`, `member` and `pending` fields. A check can be managed by
        more than one project and each of those fields can name only one of
        them; `projectBindings` reports every binding, and is identical on `/v1`
        and `/v2`.


        Versioning is per endpoint. Only endpoints whose response or payload
        changed have a `/v2`; everything else remains on `/v1` and is
        unaffected. In particular the check groups themselves, and creating,
        updating and deleting checks, are unchanged and stay on `/v1`.
      operationId: getV2ChecksId
      parameters:
        - schema:
            type: string
            minLength: 1
            format: uuid
          required: true
          name: id
          in: path
        - schema:
            type: boolean
            description: Include check dependencies in the response
          required: false
          description: Include check dependencies in the response
          name: includeDependencies
          in: query
        - schema:
            type: boolean
            default: false
            description: >-
              Checks that belong to a group are returned with group settings
              applied.
          required: false
          description: >-
            Checks that belong to a group are returned with group settings
            applied.
          name: applyGroupSettings
          in: query
        - schema:
            type: string
            format: uuid
            description: >-
              Your Checkly account ID, you can find it at
              https://app.checklyhq.com/settings/account/general
          required: false
          description: >-
            Your Checkly account ID, you can find it at
            https://app.checklyhq.com/settings/account/general
          name: x-checkly-account
          in: header
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChecksV2Check'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
components:
  schemas:
    ChecksV2Check:
      anyOf:
        - $ref: '#/components/schemas/ChecksV2HeartbeatCheck'
        - $ref: '#/components/schemas/ChecksV2PlaywrightCheck'
        - $ref: '#/components/schemas/ChecksV2IcmpMonitor'
        - $ref: '#/components/schemas/ChecksV2TracerouteMonitor'
        - $ref: '#/components/schemas/ChecksV2GrpcMonitor'
        - $ref: '#/components/schemas/ChecksV2SslMonitor'
        - $ref: '#/components/schemas/ChecksV2ApiCheck'
        - $ref: '#/components/schemas/ChecksV2TcpCheck'
        - $ref: '#/components/schemas/ChecksV2UrlMonitor'
        - $ref: '#/components/schemas/ChecksV2DnsMonitor'
        - $ref: '#/components/schemas/ChecksV2BrowserCheck'
        - $ref: '#/components/schemas/ChecksV2MultiStepCheck'
        - $ref: '#/components/schemas/ChecksV2GenericCheck'
    ApiError:
      type: object
      properties:
        statusCode:
          type: number
        error:
          type: string
        message:
          type: string
      required:
        - statusCode
        - error
        - message
    ChecksV2HeartbeatCheck:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        activated:
          type: boolean
          default: true
        muted:
          type: boolean
          default: false
        locations:
          type: array
          nullable: true
          items:
            type: string
            enum:
              - us-east-1
              - us-east-2
              - us-west-1
              - us-west-2
              - ca-central-1
              - sa-east-1
              - eu-west-1
              - eu-central-1
              - eu-west-2
              - eu-west-3
              - eu-north-1
              - eu-south-1
              - me-south-1
              - ap-southeast-1
              - ap-northeast-1
              - ap-east-1
              - ap-southeast-2
              - ap-southeast-3
              - ap-northeast-2
              - ap-northeast-3
              - ap-south-1
              - af-south-1
          default: []
        tags:
          type: array
          items:
            type: string
            minLength: 1
          default: []
        alertSettings:
          $ref: '#/components/schemas/ChecksV1AlertSettings'
        useGlobalAlertSettings:
          type: boolean
          default: true
        groupId:
          type: number
          nullable: true
          default: null
        groupOrder:
          type: number
          nullable: true
          minimum: 0
          default: null
        alertChannelSubscriptions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
        triggerIncident:
          $ref: '#/components/schemas/ChecksV1TriggerIncident'
        runParallel:
          type: boolean
          default: false
        description:
          type: string
          nullable: true
          maxLength: 500
          default: null
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          nullable: true
          format: date-time
        alertChannels:
          $ref: '#/components/schemas/ChecksV1AlertChannels'
        projectBindings:
          $ref: '#/components/schemas/ProjectBindingsV1'
        privateLocations:
          type: array
          nullable: true
          items:
            type: string
            minLength: 1
        checkType:
          type: string
          enum:
            - HEARTBEAT
        heartbeat:
          $ref: '#/components/schemas/ChecksV1Heartbeat'
      required:
        - name
    ChecksV2PlaywrightCheck:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        activated:
          type: boolean
          default: true
        muted:
          type: boolean
          default: false
        locations:
          type: array
          nullable: true
          items:
            type: string
            enum:
              - us-east-1
              - us-east-2
              - us-west-1
              - us-west-2
              - ca-central-1
              - sa-east-1
              - eu-west-1
              - eu-central-1
              - eu-west-2
              - eu-west-3
              - eu-north-1
              - eu-south-1
              - me-south-1
              - ap-southeast-1
              - ap-northeast-1
              - ap-east-1
              - ap-southeast-2
              - ap-southeast-3
              - ap-northeast-2
              - ap-northeast-3
              - ap-south-1
              - af-south-1
          default: []
        tags:
          type: array
          items:
            type: string
            minLength: 1
          default: []
        alertSettings:
          $ref: '#/components/schemas/ChecksV1AlertSettings'
        useGlobalAlertSettings:
          type: boolean
          default: true
        groupId:
          type: number
          nullable: true
          default: null
        groupOrder:
          type: number
          nullable: true
          minimum: 0
          default: null
        alertChannelSubscriptions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
        triggerIncident:
          $ref: '#/components/schemas/ChecksV1TriggerIncident'
        runParallel:
          type: boolean
          default: false
        description:
          type: string
          nullable: true
          maxLength: 500
          default: null
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          nullable: true
          format: date-time
        alertChannels:
          $ref: '#/components/schemas/ChecksV1AlertChannels'
        projectBindings:
          $ref: '#/components/schemas/ProjectBindingsV1'
        privateLocations:
          type: array
          nullable: true
          items:
            type: string
            minLength: 1
        checkType:
          type: string
          enum:
            - PLAYWRIGHT
        frequency:
          type: integer
          enum:
            - 1
            - 2
            - 5
            - 10
            - 15
            - 30
            - 60
            - 120
            - 180
            - 360
            - 720
            - 1440
          default: 10
        cacheHash:
          type: string
          nullable: true
        playwrightVersion:
          type: string
          nullable: true
        workingDir:
          type: string
          nullable: true
        testCommand:
          type: string
          default: npx playwright test
        installCommand:
          type: string
          default: ''
        browsers:
          type: array
          items:
            type: string
          default:
            - chromium
        environmentVariables:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ChecksV1EnvironmentVariable'
          maxItems: 200
        codeBundlePath:
          type: string
        engine:
          anyOf:
            - type: string
              enum:
                - node
                - bun
            - nullable: true
          default: null
        engineVersion:
          type: string
          nullable: true
          default: null
      required:
        - name
        - codeBundlePath
    ChecksV2IcmpMonitor:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        activated:
          type: boolean
          default: true
        muted:
          type: boolean
          default: false
        doubleCheck:
          type: boolean
          default: true
        shouldFail:
          type: boolean
          default: false
        locations:
          type: array
          nullable: true
          items:
            type: string
            enum:
              - us-east-1
              - us-east-2
              - us-west-1
              - us-west-2
              - ca-central-1
              - sa-east-1
              - eu-west-1
              - eu-central-1
              - eu-west-2
              - eu-west-3
              - eu-north-1
              - eu-south-1
              - me-south-1
              - ap-southeast-1
              - ap-northeast-1
              - ap-east-1
              - ap-southeast-2
              - ap-southeast-3
              - ap-northeast-2
              - ap-northeast-3
              - ap-south-1
              - af-south-1
          default: []
        tags:
          type: array
          items:
            type: string
            minLength: 1
          default: []
        alertSettings:
          $ref: '#/components/schemas/ChecksV1AlertSettings'
        useGlobalAlertSettings:
          type: boolean
          default: true
        groupId:
          type: number
          nullable: true
          default: null
        groupOrder:
          type: number
          nullable: true
          minimum: 0
          default: null
        runtimeId:
          type: string
          nullable: true
          enum:
            - '2026.04'
            - '2025.04'
            - '2024.09'
            - '2024.02'
            - '2023.09'
            - '2023.02'
            - '2022.10'
            - null
          default: null
        alertChannelSubscriptions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
        retryStrategy:
          $ref: '#/components/schemas/ChecksV1RetryStrategy'
        triggerIncident:
          $ref: '#/components/schemas/ChecksV1TriggerIncident'
        runParallel:
          type: boolean
          default: false
        description:
          type: string
          nullable: true
          maxLength: 500
          default: null
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          nullable: true
          format: date-time
        alertChannels:
          $ref: '#/components/schemas/ChecksV1AlertChannels'
        projectBindings:
          $ref: '#/components/schemas/ProjectBindingsV1'
        privateLocations:
          type: array
          nullable: true
          items:
            type: string
            minLength: 1
        frequency:
          type: integer
          enum:
            - 0
            - 1
            - 2
            - 5
            - 10
            - 15
            - 30
            - 60
            - 120
            - 180
            - 360
            - 720
            - 1440
          default: 10
        frequencyOffset:
          type: integer
          minimum: 1
        checkType:
          type: string
          enum:
            - ICMP
        request:
          $ref: '#/components/schemas/ChecksV1IcmpRequest'
        degradedPacketLossThreshold:
          type: number
          nullable: true
        maxPacketLossThreshold:
          type: number
          nullable: true
      required:
        - name
    ChecksV2TracerouteMonitor:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        activated:
          type: boolean
          default: true
        muted:
          type: boolean
          default: false
        doubleCheck:
          type: boolean
          default: true
        shouldFail:
          type: boolean
          default: false
        locations:
          type: array
          nullable: true
          items:
            type: string
            enum:
              - us-east-1
              - us-east-2
              - us-west-1
              - us-west-2
              - ca-central-1
              - sa-east-1
              - eu-west-1
              - eu-central-1
              - eu-west-2
              - eu-west-3
              - eu-north-1
              - eu-south-1
              - me-south-1
              - ap-southeast-1
              - ap-northeast-1
              - ap-east-1
              - ap-southeast-2
              - ap-southeast-3
              - ap-northeast-2
              - ap-northeast-3
              - ap-south-1
              - af-south-1
          default: []
        tags:
          type: array
          items:
            type: string
            minLength: 1
          default: []
        alertSettings:
          $ref: '#/components/schemas/ChecksV1AlertSettings'
        useGlobalAlertSettings:
          type: boolean
          default: true
        groupId:
          type: number
          nullable: true
          default: null
        groupOrder:
          type: number
          nullable: true
          minimum: 0
          default: null
        runtimeId:
          type: string
          nullable: true
          enum:
            - '2026.04'
            - '2025.04'
            - '2024.09'
            - '2024.02'
            - '2023.09'
            - '2023.02'
            - '2022.10'
            - null
          default: null
        alertChannelSubscriptions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
        retryStrategy:
          $ref: '#/components/schemas/ChecksV1RetryStrategy'
        triggerIncident:
          $ref: '#/components/schemas/ChecksV1TriggerIncident'
        runParallel:
          type: boolean
          default: false
        description:
          type: string
          nullable: true
          maxLength: 500
          default: null
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          nullable: true
          format: date-time
        alertChannels:
          $ref: '#/components/schemas/ChecksV1AlertChannels'
        projectBindings:
          $ref: '#/components/schemas/ProjectBindingsV1'
        privateLocations:
          type: array
          nullable: true
          items:
            type: string
            minLength: 1
        frequency:
          type: integer
          enum:
            - 0
            - 1
            - 2
            - 5
            - 10
            - 15
            - 30
            - 60
            - 120
            - 180
            - 360
            - 720
            - 1440
          default: 10
        frequencyOffset:
          type: integer
          minimum: 1
        degradedResponseTime:
          type: number
          nullable: true
        maxResponseTime:
          type: number
          nullable: true
        checkType:
          type: string
          enum:
            - TRACEROUTE
        request:
          $ref: '#/components/schemas/ChecksV1TracerouteRequestRead'
      required:
        - name
    ChecksV2GrpcMonitor:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        activated:
          type: boolean
          default: true
        muted:
          type: boolean
          default: false
        doubleCheck:
          type: boolean
          default: true
        shouldFail:
          type: boolean
          default: false
        locations:
          type: array
          nullable: true
          items:
            type: string
            enum:
              - us-east-1
              - us-east-2
              - us-west-1
              - us-west-2
              - ca-central-1
              - sa-east-1
              - eu-west-1
              - eu-central-1
              - eu-west-2
              - eu-west-3
              - eu-north-1
              - eu-south-1
              - me-south-1
              - ap-southeast-1
              - ap-northeast-1
              - ap-east-1
              - ap-southeast-2
              - ap-southeast-3
              - ap-northeast-2
              - ap-northeast-3
              - ap-south-1
              - af-south-1
          default: []
        tags:
          type: array
          items:
            type: string
            minLength: 1
          default: []
        alertSettings:
          $ref: '#/components/schemas/ChecksV1AlertSettings'
        useGlobalAlertSettings:
          type: boolean
          default: true
        groupId:
          type: number
          nullable: true
          default: null
        groupOrder:
          type: number
          nullable: true
          minimum: 0
          default: null
        runtimeId:
          type: string
          nullable: true
          enum:
            - '2026.04'
            - '2025.04'
            - '2024.09'
            - '2024.02'
            - '2023.09'
            - '2023.02'
            - '2022.10'
            - null
          default: null
        alertChannelSubscriptions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
        retryStrategy:
          $ref: '#/components/schemas/ChecksV1RetryStrategy'
        triggerIncident:
          $ref: '#/components/schemas/ChecksV1TriggerIncident'
        runParallel:
          type: boolean
          default: false
        description:
          type: string
          nullable: true
          maxLength: 500
          default: null
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          nullable: true
          format: date-time
        alertChannels:
          $ref: '#/components/schemas/ChecksV1AlertChannels'
        projectBindings:
          $ref: '#/components/schemas/ProjectBindingsV1'
        privateLocations:
          type: array
          nullable: true
          items:
            type: string
            minLength: 1
        frequency:
          type: integer
          enum:
            - 0
            - 1
            - 2
            - 5
            - 10
            - 15
            - 30
            - 60
            - 120
            - 180
            - 360
            - 720
            - 1440
          default: 10
        frequencyOffset:
          type: integer
          minimum: 1
        degradedResponseTime:
          type: number
          nullable: true
        maxResponseTime:
          type: number
          nullable: true
        checkType:
          type: string
          enum:
            - GRPC
        request:
          $ref: '#/components/schemas/ChecksV1GrpcRequestRead'
      required:
        - name
    ChecksV2SslMonitor:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        activated:
          type: boolean
          default: true
        muted:
          type: boolean
          default: false
        doubleCheck:
          type: boolean
          default: true
        shouldFail:
          type: boolean
          default: false
        locations:
          type: array
          nullable: true
          items:
            type: string
            enum:
              - us-east-1
              - us-east-2
              - us-west-1
              - us-west-2
              - ca-central-1
              - sa-east-1
              - eu-west-1
              - eu-central-1
              - eu-west-2
              - eu-west-3
              - eu-north-1
              - eu-south-1
              - me-south-1
              - ap-southeast-1
              - ap-northeast-1
              - ap-east-1
              - ap-southeast-2
              - ap-southeast-3
              - ap-northeast-2
              - ap-northeast-3
              - ap-south-1
              - af-south-1
          default: []
        tags:
          type: array
          items:
            type: string
            minLength: 1
          default: []
        alertSettings:
          $ref: '#/components/schemas/ChecksV1AlertSettings'
        useGlobalAlertSettings:
          type: boolean
          default: true
        groupId:
          type: number
          nullable: true
          default: null
        groupOrder:
          type: number
          nullable: true
          minimum: 0
          default: null
        runtimeId:
          type: string
          nullable: true
          enum:
            - '2026.04'
            - '2025.04'
            - '2024.09'
            - '2024.02'
            - '2023.09'
            - '2023.02'
            - '2022.10'
            - null
          default: null
        alertChannelSubscriptions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
        retryStrategy:
          $ref: '#/components/schemas/ChecksV1RetryStrategy'
        triggerIncident:
          $ref: '#/components/schemas/ChecksV1TriggerIncident'
        runParallel:
          type: boolean
          default: false
        description:
          type: string
          nullable: true
          maxLength: 500
          default: null
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          nullable: true
          format: date-time
        alertChannels:
          $ref: '#/components/schemas/ChecksV1AlertChannels'
        projectBindings:
          $ref: '#/components/schemas/ProjectBindingsV1'
        privateLocations:
          type: array
          nullable: true
          items:
            type: string
            minLength: 1
        frequency:
          type: integer
          enum:
            - 0
            - 1
            - 2
            - 5
            - 10
            - 15
            - 30
            - 60
            - 120
            - 180
            - 360
            - 720
            - 1440
          default: 10
        frequencyOffset:
          type: integer
          minimum: 1
        degradedResponseTime:
          type: number
          nullable: true
        maxResponseTime:
          type: number
          nullable: true
        checkType:
          type: string
          enum:
            - SSL
        request:
          $ref: '#/components/schemas/ChecksV1SslRequestRead'
      required:
        - name
    ChecksV2ApiCheck:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        activated:
          type: boolean
          default: true
        muted:
          type: boolean
          default: false
        doubleCheck:
          type: boolean
          default: true
        shouldFail:
          type: boolean
          default: false
        locations:
          type: array
          nullable: true
          items:
            type: string
            enum:
              - us-east-1
              - us-east-2
              - us-west-1
              - us-west-2
              - ca-central-1
              - sa-east-1
              - eu-west-1
              - eu-central-1
              - eu-west-2
              - eu-west-3
              - eu-north-1
              - eu-south-1
              - me-south-1
              - ap-southeast-1
              - ap-northeast-1
              - ap-east-1
              - ap-southeast-2
              - ap-southeast-3
              - ap-northeast-2
              - ap-northeast-3
              - ap-south-1
              - af-south-1
          default: []
        tags:
          type: array
          items:
            type: string
            minLength: 1
          default: []
        alertSettings:
          $ref: '#/components/schemas/ChecksV1AlertSettings'
        useGlobalAlertSettings:
          type: boolean
          default: true
        groupId:
          type: number
          nullable: true
          default: null
        groupOrder:
          type: number
          nullable: true
          minimum: 0
          default: null
        runtimeId:
          type: string
          nullable: true
          enum:
            - '2026.04'
            - '2025.04'
            - '2024.09'
            - '2024.02'
            - '2023.09'
            - '2023.02'
            - '2022.10'
            - null
          default: null
        alertChannelSubscriptions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
        retryStrategy:
          $ref: '#/components/schemas/ChecksV1RetryStrategy'
        triggerIncident:
          $ref: '#/components/schemas/ChecksV1TriggerIncident'
        runParallel:
          type: boolean
          default: false
        description:
          type: string
          nullable: true
          maxLength: 500
          default: null
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          nullable: true
          format: date-time
        alertChannels:
          $ref: '#/components/schemas/ChecksV1AlertChannels'
        projectBindings:
          $ref: '#/components/schemas/ProjectBindingsV1'
        privateLocations:
          type: array
          nullable: true
          items:
            type: string
            minLength: 1
        frequency:
          type: integer
          enum:
            - 0
            - 1
            - 2
            - 5
            - 10
            - 15
            - 30
            - 60
            - 120
            - 180
            - 360
            - 720
            - 1440
          default: 10
        frequencyOffset:
          type: integer
          minimum: 1
        degradedResponseTime:
          type: number
          nullable: true
        maxResponseTime:
          type: number
          nullable: true
        checkType:
          type: string
          enum:
            - API
        request:
          $ref: '#/components/schemas/ChecksV1ApiRequest'
        tearDownSnippetId:
          type: number
          nullable: true
          default: null
        setupSnippetId:
          type: number
          nullable: true
          default: null
        localSetupScript:
          type: string
          nullable: true
          default: null
        localTearDownScript:
          type: string
          nullable: true
          default: null
      required:
        - name
    ChecksV2TcpCheck:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        activated:
          type: boolean
          default: true
        muted:
          type: boolean
          default: false
        doubleCheck:
          type: boolean
          default: true
        shouldFail:
          type: boolean
          default: false
        locations:
          type: array
          nullable: true
          items:
            type: string
            enum:
              - us-east-1
              - us-east-2
              - us-west-1
              - us-west-2
              - ca-central-1
              - sa-east-1
              - eu-west-1
              - eu-central-1
              - eu-west-2
              - eu-west-3
              - eu-north-1
              - eu-south-1
              - me-south-1
              - ap-southeast-1
              - ap-northeast-1
              - ap-east-1
              - ap-southeast-2
              - ap-southeast-3
              - ap-northeast-2
              - ap-northeast-3
              - ap-south-1
              - af-south-1
          default: []
        tags:
          type: array
          items:
            type: string
            minLength: 1
          default: []
        alertSettings:
          $ref: '#/components/schemas/ChecksV1AlertSettings'
        useGlobalAlertSettings:
          type: boolean
          default: true
        groupId:
          type: number
          nullable: true
          default: null
        groupOrder:
          type: number
          nullable: true
          minimum: 0
          default: null
        runtimeId:
          type: string
          nullable: true
          enum:
            - '2026.04'
            - '2025.04'
            - '2024.09'
            - '2024.02'
            - '2023.09'
            - '2023.02'
            - '2022.10'
            - null
          default: null
        alertChannelSubscriptions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
        retryStrategy:
          $ref: '#/components/schemas/ChecksV1RetryStrategy'
        triggerIncident:
          $ref: '#/components/schemas/ChecksV1TriggerIncident'
        runParallel:
          type: boolean
          default: false
        description:
          type: string
          nullable: true
          maxLength: 500
          default: null
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          nullable: true
          format: date-time
        alertChannels:
          $ref: '#/components/schemas/ChecksV1AlertChannels'
        projectBindings:
          $ref: '#/components/schemas/ProjectBindingsV1'
        privateLocations:
          type: array
          nullable: true
          items:
            type: string
            minLength: 1
        frequency:
          type: integer
          enum:
            - 0
            - 1
            - 2
            - 5
            - 10
            - 15
            - 30
            - 60
            - 120
            - 180
            - 360
            - 720
            - 1440
          default: 10
        frequencyOffset:
          type: integer
          minimum: 1
        degradedResponseTime:
          type: number
          nullable: true
        maxResponseTime:
          type: number
          nullable: true
        checkType:
          type: string
          enum:
            - TCP
        request:
          $ref: '#/components/schemas/ChecksV1TcpRequest'
      required:
        - name
    ChecksV2UrlMonitor:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        activated:
          type: boolean
          default: true
        muted:
          type: boolean
          default: false
        doubleCheck:
          type: boolean
          default: true
        shouldFail:
          type: boolean
          default: false
        locations:
          type: array
          nullable: true
          items:
            type: string
            enum:
              - us-east-1
              - us-east-2
              - us-west-1
              - us-west-2
              - ca-central-1
              - sa-east-1
              - eu-west-1
              - eu-central-1
              - eu-west-2
              - eu-west-3
              - eu-north-1
              - eu-south-1
              - me-south-1
              - ap-southeast-1
              - ap-northeast-1
              - ap-east-1
              - ap-southeast-2
              - ap-southeast-3
              - ap-northeast-2
              - ap-northeast-3
              - ap-south-1
              - af-south-1
          default: []
        tags:
          type: array
          items:
            type: string
            minLength: 1
          default: []
        alertSettings:
          $ref: '#/components/schemas/ChecksV1AlertSettings'
        useGlobalAlertSettings:
          type: boolean
          default: true
        groupId:
          type: number
          nullable: true
          default: null
        groupOrder:
          type: number
          nullable: true
          minimum: 0
          default: null
        runtimeId:
          type: string
          nullable: true
          enum:
            - '2026.04'
            - '2025.04'
            - '2024.09'
            - '2024.02'
            - '2023.09'
            - '2023.02'
            - '2022.10'
            - null
          default: null
        alertChannelSubscriptions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
        retryStrategy:
          $ref: '#/components/schemas/ChecksV1RetryStrategy'
        triggerIncident:
          $ref: '#/components/schemas/ChecksV1TriggerIncident'
        runParallel:
          type: boolean
          default: false
        description:
          type: string
          nullable: true
          maxLength: 500
          default: null
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          nullable: true
          format: date-time
        alertChannels:
          $ref: '#/components/schemas/ChecksV1AlertChannels'
        projectBindings:
          $ref: '#/components/schemas/ProjectBindingsV1'
        privateLocations:
          type: array
          nullable: true
          items:
            type: string
            minLength: 1
        frequency:
          type: integer
          enum:
            - 0
            - 1
            - 2
            - 5
            - 10
            - 15
            - 30
            - 60
            - 120
            - 180
            - 360
            - 720
            - 1440
          default: 10
        frequencyOffset:
          type: integer
          minimum: 1
        degradedResponseTime:
          type: number
          nullable: true
        maxResponseTime:
          type: number
          nullable: true
        checkType:
          type: string
          enum:
            - URL
        request:
          $ref: '#/components/schemas/ChecksV1UrlRequest'
      required:
        - name
    ChecksV2DnsMonitor:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        activated:
          type: boolean
          default: true
        muted:
          type: boolean
          default: false
        doubleCheck:
          type: boolean
          default: true
        shouldFail:
          type: boolean
          default: false
        locations:
          type: array
          nullable: true
          items:
            type: string
            enum:
              - us-east-1
              - us-east-2
              - us-west-1
              - us-west-2
              - ca-central-1
              - sa-east-1
              - eu-west-1
              - eu-central-1
              - eu-west-2
              - eu-west-3
              - eu-north-1
              - eu-south-1
              - me-south-1
              - ap-southeast-1
              - ap-northeast-1
              - ap-east-1
              - ap-southeast-2
              - ap-southeast-3
              - ap-northeast-2
              - ap-northeast-3
              - ap-south-1
              - af-south-1
          default: []
        tags:
          type: array
          items:
            type: string
            minLength: 1
          default: []
        alertSettings:
          $ref: '#/components/schemas/ChecksV1AlertSettings'
        useGlobalAlertSettings:
          type: boolean
          default: true
        groupId:
          type: number
          nullable: true
          default: null
        groupOrder:
          type: number
          nullable: true
          minimum: 0
          default: null
        runtimeId:
          type: string
          nullable: true
          enum:
            - '2026.04'
            - '2025.04'
            - '2024.09'
            - '2024.02'
            - '2023.09'
            - '2023.02'
            - '2022.10'
            - null
          default: null
        alertChannelSubscriptions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
        retryStrategy:
          $ref: '#/components/schemas/ChecksV1RetryStrategy'
        triggerIncident:
          $ref: '#/components/schemas/ChecksV1TriggerIncident'
        runParallel:
          type: boolean
          default: false
        description:
          type: string
          nullable: true
          maxLength: 500
          default: null
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          nullable: true
          format: date-time
        alertChannels:
          $ref: '#/components/schemas/ChecksV1AlertChannels'
        projectBindings:
          $ref: '#/components/schemas/ProjectBindingsV1'
        privateLocations:
          type: array
          nullable: true
          items:
            type: string
            minLength: 1
        frequency:
          type: integer
          enum:
            - 0
            - 1
            - 2
            - 5
            - 10
            - 15
            - 30
            - 60
            - 120
            - 180
            - 360
            - 720
            - 1440
          default: 10
        frequencyOffset:
          type: integer
          minimum: 1
        degradedResponseTime:
          type: number
          nullable: true
        maxResponseTime:
          type: number
          nullable: true
        checkType:
          type: string
          enum:
            - DNS
        request:
          $ref: '#/components/schemas/ChecksV1DnsRequest'
      required:
        - name
    ChecksV2BrowserCheck:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        activated:
          type: boolean
          default: true
        muted:
          type: boolean
          default: false
        doubleCheck:
          type: boolean
          default: true
        shouldFail:
          type: boolean
          default: false
        locations:
          type: array
          nullable: true
          items:
            type: string
            enum:
              - us-east-1
              - us-east-2
              - us-west-1
              - us-west-2
              - ca-central-1
              - sa-east-1
              - eu-west-1
              - eu-central-1
              - eu-west-2
              - eu-west-3
              - eu-north-1
              - eu-south-1
              - me-south-1
              - ap-southeast-1
              - ap-northeast-1
              - ap-east-1
              - ap-southeast-2
              - ap-southeast-3
              - ap-northeast-2
              - ap-northeast-3
              - ap-south-1
              - af-south-1
          default: []
        tags:
          type: array
          items:
            type: string
            minLength: 1
          default: []
        alertSettings:
          $ref: '#/components/schemas/ChecksV1AlertSettings'
        useGlobalAlertSettings:
          type: boolean
          default: true
        groupId:
          type: number
          nullable: true
          default: null
        groupOrder:
          type: number
          nullable: true
          minimum: 0
          default: null
        runtimeId:
          type: string
          nullable: true
          enum:
            - '2026.04'
            - '2025.04'
            - '2024.09'
            - '2024.02'
            - '2023.09'
            - '2023.02'
            - '2022.10'
            - null
          default: null
        alertChannelSubscriptions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
        retryStrategy:
          $ref: '#/components/schemas/ChecksV1RetryStrategy'
        triggerIncident:
          $ref: '#/components/schemas/ChecksV1TriggerIncident'
        runParallel:
          type: boolean
          default: false
        description:
          type: string
          nullable: true
          maxLength: 500
          default: null
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          nullable: true
          format: date-time
        alertChannels:
          $ref: '#/components/schemas/ChecksV1AlertChannels'
        projectBindings:
          $ref: '#/components/schemas/ProjectBindingsV1'
        privateLocations:
          type: array
          nullable: true
          items:
            type: string
            minLength: 1
        checkType:
          type: string
          enum:
            - BROWSER
        frequency:
          type: integer
          enum:
            - 1
            - 2
            - 5
            - 10
            - 15
            - 30
            - 60
            - 120
            - 180
            - 360
            - 720
            - 1440
          default: 10
        script:
          type: string
          nullable: true
        sslCheckDomain:
          type: string
          nullable: true
        environmentVariables:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ChecksV1EnvironmentVariable'
          maxItems: 200
      required:
        - name
        - script
    ChecksV2MultiStepCheck:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        activated:
          type: boolean
          default: true
        muted:
          type: boolean
          default: false
        doubleCheck:
          type: boolean
          default: true
        shouldFail:
          type: boolean
          default: false
        locations:
          type: array
          nullable: true
          items:
            type: string
            enum:
              - us-east-1
              - us-east-2
              - us-west-1
              - us-west-2
              - ca-central-1
              - sa-east-1
              - eu-west-1
              - eu-central-1
              - eu-west-2
              - eu-west-3
              - eu-north-1
              - eu-south-1
              - me-south-1
              - ap-southeast-1
              - ap-northeast-1
              - ap-east-1
              - ap-southeast-2
              - ap-southeast-3
              - ap-northeast-2
              - ap-northeast-3
              - ap-south-1
              - af-south-1
          default: []
        tags:
          type: array
          items:
            type: string
            minLength: 1
          default: []
        alertSettings:
          $ref: '#/components/schemas/ChecksV1AlertSettings'
        useGlobalAlertSettings:
          type: boolean
          default: true
        groupId:
          type: number
          nullable: true
          default: null
        groupOrder:
          type: number
          nullable: true
          minimum: 0
          default: null
        runtimeId:
          type: string
          nullable: true
          enum:
            - '2026.04'
            - '2025.04'
            - '2024.09'
            - '2024.02'
            - '2023.09'
            - '2023.02'
            - '2022.10'
            - null
          default: null
        alertChannelSubscriptions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
        retryStrategy:
          $ref: '#/components/schemas/ChecksV1RetryStrategy'
        triggerIncident:
          $ref: '#/components/schemas/ChecksV1TriggerIncident'
        runParallel:
          type: boolean
          default: false
        description:
          type: string
          nullable: true
          maxLength: 500
          default: null
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          nullable: true
          format: date-time
        alertChannels:
          $ref: '#/components/schemas/ChecksV1AlertChannels'
        projectBindings:
          $ref: '#/components/schemas/ProjectBindingsV1'
        privateLocations:
          type: array
          nullable: true
          items:
            type: string
            minLength: 1
        checkType:
          type: string
          enum:
            - MULTI_STEP
        frequency:
          type: integer
          enum:
            - 1
            - 2
            - 5
            - 10
            - 15
            - 30
            - 60
            - 120
            - 180
            - 360
            - 720
            - 1440
          default: 10
        script:
          type: string
          nullable: true
        environmentVariables:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ChecksV1EnvironmentVariable'
          maxItems: 200
      required:
        - name
        - script
    ChecksV2GenericCheck:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        activated:
          type: boolean
          default: true
        muted:
          type: boolean
          default: false
        doubleCheck:
          type: boolean
          default: true
        shouldFail:
          type: boolean
          default: false
        locations:
          type: array
          nullable: true
          items:
            type: string
            enum:
              - us-east-1
              - us-east-2
              - us-west-1
              - us-west-2
              - ca-central-1
              - sa-east-1
              - eu-west-1
              - eu-central-1
              - eu-west-2
              - eu-west-3
              - eu-north-1
              - eu-south-1
              - me-south-1
              - ap-southeast-1
              - ap-northeast-1
              - ap-east-1
              - ap-southeast-2
              - ap-southeast-3
              - ap-northeast-2
              - ap-northeast-3
              - ap-south-1
              - af-south-1
          default: []
        tags:
          type: array
          items:
            type: string
            minLength: 1
          default: []
        alertSettings:
          $ref: '#/components/schemas/ChecksV1AlertSettings'
        useGlobalAlertSettings:
          type: boolean
          default: true
        groupId:
          type: number
          nullable: true
          default: null
        groupOrder:
          type: number
          nullable: true
          minimum: 0
          default: null
        runtimeId:
          type: string
          nullable: true
          enum:
            - '2026.04'
            - '2025.04'
            - '2024.09'
            - '2024.02'
            - '2023.09'
            - '2023.02'
            - '2022.10'
            - null
          default: null
        alertChannelSubscriptions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1AlertChannelSubscription'
        retryStrategy:
          $ref: '#/components/schemas/ChecksV1RetryStrategy'
        triggerIncident:
          $ref: '#/components/schemas/ChecksV1TriggerIncident'
        runParallel:
          type: boolean
          default: false
        description:
          type: string
          nullable: true
          maxLength: 500
          default: null
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          nullable: true
          format: date-time
        alertChannels:
          $ref: '#/components/schemas/ChecksV1AlertChannels'
        projectBindings:
          $ref: '#/components/schemas/ProjectBindingsV1'
        privateLocations:
          type: array
          nullable: true
          items:
            type: string
            minLength: 1
        frequency:
          type: integer
          enum:
            - 0
            - 1
            - 2
            - 5
            - 10
            - 15
            - 30
            - 60
            - 120
            - 180
            - 360
            - 720
            - 1440
          default: 10
        frequencyOffset:
          type: integer
          minimum: 1
        degradedResponseTime:
          type: number
          nullable: true
        maxResponseTime:
          type: number
          nullable: true
        checkType:
          $ref: '#/components/schemas/ChecksV1CheckType'
        request:
          anyOf:
            - $ref: '#/components/schemas/ChecksV1ApiRequest'
            - $ref: '#/components/schemas/ChecksV1TcpRequest'
            - $ref: '#/components/schemas/ChecksV1UrlRequest'
            - $ref: '#/components/schemas/ChecksV1DnsRequest'
            - $ref: '#/components/schemas/ChecksV1IcmpRequest'
            - $ref: '#/components/schemas/ChecksV1TracerouteRequestRead'
            - $ref: '#/components/schemas/ChecksV1GrpcRequestRead'
            - $ref: '#/components/schemas/ChecksV1SslRequestRead'
            - nullable: true
        heartbeat:
          allOf:
            - $ref: '#/components/schemas/ChecksV1Heartbeat'
            - nullable: true
        script:
          type: string
          nullable: true
        scriptPath:
          type: string
          nullable: true
        sslCheckDomain:
          type: string
          nullable: true
        environmentVariables:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/ChecksV1EnvironmentVariable'
          maxItems: 200
        setupSnippetId:
          type: number
          nullable: true
          default: null
        tearDownSnippetId:
          type: number
          nullable: true
          default: null
        localSetupScript:
          type: string
          nullable: true
          default: null
        localTearDownScript:
          type: string
          nullable: true
          default: null
        dependencies:
          $ref: '#/components/schemas/ChecksV1DependencyList'
        setupScriptDependencies:
          $ref: '#/components/schemas/ChecksV1DependencyList'
        tearDownScriptDependencies:
          $ref: '#/components/schemas/ChecksV1DependencyList'
      required:
        - name
        - checkType
    ChecksV1AlertSettings:
      type: object
      nullable: true
      properties:
        escalationType:
          type: string
          enum:
            - RUN_BASED
            - TIME_BASED
          default: RUN_BASED
        reminders:
          type: object
          properties:
            amount:
              type: integer
              enum:
                - 0
                - 1
                - 2
                - 3
                - 4
                - 5
                - 100000
              default: 0
            interval:
              type: integer
              enum:
                - 1
                - 2
                - 3
                - 4
                - 5
                - 10
                - 15
                - 30
              default: 5
        sslCertificates:
          type: object
          properties:
            enabled:
              type: boolean
            alertThreshold:
              type: integer
        runBasedEscalation:
          $ref: '#/components/schemas/ChecksV1AlertSettingsRunBasedEscalation'
        timeBasedEscalation:
          $ref: '#/components/schemas/ChecksV1AlertSettingsTimeBasedEscalation'
        parallelRunFailureThreshold:
          type: object
          properties:
            enabled:
              type: boolean
              default: false
            percentage:
              type: integer
              enum:
                - 10
                - 20
                - 30
                - 40
                - 50
                - 60
                - 70
                - 80
                - 90
                - 100
              default: 10
      default:
        escalationType: RUN_BASED
        runBasedEscalation:
          failedRunThreshold: 1
        reminders:
          amount: 0
          interval: 5
        parallelRunFailureThreshold:
          enabled: false
          percentage: 10
    ChecksV1AlertChannelSubscription:
      type: object
      properties:
        alertChannelId:
          type: number
        activated:
          type: boolean
      required:
        - alertChannelId
        - activated
    ChecksV1TriggerIncident:
      type: object
      nullable: true
      properties:
        serviceId:
          type: string
          minLength: 1
          format: uuid
        severity:
          type: string
          enum:
            - CRITICAL
            - MAJOR
            - MEDIUM
            - MINOR
        name:
          type: string
        description:
          type: string
        notifySubscribers:
          type: boolean
      required:
        - serviceId
        - severity
        - name
        - description
        - notifySubscribers
    ChecksV1AlertChannels:
      type: object
      nullable: true
      properties:
        email:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1AlertEmail'
        webhook:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1AlertWebhook'
        slack:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1AlertSlack'
        sms:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1AlertSms'
    ProjectBindingsV1:
      type: object
      description: >-
        The Checkly CLI projects that manage this resource. `owner` is null and
        `references` empty when the resource is not managed by code.
      properties:
        owner:
          $ref: '#/components/schemas/ProjectBindingOwnerV1'
        references:
          $ref: '#/components/schemas/ProjectBindingReferencesV1'
      required:
        - owner
        - references
    ChecksV1Heartbeat:
      type: object
      properties:
        period:
          type: number
          description: Interval expected between pings.
        periodUnit:
          type: string
          enum:
            - seconds
            - minutes
            - hours
            - days
        grace:
          type: number
          description: Grace added to the period.
        graceUnit:
          type: string
          enum:
            - seconds
            - minutes
            - hours
            - days
        pingToken:
          type: string
          nullable: true
          x-format:
            guid: true
          description: UUID token used to build a unique ping URL.
        pingUrl:
          type: string
      required:
        - period
        - periodUnit
        - grace
        - graceUnit
    ChecksV1EnvironmentVariable:
      type: object
      properties:
        key:
          type: string
          minLength: 1
        value:
          type: string
          nullable: true
        locked:
          type: boolean
          default: false
        secret:
          type: boolean
          default: false
      required:
        - key
        - value
    ChecksV1RetryStrategy:
      type: object
      nullable: true
      properties:
        type:
          type: string
          enum:
            - FIXED
            - LINEAR
            - EXPONENTIAL
            - SINGLE_RETRY
        baseBackoffSeconds:
          type: number
          default: 60
        sameRegion:
          type: boolean
          default: true
        maxRetries:
          type: number
          minimum: 1
          maximum: 10
        maxDurationSeconds:
          type: number
          minimum: 0
          maximum: 600
        onlyOn:
          type: array
          items:
            type: string
            enum:
              - NETWORK_ERROR
      required:
        - type
    ChecksV1IcmpRequest:
      type: object
      properties:
        hostname:
          type: string
          minLength: 1
          maxLength: 2048
        ipFamily:
          type: string
          nullable: true
          enum:
            - IPv4
            - IPv6
            - null
          default: IPv4
        pingCount:
          type: integer
          nullable: true
          minimum: 1
          maximum: 50
          default: 10
        assertions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1IcmpAssertion'
          default: []
      required:
        - hostname
    ChecksV1TracerouteRequestRead:
      type: object
      properties:
        url:
          type: string
        protocol:
          type: string
          nullable: true
          enum:
            - TCP
            - ICMP
            - UDP
            - SCTP
            - null
        port:
          type: integer
          nullable: true
          minimum: 1
          maximum: 65535
        ipFamily:
          type: string
          nullable: true
          enum:
            - IPv4
            - IPv6
            - null
        maxHops:
          type: integer
          nullable: true
          minimum: 1
          maximum: 64
        maxUnknownHops:
          type: integer
          nullable: true
          minimum: 1
          maximum: 30
        ptrLookup:
          type: boolean
          nullable: true
        timeout:
          type: integer
          nullable: true
          minimum: 1
          maximum: 30
        assertions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1TracerouteAssertionRead'
    ChecksV1GrpcRequestRead:
      type: object
      properties:
        url:
          type: string
        port:
          anyOf:
            - type: integer
            - type: string
        ipFamily:
          type: string
          nullable: true
          enum:
            - IPv4
            - IPv6
            - null
        skipSSL:
          type: boolean
        timeout:
          type: integer
          nullable: true
        grpcConfig:
          $ref: '#/components/schemas/ChecksV1GrpcConfigRead'
        assertions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1GrpcAssertionRead'
          default: []
    ChecksV1SslRequestRead:
      type: object
      properties:
        sslConfig:
          $ref: '#/components/schemas/ChecksV1SslConfigRead'
        sslClientCertificateId:
          type: string
          nullable: true
          minLength: 1
          format: uuid
        assertions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1SslAssertionPatch'
      required:
        - sslConfig
    ChecksV1ApiRequest:
      type: object
      properties:
        method:
          type: string
          enum:
            - GET
            - POST
            - PUT
            - HEAD
            - DELETE
            - PATCH
        url:
          type: string
          minLength: 1
          maxLength: 2048
        followRedirects:
          type: boolean
        skipSSL:
          type: boolean
          default: false
        ipFamily:
          type: string
          enum:
            - IPv4
            - IPv6
          default: IPv4
        body:
          type: string
          default: ''
        bodyType:
          type: string
          enum:
            - JSON
            - FORM
            - RAW
            - GRAPHQL
            - NONE
          default: NONE
        headers:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1KeyValue'
          default: []
        queryParameters:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1KeyValue'
          default: []
        assertions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1ApiAssertion'
          default: []
        basicAuth:
          $ref: '#/components/schemas/ChecksV1BasicAuth'
      required:
        - method
        - url
    ChecksV1TcpRequest:
      type: object
      properties:
        url:
          type: string
          minLength: 1
          maxLength: 2048
        hostname:
          type: string
          minLength: 1
          maxLength: 2048
        port:
          type: number
        body:
          type: string
          nullable: true
          minLength: 1
          default: null
        data:
          type: string
          nullable: true
          minLength: 1
          default: null
        assertions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1TcpAssertion'
          default: []
        ipFamily:
          type: string
          enum:
            - IPv4
            - IPv6
          default: IPv4
      required:
        - port
    ChecksV1UrlRequest:
      type: object
      properties:
        method:
          type: string
          enum:
            - GET
          default: GET
        url:
          type: string
          minLength: 1
          maxLength: 2048
        followRedirects:
          type: boolean
        skipSSL:
          type: boolean
          default: false
        ipFamily:
          type: string
          enum:
            - IPv4
            - IPv6
          default: IPv4
        assertions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1UrlAssertion'
          default: []
      required:
        - url
    ChecksV1DnsRequest:
      type: object
      properties:
        query:
          type: string
          minLength: 1
          maxLength: 100
        nameServer:
          type: string
          maxLength: 100
        port:
          type: number
        recordType:
          type: string
          enum:
            - A
            - AAAA
            - CNAME
            - MX
            - TXT
            - SOA
            - NS
            - HTTPS
        assertions:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1DnsAssertion'
          default: []
        protocol:
          type: string
          enum:
            - TCP
            - UDP
          default: UDP
      required:
        - query
        - recordType
    ChecksV1CheckType:
      type: string
      enum:
        - AGENTIC
        - API
        - BROWSER
        - HEARTBEAT
        - ICMP
        - MULTI_STEP
        - TCP
        - PLAYWRIGHT
        - TRACEROUTE
        - URL
        - DNS
        - SSL
        - GRPC
    ChecksV1DependencyList:
      type: array
      nullable: true
      items:
        $ref: '#/components/schemas/ChecksV1Dependency'
    ChecksV1AlertSettingsRunBasedEscalation:
      type: object
      properties:
        failedRunThreshold:
          type: integer
          enum:
            - 1
            - 2
            - 3
            - 4
            - 5
    ChecksV1AlertSettingsTimeBasedEscalation:
      type: object
      properties:
        minutesFailingThreshold:
          type: integer
          enum:
            - 5
            - 10
            - 15
            - 30
    ChecksV1AlertEmail:
      type: object
      properties:
        address:
          type: string
          minLength: 1
          default: ''
    ChecksV1AlertWebhook:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          default: ''
        url:
          type: string
          minLength: 1
          default: ''
        method:
          type: string
          nullable: true
          minLength: 1
          default: POST
        headers:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1KeyValue'
          default: []
        queryParameters:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1KeyValue'
          default: []
    ChecksV1AlertSlack:
      type: object
      properties:
        url:
          type: string
          minLength: 1
          default: ''
    ChecksV1AlertSms:
      type: object
      properties:
        number:
          type: string
          minLength: 1
          default: ''
        name:
          type: string
      required:
        - name
    ProjectBindingOwnerV1:
      type: object
      description: >-
        The project that owns this resource — the one whose deploy can delete
        it. Null when no project owns it, including when other projects merely
        reference it. In the rare case that several projects hold an ownership
        record for one resource, this reports the preferred one and the rest are
        omitted.
      nullable: true
      properties:
        project:
          $ref: '#/components/schemas/BindingProjectV1'
        binding:
          $ref: '#/components/schemas/ProjectBindingDetailsV1'
      required:
        - project
        - binding
    ProjectBindingReferencesV1:
      type: array
      description: >-
        Projects that use this resource without owning it; their deploys leave
        it alone. Empty when there are none.
      items:
        $ref: '#/components/schemas/ProjectBindingV1'
    ChecksV1IcmpAssertion:
      type: object
      properties:
        source:
          type: string
          enum:
            - LATENCY
            - JSON_RESPONSE
        comparison:
          type: string
          enum:
            - EQUALS
            - NOT_EQUALS
            - IS_EMPTY
            - NOT_EMPTY
            - GREATER_THAN
            - LESS_THAN
            - CONTAINS
            - NOT_CONTAINS
            - IS_NULL
            - NOT_NULL
        property:
          type: string
          default: ''
        target:
          type: string
          default: ''
        regex:
          type: string
          nullable: true
          default: ''
    ChecksV1TracerouteAssertionRead:
      type: object
      properties:
        source:
          type: string
          enum:
            - RESPONSE_TIME
            - HOP_COUNT
            - PACKET_LOSS
        comparison:
          type: string
        property:
          type: string
          default: ''
        target:
          type: string
          default: ''
        regex:
          type: string
          nullable: true
          default: ''
    ChecksV1GrpcConfigRead:
      type: object
      properties:
        mode:
          type: string
          enum:
            - BEHAVIOR
            - HEALTH
        tls:
          type: boolean
        metadata:
          type: array
          items:
            $ref: '#/components/schemas/ChecksV1GrpcMetadataItem'
          maxItems: 50
          default: []
        service:
          type: string
          nullable: true
        encoding:
          anyOf:
            - type: string
              enum:
                - PROTOBUF
                - FLATBUFFERS
            - type: string
              enum:
                - ''
            - nullable: true
        bfbsContent:
          type: string
          nullable: true
        serviceDefinition:
          anyOf:
            - type: string
              enum:
                - REFLECTION
                - PROTO_FILE
            - type: string
              enum:
                - ''
            - nullable: true
        method:
          type: string
          nullable: true
        protoContent:
          type: string
          nullable: true
        message:
          type: string
          nullable: true
    ChecksV1GrpcAssertionRead:
      type: object
      properties:
        source:
          type: string
          enum:
            - RESPONSE_TIME
            - GRPC_RESPONSE
            - TEXT_BODY
            - GRPC_METADATA
            - GRPC_HEALTHCHECK_STATUS
            - GRPC_STATUS_CODE
        comparison:
          type: string
          enum:
            - 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:
          type: string
          default: ''
        target:
          type: string
          default: ''
        regex:
          type: string
          nullable: true
          default: ''
    ChecksV1SslConfigRead:
      type: object
      properties:
        hostname:
          type: string
          minLength: 1
          maxLength: 2048
          pattern: ^[^\x00-\x1f\x7f]*$
        port:
          type: integer
          minimum: 1
          maximum: 65535
        serverName:
          anyOf:
            - type: string
              minLength: 1
              maxLength: 2048
              pattern: ^[^\x00-\x1f\x7f]*$
            - type: string
              enum:
                - ''
            - nullable: true
        ipFamily:
          type: string
          enum:
            - IPv4
            - IPv6
        skipChainValidation:
          type: boolean
        handshakeTimeoutMs:
          type: integer
          minimum: 1000
          maximum: 30000
        alertDaysBeforeExpiry:
          type: integer
          minimum: 1
          maximum: 365
        securityBaseline:
          $ref: '#/components/schemas/ChecksV1SslSecurityBaselineRead'
        clientCertificateMode:
          type: string
          enum:
            - auto
            - explicit
      required:
        - hostname
    ChecksV1SslAssertionPatch:
      type: object
      properties:
        source:
          type: string
          enum:
            - CERTIFICATE
            - CONNECTION
            - RESPONSE_TIME
            - JSON_RESPONSE
            - TEXT_RESPONSE
        property:
          type: string
        comparison:
          type: string
        target:
          type: string
        regex:
          type: string
          nullable: true
      required:
        - source
        - comparison
    ChecksV1KeyValue:
      type: object
      properties:
        key:
          type: string
          minLength: 1
        value:
          type: string
        locked:
          type: boolean
          default: false
      required:
        - key
        - value
    ChecksV1ApiAssertion:
      type: object
      properties:
        source:
          type: string
          enum:
            - STATUS_CODE
            - JSON_BODY
            - HEADERS
            - TEXT_BODY
            - RESPONSE_TIME
        comparison:
          type: string
          enum:
            - 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:
          type: string
          default: ''
        target:
          type: string
          default: ''
        regex:
          type: string
          nullable: true
          default: ''
    ChecksV1BasicAuth:
      type: object
      nullable: true
      properties:
        username:
          type: string
        password:
          type: string
      required:
        - username
        - password
    ChecksV1TcpAssertion:
      type: object
      properties:
        source:
          type: string
          enum:
            - RESPONSE_DATA
            - RESPONSE_TIME
        comparison:
          type: string
          enum:
            - EQUALS
            - NOT_EQUALS
            - IS_EMPTY
            - NOT_EMPTY
            - LESS_THAN
            - GREATER_THAN
            - CONTAINS
            - NOT_CONTAINS
        property:
          type: string
          default: ''
        target:
          type: string
          default: ''
        regex:
          type: string
          nullable: true
          default: ''
    ChecksV1UrlAssertion:
      type: object
      properties:
        source:
          type: string
          enum:
            - STATUS_CODE
        comparison:
          type: string
          enum:
            - EQUALS
            - NOT_EQUALS
            - LESS_THAN
            - GREATER_THAN
        property:
          type: string
          default: ''
        target:
          type: string
          default: ''
        regex:
          type: string
          nullable: true
          default: ''
    ChecksV1DnsAssertion:
      type: object
      properties:
        source:
          type: string
          enum:
            - RESPONSE_TIME
            - RESPONSE_CODE
            - TEXT_ANSWER
            - JSON_ANSWER
        comparison:
          type: string
          enum:
            - 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:
          type: string
          default: ''
        target:
          type: string
          default: ''
        regex:
          type: string
          nullable: true
          default: ''
    ChecksV1Dependency:
      type: object
      properties:
        path:
          type: string
          minLength: 1
          maxLength: 1000
        content:
          type: string
          minLength: 1
      required:
        - path
        - content
    BindingProjectV1:
      type: object
      description: The project this binding is to.
      properties:
        id:
          type: string
          description: The ID of the project.
        logicalId:
          type: string
          description: The logical ID of the project, as declared in code.
        name:
          type: string
          description: The name of the project.
      required:
        - id
        - logicalId
        - name
    ProjectBindingDetailsV1:
      type: object
      description: The resource's side of this binding.
      properties:
        logicalId:
          type: string
          description: The resource's logical ID within this project, as declared in code.
          example: homepage-check
        pending:
          type: boolean
          description: >-
            True when the binding is reserved by an import plan that has not
            been deployed yet.
      required:
        - logicalId
        - pending
    ProjectBindingV1:
      type: object
      properties:
        project:
          $ref: '#/components/schemas/BindingProjectV1'
        binding:
          $ref: '#/components/schemas/ProjectBindingDetailsV1'
      required:
        - project
        - binding
    ChecksV1GrpcMetadataItem:
      type: object
      properties:
        key:
          type: string
          minLength: 1
          maxLength: 256
        value:
          type: string
          maxLength: 8192
      required:
        - key
        - value
    ChecksV1SslSecurityBaselineRead:
      type: object
      properties:
        enabled:
          type: boolean
        minTLSVersion:
          type: object
          properties:
            value:
              type: string
              enum:
                - TLS1.2
                - TLS1.3
            severity:
              type: string
              enum:
                - fail
                - degrade
                - ignore
          default: {}
        minKeySizeBits:
          type: object
          properties:
            value:
              type: integer
              minimum: 1024
              maximum: 16384
            severity:
              type: string
              enum:
                - fail
                - degrade
                - ignore
          default: {}
        weakSignatureAlgorithm:
          type: object
          properties:
            severity:
              type: string
              enum:
                - fail
                - degrade
                - ignore
          default: {}
        weakCipherSuite:
          type: object
          properties:
            severity:
              type: string
              enum:
                - fail
                - degrade
                - ignore
          default: {}
        knownBadCA:
          type: object
          properties:
            severity:
              type: string
              enum:
                - fail
                - degrade
                - ignore
          default: {}
        recommendedTLSVersion:
          type: object
          properties:
            value:
              type: string
              enum:
                - TLS1.2
                - TLS1.3
            severity:
              type: string
              enum:
                - fail
                - degrade
                - ignore
          default: {}
        recommendedKeySizeBits:
          type: object
          properties:
            value:
              type: integer
              minimum: 1024
              maximum: 16384
            severity:
              type: string
              enum:
                - fail
                - degrade
                - ignore
          default: {}
        ocspMustStapleRespected:
          type: object
          properties:
            severity:
              type: string
              enum:
                - fail
                - degrade
                - ignore
          default: {}
        sctPresent:
          type: object
          properties:
            severity:
              type: string
              enum:
                - fail
                - degrade
                - ignore
          default: {}
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: Bearer
      description: >-
        The Checkly Public API uses API keys to authenticate requests. You can
        get the API Key
        [here](https://app.checklyhq.com/settings/user/api-keys). 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]"` 

````