---
title: "Create a check"
method: POST
path: "/v2/projects/{projectIdOrName}/checks"
tags: ["checks-v2"]
---

# Create a check

`POST /v2/projects/{projectIdOrName}/checks`

## Request

- Base URL: `https://api.vercel.com`
- URL: `https://api.vercel.com/v2/projects/{projectIdOrName}/checks`
- Auth: HTTP bearer

Creates a new check for a project.

## Path parameters

- `projectIdOrName` string, required

## Query parameters

- `teamId` string
- `slug` string

## Request body

- object
  - `name` string, required
  - `isRerequestable` boolean
  - `requires` 'build-ready' | 'deployment-url' | 'none', required
  - `targets` string[]
  - `blocks` 'build-start' | 'deployment-start' | 'deployment-alias' | 'deployment-promotion' | 'none'
  - `source` union
    - object
      - `kind` string
      - `integrationId` string
      - `integrationConfigurationId` string
      - `resourceId` string
      - `externalResourceId` string
    - object
      - `kind` string, required
      - `webhookId` string
    - object
      - `kind` string, required
      - `externalCheckName` string, required
      - `provider` 'github', required
  - `timeout` number

## Response `200`

- object
  - `blocks` 'build-start' | 'deployment-alias' | 'deployment-promotion' | 'deployment-start' | 'none', required
  - `createdAt` number, required
  - `deletedAt` number
  - `id` string, required
  - `isRerequestable` false | true, required
  - `name` string, required
  - `ownerId` string, required
  - `projectId` string, required
  - `requires` 'build-ready' | 'deployment-url' | 'none', required
  - `source` union, required
    - object
      - `externalResourceId` string
      - `integrationConfigurationId` string, required
      - `integrationId` string, required
      - `kind` 'integration', required
      - `resourceId` string
    - object
      - `kind` 'webhook', required
      - `webhookId` string
    - object
      - `externalCheckName` string, required
      - `kind` 'git-provider', required
      - `provider` 'bitbucket' | 'github' | 'gitlab', required
  - `sourceIntegrationConfigurationId` string
  - `sourceKind` 'git-provider' | 'integration' | 'vercel' | 'webhook' | 'integration' | 'webhook' | 'git-provider', required
  - `targets` string[], required
  - `timeout` number, required
  - `updatedAt` number, required

## Other responses

- `400`: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid.
- `401`: The request is not authorized.
- `403`: You do not have permission to access this resource.
- `404`
- `410`
- `500`

## Changes

- **2026-10-06** `d8abdc297e36`: 3 info
  - added the new optional request property `source/oneOf[subschema #1]/integrationConfigurationId`
  - added the new optional request property `source/oneOf[subschema #1]/integrationId`
  - added the new optional request property `source/oneOf[subschema #1]/resourceId`
- **2026-09-30** `099fbe1f521c`: 1 info
  - added the non-success response with the status `404`
- **2026-07-21** `2ae10ee9d21c`: 1 info
  - added the non-success response with the status `410`
- **2026-06-11** `14b4658f819e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/vercel/apis/vercel-api/changes/v2/projects/:projectIdOrName/checks/post.md)

---

[API](https://skmtc.dev/vercel/apis/vercel-api.md) - [All operations](https://skmtc.dev/vercel/apis/vercel-api/llms.txt) - [OpenAPI document](https://skmtc.dev/vercel/apis/vercel-api/revisions/60686c0e1f6a?raw)
