List Checks
curl --request POST \
--url https://api.velt.dev/v2/agents/checks/list \
--header 'Content-Type: application/json' \
--header 'x-velt-api-key: <x-velt-api-key>' \
--header 'x-velt-auth-token: <x-velt-auth-token>' \
--data '
{
"data": {
"organizationId": "<string>",
"documentId": "<string>",
"filters": {}
}
}
'import requests
url = "https://api.velt.dev/v2/agents/checks/list"
payload = { "data": {
"organizationId": "<string>",
"documentId": "<string>",
"filters": {}
} }
headers = {
"x-velt-api-key": "<x-velt-api-key>",
"x-velt-auth-token": "<x-velt-auth-token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-velt-api-key': '<x-velt-api-key>',
'x-velt-auth-token': '<x-velt-auth-token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({data: {organizationId: '<string>', documentId: '<string>', filters: {}}})
};
fetch('https://api.velt.dev/v2/agents/checks/list', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.velt.dev/v2/agents/checks/list",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'data' => [
'organizationId' => '<string>',
'documentId' => '<string>',
'filters' => [
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-velt-api-key: <x-velt-api-key>",
"x-velt-auth-token: <x-velt-auth-token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.velt.dev/v2/agents/checks/list"
payload := strings.NewReader("{\n \"data\": {\n \"organizationId\": \"<string>\",\n \"documentId\": \"<string>\",\n \"filters\": {}\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-velt-api-key", "<x-velt-api-key>")
req.Header.Add("x-velt-auth-token", "<x-velt-auth-token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.velt.dev/v2/agents/checks/list")
.header("x-velt-api-key", "<x-velt-api-key>")
.header("x-velt-auth-token", "<x-velt-auth-token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"organizationId\": \"<string>\",\n \"documentId\": \"<string>\",\n \"filters\": {}\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.velt.dev/v2/agents/checks/list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-velt-api-key"] = '<x-velt-api-key>'
request["x-velt-auth-token"] = '<x-velt-auth-token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"organizationId\": \"<string>\",\n \"documentId\": \"<string>\",\n \"filters\": {}\n }\n}"
response = http.request(request)
puts response.read_body{
"result": {
"status": "success",
"message": "Checks retrieved",
"data": {
"checks": [],
"excludedCount": 0,
"runEndInProgress": false,
"writesPending": false
}
}
}
Checks
List Checks
POST
/
v2
/
agents
/
checks
/
list
List Checks
curl --request POST \
--url https://api.velt.dev/v2/agents/checks/list \
--header 'Content-Type: application/json' \
--header 'x-velt-api-key: <x-velt-api-key>' \
--header 'x-velt-auth-token: <x-velt-auth-token>' \
--data '
{
"data": {
"organizationId": "<string>",
"documentId": "<string>",
"filters": {}
}
}
'import requests
url = "https://api.velt.dev/v2/agents/checks/list"
payload = { "data": {
"organizationId": "<string>",
"documentId": "<string>",
"filters": {}
} }
headers = {
"x-velt-api-key": "<x-velt-api-key>",
"x-velt-auth-token": "<x-velt-auth-token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-velt-api-key': '<x-velt-api-key>',
'x-velt-auth-token': '<x-velt-auth-token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({data: {organizationId: '<string>', documentId: '<string>', filters: {}}})
};
fetch('https://api.velt.dev/v2/agents/checks/list', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.velt.dev/v2/agents/checks/list",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'data' => [
'organizationId' => '<string>',
'documentId' => '<string>',
'filters' => [
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-velt-api-key: <x-velt-api-key>",
"x-velt-auth-token: <x-velt-auth-token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.velt.dev/v2/agents/checks/list"
payload := strings.NewReader("{\n \"data\": {\n \"organizationId\": \"<string>\",\n \"documentId\": \"<string>\",\n \"filters\": {}\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-velt-api-key", "<x-velt-api-key>")
req.Header.Add("x-velt-auth-token", "<x-velt-auth-token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.velt.dev/v2/agents/checks/list")
.header("x-velt-api-key", "<x-velt-api-key>")
.header("x-velt-auth-token", "<x-velt-auth-token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"organizationId\": \"<string>\",\n \"documentId\": \"<string>\",\n \"filters\": {}\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.velt.dev/v2/agents/checks/list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-velt-api-key"] = '<x-velt-api-key>'
request["x-velt-auth-token"] = '<x-velt-auth-token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"organizationId\": \"<string>\",\n \"documentId\": \"<string>\",\n \"filters\": {}\n }\n}"
response = http.request(request)
puts response.read_body{
"result": {
"status": "success",
"message": "Checks retrieved",
"data": {
"checks": [],
"excludedCount": 0,
"runEndInProgress": false,
"writesPending": false
}
}
}
Use this API to list a project’s checks, most severe first. Each row carries the check’s counts, score impact, state and owner. Filter by agent, severity, owner or state.
The schema uses
Errors:
Endpoint
POST https://api.velt.dev/v2/agents/checks/list
Headers
string
required
Your API key.
string
required
Your Auth Token.
Body
Params
object
required
Show properties
Show properties
string
required
1 to 512 characters. The organization of the project.
string
required
1 to 512 characters. The document of the project.
object
Optional filters. Every filter given must match.
| Key | Type | Description |
|---|---|---|
agentId | string | 1 to 512 characters. Checks this agent produces. |
severity | string | "critical", "high", "medium" or "low". |
ownerMemberId | string | 1 to 512 characters. Checks whose owner override or effective owner is this user. |
state | string | "failing", "excluded" or "passing". |
.strict(): unknown fields, in data or in filters, are rejected.
Example Requests
1. List every check
{
"data": {
"organizationId": "org_acme",
"documentId": "acme-marketing-site"
}
}
2. List the failing critical checks
{
"data": {
"organizationId": "org_acme",
"documentId": "acme-marketing-site",
"filters": {
"severity": "critical",
"state": "failing"
}
}
}
Response
Success Response
{
"result": {
"status": "success",
"message": "Checks retrieved",
"data": {
"checks": [
{
"ruleKey": "link-broken",
"title": "Broken link",
"description": "A link on the page returns an error or does not resolve.",
"severity": "critical",
"responsibility": "dev",
"agentIds": ["broken-links"],
"openCount": 2,
"pageCount": 14,
"scoreImpact": 4.2,
"state": "failing",
"ownerMemberId": null,
"effectiveOwner": {
"userId": "user_jordan",
"name": "Jordan Lee",
"email": "jordan@example.com"
},
"lastSeenAt": 1761465600000,
"failingSince": 1761379200000
},
{
"ruleKey": "link-unlinked-email",
"title": "Email address is not linked",
"description": "An email address cannot be clicked to write.",
"severity": "low",
"responsibility": "content",
"agentIds": ["broken-links"],
"openCount": 0,
"pageCount": 0,
"scoreImpact": 0,
"state": "excluded",
"ownerMemberId": null,
"effectiveOwner": null,
"lastSeenAt": 1761206400000,
"ignoredReason": "not_important",
"ignoredBy": "user_sam",
"ignoredAt": 1761292800000
}
],
"excludedCount": 1,
"runEndInProgress": false,
"writesPending": false
}
}
}
| Field | Type | Description |
|---|---|---|
data.checks | object[] | The checks, most severe first, then by score impact. |
checks[].ruleKey | string | The check’s key. |
checks[].title | string | The check’s name. |
checks[].description | string | What the check finds. |
checks[].severity | string | "critical", "high", "medium" or "low". |
checks[].responsibility | string | Who fixes it: "content", "design" or "dev". |
checks[].fixGuide | string | How to fix it. Present when the check has one. |
checks[].agentIds | string[] | The agents that produce the check. |
checks[].openCount | number | Open comments, attached comments included. 0 for an excluded check. |
checks[].pageCount | number | Pages with an open comment. 0 for an excluded check. |
checks[].scoreImpact | number | Points the check takes off the site score. 0 for an excluded check. |
checks[].state | string | "failing", "passing" or "excluded". |
checks[].ownerMemberId | string | null | The owner set with Set Check Owner, or null. |
checks[].effectiveOwner | object | null | The owner that applies: the override, else the default owner for the check’s responsibility, else the project admin. { userId, name?, email? }. |
checks[].lastSeenAt | number | null | When a run last found the check (epoch ms). |
checks[].ignoredReason | string | Excluded checks: the reason given to Exclude Check. |
checks[].ignoredBy | string | Excluded checks: who excluded it. |
checks[].ignoredAt | number | Excluded checks: when (epoch ms). |
checks[].failingSince | number | Failing checks: when the check last went from passing to failing (epoch ms). |
data.excludedCount | number | Checks excluded for the project. |
data.runEndInProgress | boolean | true while a run’s comments are being grouped and written. The list may change in a few seconds. |
data.writesPending | boolean | true when a run’s writes failed and wait for the next run. |
Failure Response
{
"error": {
"message": "Workspace not found or has no store database for the checks engine",
"status": "NOT_FOUND",
"details": {
"reason": "CHECKS_WORKSPACE_NOT_FOUND"
}
}
}
INVALID_ARGUMENT (a body outside the schema: a missing organizationId or documentId, a filters value outside its list, or an unknown field) / NOT_FOUND with CHECKS_WORKSPACE_NOT_FOUND (the workspace has no store database).
{
"result": {
"status": "success",
"message": "Checks retrieved",
"data": {
"checks": [],
"excludedCount": 0,
"runEndInProgress": false,
"writesPending": false
}
}
}
Was this page helpful?

