---
title: update-a-check
product: vercel
url: /docs/rest-api/checks/update-a-check
canonical_url: "https://vercel.com/docs/rest-api/checks/update-a-check"
last_updated: 2026-11-13
type: reference
prerequisites:
  []
related:
  - /docs/rest-api
summary: Learn about update-a-check on Vercel.
install_vercel_plugin: npx plugins add vercel/vercel-plugin
search_with_vercel_cli: npx vercel@latest docs search "<query>"
---

# Update a check

> **Deprecated**: This endpoint is deprecated and may be removed in a future version.

```http
PATCH /v1/deployments/{deploymentId}/checks/{checkId}
```

Update an existing check. This endpoint must be called with an OAuth2 or it will produce a 400 error.

## Authentication

**bearerToken**: HTTP bearer

## Path parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `deploymentId` | string | Yes | The deployment to update the check for. |
| `checkId` | string | Yes | The check being updated |


## Query parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `teamId` | string | No | The Team identifier to perform the request on behalf of. |
| `slug` | string | No | The Team slug to perform the request on behalf of. |


## Request body

Required: Yes

Content-Type: `application/json`

```json
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the check being created",
      "maxLength": 100
    },
    "path": {
      "type": "string",
      "description": "Path of the page that is being checked",
      "maxLength": 255
    },
    "status": {
      "description": "The current status of the check",
      "enum": [
        "running",
        "completed"
      ]
    },
    "conclusion": {
      "description": "The result of the check being run",
      "enum": [
        "canceled",
        "failed",
        "neutral",
        "succeeded",
        "skipped"
      ]
    },
    "detailsUrl": {
      "type": "string",
      "description": "A URL a user may visit to see more information about the check"
    },
    "output": {
      "type": "object",
      "description": "The results of the check Run",
      "properties": {
        "metrics": {
          "type": "object",
          "description": "Metrics about the page",
          "required": [
            "FCP",
            "LCP",
            "CLS",
            "TBT"
          ],
          "properties": {
            "FCP": {
              "type": "object",
              "required": [
                "value",
                "source"
              ]
            },
            "LCP": {
              "type": "object",
              "required": [
                "value",
                "source"
              ]
            },
            "CLS": {
              "type": "object",
              "required": [
                "value",
                "source"
              ]
            },
            "TBT": {
              "type": "object",
              "required": [
                "value",
                "source"
              ]
            },
            "virtualExperienceScore": {
              "type": "object",
              "required": [
                "value",
                "source"
              ]
            }
          }
        }
      }
    },
    "externalId": {
      "type": "string",
      "description": "An identifier that can be used as an external reference"
    }
  }
}
```

## Example request

### TypeScript

```typescript
const response = await fetch('https://api.vercel.com/v1/deployments/deploymentId/checks/checkId?teamId=string&slug=string', {
  method: 'PATCH',
  headers: {
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "name": "Performance Check",
    "path": "/",
    "status": "running",
    "conclusion": "canceled",
    "detailsUrl": "https://example.com/check/run/1234abc",
    "output": {
      "metrics": {
        "FCP": {},
        "LCP": {},
        "CLS": {},
        "TBT": {},
        "virtualExperienceScore": {}
      }
    },
    "externalId": "1234abc"
  }),
});

const data = await response.json();
console.log(data);
```

### Next.js

```typescript
'use server';

export async function callEndpoint() {
  const response = await fetch('https://api.vercel.com/v1/deployments/deploymentId/checks/checkId?teamId=string&slug=string', {
    method: 'PATCH',
    headers: {
      'Authorization': `Bearer ${process.env.VERCEL_ACCESS_TOKEN}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      "name": "Performance Check",
      "path": "/",
      "status": "running",
      "conclusion": "canceled",
      "detailsUrl": "https://example.com/check/run/1234abc",
      "output": {
        "metrics": {
          "FCP": {},
          "LCP": {},
          "CLS": {},
          "TBT": {},
          "virtualExperienceScore": {}
        }
      },
      "externalId": "1234abc"
    }),
    next: { revalidate: 3600 }
  });

  if (!response.ok) {
    throw new Error('Request failed');
  }

  return response.json();
}
```

### cURL

```bash
curl -X PATCH 'https://api.vercel.com/v1/deployments/deploymentId/checks/checkId?teamId=string&slug=string' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  -H 'Content-Type: application/json' \
  -d "{
    \"name\": \"Performance Check\",
    \"path\": \"/\",
    \"status\": \"running\",
    \"conclusion\": \"canceled\",
    \"detailsUrl\": \"https://example.com/check/run/1234abc\",
    \"output\": {
      \"metrics\": {
        \"FCP\": {},
        \"LCP\": {},
        \"CLS\": {},
        \"TBT\": {},
        \"virtualExperienceScore\": {}
      }
    },
    \"externalId\": \"1234abc\"
  }"
```

## Example response

```json
{
  "blocking": "false",
  "completedAt": "123",
  "conclusion": "canceled",
  "createdAt": "123",
  "deploymentId": "example_id",
  "detailsUrl": "https://example.com",
  "externalId": "example_id",
  "id": "icfg_1234567890",
  "integrationId": "example_id",
  "name": "Example Name",
  "output": {
    "metrics": {
      "CLS": {},
      "FCP": {},
      "LCP": {},
      "TBT": {},
      "virtualExperienceScore": {}
    }
  },
  "path": "string",
  "rerequestable": "false",
  "startedAt": "123",
  "status": "completed",
  "updatedAt": "123"
}
```

## Responses

### 200: No description

Content-Type: `application/json`

```json
{
  "type": "object",
  "required": [
    "blocking",
    "createdAt",
    "deploymentId",
    "id",
    "integrationId",
    "name",
    "status",
    "updatedAt"
  ],
  "properties": {
    "blocking": {
      "type": "boolean",
      "enum": [
        false,
        true
      ]
    },
    "completedAt": {
      "type": "number"
    },
    "conclusion": {
      "type": "string",
      "enum": [
        "canceled",
        "failed",
        "neutral",
        "skipped",
        "stale",
        "succeeded"
      ]
    },
    "createdAt": {
      "type": "number"
    },
    "deploymentId": {
      "type": "string"
    },
    "detailsUrl": {
      "type": "string"
    },
    "externalId": {
      "type": "string"
    },
    "id": {
      "type": "string"
    },
    "integrationId": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "output": {
      "type": "object",
      "properties": {
        "metrics": {
          "type": "object",
          "required": [
            "CLS",
            "FCP",
            "LCP",
            "TBT"
          ],
          "properties": {
            "CLS": {
              "type": "object",
              "required": [
                "source",
                "value"
              ]
            },
            "FCP": {
              "type": "object",
              "required": [
                "source",
                "value"
              ]
            },
            "LCP": {
              "type": "object",
              "required": [
                "source",
                "value"
              ]
            },
            "TBT": {
              "type": "object",
              "required": [
                "source",
                "value"
              ]
            },
            "virtualExperienceScore": {
              "type": "object",
              "required": [
                "source",
                "value"
              ]
            }
          }
        }
      }
    },
    "path": {
      "type": "string"
    },
    "rerequestable": {
      "type": "boolean",
      "enum": [
        false,
        true
      ]
    },
    "startedAt": {
      "type": "number"
    },
    "status": {
      "type": "string",
      "enum": [
        "completed",
        "registered",
        "running"
      ]
    },
    "updatedAt": {
      "type": "number"
    }
  }
}
```

### 400: One of the provided values in the request body is invalid.
One of the provided values in the request query is invalid.
The provided token is not from an OAuth2 Client

### 401: The request is not authorized.

### 403: You do not have permission to access this resource.

### 404: Check was not found
The deployment was not found

### 410: No description

### 413: The output provided is too large

---

## Related

- [checks endpoints](/docs/rest-api#checks)

- [REST API overview](/docs/rest-api)

- [OpenAPI spec](https://vercel.com/openapi.json) (machine-readable, all endpoints)

## Search the docs from your terminal

Search the Vercel docs and read pages as Markdown with the Vercel CLI. No login required.

```bash
# Find docs pages by keyword
npx vercel@latest docs search "environment variables"
npx vercel@latest docs search "function timeout"

# Print a docs page as Markdown, by path or URL
npx vercel@latest docs inspect <page>
```

---

[View full sitemap](/docs/sitemap)


If you encounter incorrect information, can’t find what you need, need a capability Vercel doesn’t currently offer, or have any other feedback to report, please do it by following the instructions at https://vercel.com/feedback.md.
