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

# Resolve Check

Use this API to resolve every open agent comment of one check in one call, for a person (`by: "user"`) or an MCP client (`by: "mcp"`). Each comment is resolved as [Resolve Comment](https://velt.dev/docs/api-reference/rest-apis/v2/agents/checks/comments/resolve.md) does: Resolved, and waiting for the scan that verifies it. All of them share one verify window, so each of the check's agents rescans once.

The resolve starts a verify rescan, which uses AI credits at the flat rescan rate. It is idempotent: a comment that already waits for its rescan is counted in `alreadyPending`, not resolved again, and not charged again.

At most 5,000 open comments are resolved in one call. Attached comments are not included. See [Checks Overview](https://velt.dev/docs/api-reference/rest-apis/v2/agents/checks/overview.md).

# Endpoint

`POST https://api.velt.dev/v2/agents/checks/resolve`

# Headers

**x-velt-api-key** `string` *required*

Your API key.

**x-velt-auth-token** `string` *required*

Your [Auth Token](https://velt.dev/docs/security/auth-tokens.md).

# Body

#### Params

**data** `object` *required*

**properties**

**organizationId** `string` *required*

1 to 512 characters. The organization of the project.

**documentId** `string` *required*

1 to 512 characters. The document of the project.

**ruleKey** `string` *required*

The check. `[a-z0-9:-]`, at most 120 characters.

**by** `string` *required*

Who resolves: `"user"` (a person) or `"mcp"` (an MCP client). Any other value is rejected.

**userId** `string` *required*

1 to 512 characters. Recorded as the person who resolved the comments.

**userName** `string`

At most 512 characters. The person's name, for the verify rescans.

**userEmail** `string`

At most 512 characters. The person's email, for the verify rescans.

The schema uses `.strict()`: unknown fields are rejected.

## **Example Requests**

```JSON theme={null}
{
  "data": {
    "organizationId": "org_acme",
    "documentId": "acme-marketing-site",
    "ruleKey": "link-broken",
    "by": "mcp",
    "userId": "user_jordan"
  }
}
```

# Response

#### Success Response

```JSON theme={null}
{
  "result": {
    "status": "success",
    "message": "Check resolved",
    "data": {
      "resolved": 3,
      "alreadyPending": 1,
      "rescanExecutionIds": ["exec_4Wq7Zx2Np8"],
      "truncated": false
    }
  }
}
```

| Field | Type | Description |
| - | - | - |
| `data.resolved` | number | Comments this call resolved. |
| `data.alreadyPending` | number | Comments that already waited for their verify rescan: nothing new started, nothing charged. |
| `data.rescanExecutionIds` | string\[] | The verify runs of the comments that already waited, when they have started. The comments resolved now are queued and have no run id yet. |
| `data.truncated` | boolean | `true` when the check had more than 5,000 open comments. The rest stay open: call again. |

#### Failure Response

```JSON theme={null}
{
  "error": {
    "message": "Workspace not found or has no store database for the checks engine",
    "status": "NOT_FOUND",
    "details": {
      "reason": "CHECKS_WORKSPACE_NOT_FOUND"
    }
  }
}
```

**Errors:** `INVALID_ARGUMENT` (a body outside the schema: a missing or malformed `ruleKey`, a missing `userId`, a `by` other than `"user"` or `"mcp"`, or an unknown field) / `NOT_FOUND` with `CHECKS_WORKSPACE_NOT_FOUND` (the workspace has no store database).

```js theme={null}
{
  "result": {
    "status": "success",
    "message": "Check resolved",
    "data": {
      "resolved": 0,
      "alreadyPending": 0,
      "rescanExecutionIds": [],
      "truncated": false
    }
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.